summaryrefslogtreecommitdiff
authorPengguang Zhu <pengguang.zhu@amlogic.com>2017-07-12 08:17:41 (GMT)
committer Pengguang Zhu <pengguang.zhu@amlogic.com>2017-07-13 07:36:02 (GMT)
commitfe472407a001970e5ad8fffc997e799f31891e10 (patch)
treea96c8fe41b431b29c113969522c1e4c3e4355495
parent966db9832bf291adb07331f2ba8adbcf1c43efe4 (diff)
downloadtdk-fe472407a001970e5ad8fffc997e799f31891e10.zip
tdk-fe472407a001970e5ad8fffc997e799f31891e10.tar.gz
tdk-fe472407a001970e5ad8fffc997e799f31891e10.tar.bz2
update bl32.img README.md and ta_export
1. update TA sign and verify flow 2. support watermark 3. update README for TA sign bl32 commit: dc2b2aa0c4d0efaa8cdc4348e8b85b40ed24c76b Change-Id: I507a4e425d4f7e58ce6d8a475ee0ab15cab3f312 Signed-off-by: Pengguang Zhu <pengguang.zhu@amlogic.com>
Diffstat
-rw-r--r--Android.mk3
-rw-r--r--README.md19
-rw-r--r--demos/hello_world/ta/Android.mk6
-rw-r--r--demos/optee_test/ta/aes_perf/Android.mk6
-rw-r--r--demos/optee_test/ta/concurrent/Android.mk6
-rw-r--r--demos/optee_test/ta/concurrent_large/Android.mk6
-rw-r--r--demos/optee_test/ta/create_fail_test/Android.mk6
-rw-r--r--demos/optee_test/ta/crypt/Android.mk6
-rw-r--r--demos/optee_test/ta/os_test/Android.mk6
-rw-r--r--demos/optee_test/ta/rpc_test/Android.mk6
-rw-r--r--demos/optee_test/ta/sdp_basic/Android.mk6
-rw-r--r--demos/optee_test/ta/sha_perf/Android.mk6
-rw-r--r--demos/optee_test/ta/sims/Android.mk6
-rw-r--r--demos/optee_test/ta/socket/Android.mk6
-rw-r--r--demos/optee_test/ta/storage/Android.mk6
-rw-r--r--demos/optee_test/ta/storage2/Android.mk6
-rw-r--r--demos/optee_test/ta/storage_benchmark/Android.mk6
-rw-r--r--secureos/axg/bl32.img693
-rw-r--r--secureos/gx/bl32.img1159
-rw-r--r--secureos/txlx/bl32.img1180
-rw-r--r--ta_export/host_include/conf.h1
-rw-r--r--ta_export/host_include/conf.mk3
-rw-r--r--ta_export/host_include/signed_hdr.h4
-rw-r--r--ta_export/host_include/tee_watermark_api.h74
-rw-r--r--ta_export/host_include/utee_type_extensions.h10
-rw-r--r--ta_export/include/tee_watermark_api.h74
-rw-r--r--ta_export/include/utee_type_extensions.h10
-rw-r--r--ta_export/keys/root_aes_key.bin1
-rw-r--r--ta_export/keys/ta_aes_iv.bin1
-rw-r--r--ta_export/keys/ta_aes_key.bin1
-rw-r--r--ta_export/lib/libmpa.a950
-rw-r--r--ta_export/lib/libpng.a2995
-rw-r--r--ta_export/lib/libutee.a1987
-rw-r--r--ta_export/lib/libutils.a4187
-rw-r--r--ta_export/lib/libzlib.a577
-rwxr-xr-xta_export/scripts/gen_aes_iv.py55
-rwxr-xr-xta_export/scripts/gen_aes_key.py3
-rwxr-xr-xta_export/scripts/gen_cert_key.py43
-rwxr-xr-xta_export/scripts/nosign.py3
-rwxr-xr-xta_export/scripts/pack_kpub.py66
-rwxr-xr-xta_export/scripts/sign_ta.py48
41 files changed, 7284 insertions, 6953 deletions
diff --git a/Android.mk b/Android.mk
index 8f319e9..ca4bcc3 100644
--- a/Android.mk
+++ b/Android.mk
@@ -4,7 +4,8 @@ TA_GEN_CERT_TOOL := $(TDK_TOP_DIR)/ta_export/scripts/gen_cert_key.py
TA_ROOT_PRIV_KEY ?= $(TDK_TOP_DIR)/ta_export/keys/root_rsa_prv_key.pem
TA_USER_PUB_KEY ?= $(TDK_TOP_DIR)/ta_export/keys/ta_rsa_pub_key.pem
TA_USER_PRIV_KEY ?= $(TDK_TOP_DIR)/ta_export/keys/ta_rsa_prv_key.pem
-TA_ROOT_AES_KEY ?= $(TDK_TOP_DIR)/ta_export/keys/ta_aes_key.bin
+TA_ROOT_AES_KEY ?= $(TDK_TOP_DIR)/ta_export/keys/root_aes_key.bin
TA_USER_AES_KEY ?= $(TDK_TOP_DIR)/ta_export/keys/ta_aes_key.bin
+TA_USER_AES_IV ?= $(TDK_TOP_DIR)/ta_export/keys/ta_aes_iv.bin
include $(call all-subdir-makefiles)
diff --git a/README.md b/README.md
index 8106bf6..51b689e 100644
--- a/README.md
+++ b/README.md
@@ -13,3 +13,22 @@ $ make driver
## How to build Android CA/driver
$ mm
+
+## How to sign TA
+$ ./ta_export/scripts/gen_cert_key.py
+ --root_rsa_key=ta_export/keys/root_rsa_prv_key.pem
+ --ta_rsa_key=ta_export/keys/ta_rsa_pub_key.pem
+ --uuid=8aaaf200-2450-11e4-abe2-0002a5d5c51b
+ --ta_rsa_key_sig=ta_rsa_key.sig
+ --root_aes_key=ta_export/keys/root_aes_key.bin
+ --ta_aes_key=ta_export/keys/ta_aes_key.bin
+ --ta_aes_iv=ta_export/keys/ta_aes_iv.bin
+ --ta_aes_key_iv_enc=ta_aes_key_enc.bin
+$ ./ta_export/scripts/sign_ta.py
+ --ta_rsa_key=ta_export/keys/ta_rsa_prv_key.pem
+ --ta_rsa_key_sig=ta_rsa_key.sig
+ --ta_aes_key=ta_export/keys/ta_aes_key.bin
+ --ta_aes_iv=ta_export/keys/ta_aes_iv.bin
+ --ta_aes_key_iv_enc=ta_aes_key_enc.bin
+ --in=8aaaf200-2450-11e4-abe2-0002a5d5c51b.ta
+ --out=8aaaf200-2450-11e4-abe2-0002a5d5c51b.ta
diff --git a/demos/hello_world/ta/Android.mk b/demos/hello_world/ta/Android.mk
index 7a77a20..f882e04 100644
--- a/demos/hello_world/ta/Android.mk
+++ b/demos/hello_world/ta/Android.mk
@@ -20,11 +20,13 @@ $(info $(shell $(TA_GEN_CERT_TOOL) --root_rsa_key=$(TA_ROOT_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--root_aes_key=$(TA_ROOT_AES_KEY) \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
$(info $(shell $(TA_SIGN_TOOL) --ta_rsa_key=$(TA_USER_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
--in=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta \
--out=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta ))
$(info $(shell rm -f $(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig ))
diff --git a/demos/optee_test/ta/aes_perf/Android.mk b/demos/optee_test/ta/aes_perf/Android.mk
index c00c3f8..e93da9b 100644
--- a/demos/optee_test/ta/aes_perf/Android.mk
+++ b/demos/optee_test/ta/aes_perf/Android.mk
@@ -20,11 +20,13 @@ $(info $(shell $(TA_GEN_CERT_TOOL) --root_rsa_key=$(TA_ROOT_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--root_aes_key=$(TA_ROOT_AES_KEY) \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
$(info $(shell $(TA_SIGN_TOOL) --ta_rsa_key=$(TA_USER_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
--in=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta \
--out=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta ))
$(info $(shell rm -f $(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig ))
diff --git a/demos/optee_test/ta/concurrent/Android.mk b/demos/optee_test/ta/concurrent/Android.mk
index 9aa6e19..fe75f0d 100644
--- a/demos/optee_test/ta/concurrent/Android.mk
+++ b/demos/optee_test/ta/concurrent/Android.mk
@@ -20,11 +20,13 @@ $(info $(shell $(TA_GEN_CERT_TOOL) --root_rsa_key=$(TA_ROOT_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--root_aes_key=$(TA_ROOT_AES_KEY) \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
$(info $(shell $(TA_SIGN_TOOL) --ta_rsa_key=$(TA_USER_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
--in=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta \
--out=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta ))
$(info $(shell rm -f $(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig ))
diff --git a/demos/optee_test/ta/concurrent_large/Android.mk b/demos/optee_test/ta/concurrent_large/Android.mk
index ace9853..2e882f1 100644
--- a/demos/optee_test/ta/concurrent_large/Android.mk
+++ b/demos/optee_test/ta/concurrent_large/Android.mk
@@ -20,11 +20,13 @@ $(info $(shell $(TA_GEN_CERT_TOOL) --root_rsa_key=$(TA_ROOT_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--root_aes_key=$(TA_ROOT_AES_KEY) \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
$(info $(shell $(TA_SIGN_TOOL) --ta_rsa_key=$(TA_USER_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
--in=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta \
--out=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta ))
$(info $(shell rm -f $(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig ))
diff --git a/demos/optee_test/ta/create_fail_test/Android.mk b/demos/optee_test/ta/create_fail_test/Android.mk
index 62c372a..447addd 100644
--- a/demos/optee_test/ta/create_fail_test/Android.mk
+++ b/demos/optee_test/ta/create_fail_test/Android.mk
@@ -20,11 +20,13 @@ $(info $(shell $(TA_GEN_CERT_TOOL) --root_rsa_key=$(TA_ROOT_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--root_aes_key=$(TA_ROOT_AES_KEY) \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
$(info $(shell $(TA_SIGN_TOOL) --ta_rsa_key=$(TA_USER_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
--in=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta \
--out=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta ))
$(info $(shell rm -f $(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig ))
diff --git a/demos/optee_test/ta/crypt/Android.mk b/demos/optee_test/ta/crypt/Android.mk
index 3bbd5cc..8cc2724 100644
--- a/demos/optee_test/ta/crypt/Android.mk
+++ b/demos/optee_test/ta/crypt/Android.mk
@@ -20,11 +20,13 @@ $(info $(shell $(TA_GEN_CERT_TOOL) --root_rsa_key=$(TA_ROOT_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--root_aes_key=$(TA_ROOT_AES_KEY) \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
$(info $(shell $(TA_SIGN_TOOL) --ta_rsa_key=$(TA_USER_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
--in=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta \
--out=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta ))
$(info $(shell rm -f $(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig ))
diff --git a/demos/optee_test/ta/os_test/Android.mk b/demos/optee_test/ta/os_test/Android.mk
index 754057f..d8fe2c3 100644
--- a/demos/optee_test/ta/os_test/Android.mk
+++ b/demos/optee_test/ta/os_test/Android.mk
@@ -20,11 +20,13 @@ $(info $(shell $(TA_GEN_CERT_TOOL) --root_rsa_key=$(TA_ROOT_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--root_aes_key=$(TA_ROOT_AES_KEY) \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
$(info $(shell $(TA_SIGN_TOOL) --ta_rsa_key=$(TA_USER_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
--in=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta \
--out=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta ))
$(info $(shell rm -f $(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig ))
diff --git a/demos/optee_test/ta/rpc_test/Android.mk b/demos/optee_test/ta/rpc_test/Android.mk
index 3e2b9a3..0d3a002 100644
--- a/demos/optee_test/ta/rpc_test/Android.mk
+++ b/demos/optee_test/ta/rpc_test/Android.mk
@@ -20,11 +20,13 @@ $(info $(shell $(TA_GEN_CERT_TOOL) --root_rsa_key=$(TA_ROOT_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--root_aes_key=$(TA_ROOT_AES_KEY) \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
$(info $(shell $(TA_SIGN_TOOL) --ta_rsa_key=$(TA_USER_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
--in=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta \
--out=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta ))
$(info $(shell rm -f $(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig ))
diff --git a/demos/optee_test/ta/sdp_basic/Android.mk b/demos/optee_test/ta/sdp_basic/Android.mk
index 3416ed1..8e1ad09 100644
--- a/demos/optee_test/ta/sdp_basic/Android.mk
+++ b/demos/optee_test/ta/sdp_basic/Android.mk
@@ -20,11 +20,13 @@ $(info $(shell $(TA_GEN_CERT_TOOL) --root_rsa_key=$(TA_ROOT_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--root_aes_key=$(TA_ROOT_AES_KEY) \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
$(info $(shell $(TA_SIGN_TOOL) --ta_rsa_key=$(TA_USER_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
--in=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta \
--out=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta ))
$(info $(shell rm -f $(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig ))
diff --git a/demos/optee_test/ta/sha_perf/Android.mk b/demos/optee_test/ta/sha_perf/Android.mk
index a6c3a3b..a7a7fb3 100644
--- a/demos/optee_test/ta/sha_perf/Android.mk
+++ b/demos/optee_test/ta/sha_perf/Android.mk
@@ -20,11 +20,13 @@ $(info $(shell $(TA_GEN_CERT_TOOL) --root_rsa_key=$(TA_ROOT_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--root_aes_key=$(TA_ROOT_AES_KEY) \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
$(info $(shell $(TA_SIGN_TOOL) --ta_rsa_key=$(TA_USER_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
--in=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta \
--out=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta ))
$(info $(shell rm -f $(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig ))
diff --git a/demos/optee_test/ta/sims/Android.mk b/demos/optee_test/ta/sims/Android.mk
index 156fa77..acf2b3a 100644
--- a/demos/optee_test/ta/sims/Android.mk
+++ b/demos/optee_test/ta/sims/Android.mk
@@ -20,11 +20,13 @@ $(info $(shell $(TA_GEN_CERT_TOOL) --root_rsa_key=$(TA_ROOT_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--root_aes_key=$(TA_ROOT_AES_KEY) \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
$(info $(shell $(TA_SIGN_TOOL) --ta_rsa_key=$(TA_USER_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
--in=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta \
--out=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta ))
$(info $(shell rm -f $(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig ))
diff --git a/demos/optee_test/ta/socket/Android.mk b/demos/optee_test/ta/socket/Android.mk
index d152635..d9dc8d5 100644
--- a/demos/optee_test/ta/socket/Android.mk
+++ b/demos/optee_test/ta/socket/Android.mk
@@ -20,11 +20,13 @@ $(info $(shell $(TA_GEN_CERT_TOOL) --root_rsa_key=$(TA_ROOT_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--root_aes_key=$(TA_ROOT_AES_KEY) \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
$(info $(shell $(TA_SIGN_TOOL) --ta_rsa_key=$(TA_USER_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
--in=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta \
--out=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta ))
$(info $(shell rm -f $(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig ))
diff --git a/demos/optee_test/ta/storage/Android.mk b/demos/optee_test/ta/storage/Android.mk
index 899e918..22762fd 100644
--- a/demos/optee_test/ta/storage/Android.mk
+++ b/demos/optee_test/ta/storage/Android.mk
@@ -20,11 +20,13 @@ $(info $(shell $(TA_GEN_CERT_TOOL) --root_rsa_key=$(TA_ROOT_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--root_aes_key=$(TA_ROOT_AES_KEY) \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
$(info $(shell $(TA_SIGN_TOOL) --ta_rsa_key=$(TA_USER_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
--in=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta \
--out=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta ))
$(info $(shell rm -f $(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig ))
diff --git a/demos/optee_test/ta/storage2/Android.mk b/demos/optee_test/ta/storage2/Android.mk
index 42bbe8f..f00c1e6 100644
--- a/demos/optee_test/ta/storage2/Android.mk
+++ b/demos/optee_test/ta/storage2/Android.mk
@@ -20,11 +20,13 @@ $(info $(shell $(TA_GEN_CERT_TOOL) --root_rsa_key=$(TA_ROOT_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--root_aes_key=$(TA_ROOT_AES_KEY) \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
$(info $(shell $(TA_SIGN_TOOL) --ta_rsa_key=$(TA_USER_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
--in=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta \
--out=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta ))
$(info $(shell rm -f $(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig ))
diff --git a/demos/optee_test/ta/storage_benchmark/Android.mk b/demos/optee_test/ta/storage_benchmark/Android.mk
index a4b0b24..4a7cdb4 100644
--- a/demos/optee_test/ta/storage_benchmark/Android.mk
+++ b/demos/optee_test/ta/storage_benchmark/Android.mk
@@ -20,11 +20,13 @@ $(info $(shell $(TA_GEN_CERT_TOOL) --root_rsa_key=$(TA_ROOT_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--root_aes_key=$(TA_ROOT_AES_KEY) \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin ))
$(info $(shell $(TA_SIGN_TOOL) --ta_rsa_key=$(TA_USER_PRIV_KEY) \
--ta_rsa_key_sig=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig \
--ta_aes_key=$(TA_USER_AES_KEY) \
- --ta_aes_key_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
+ --ta_aes_iv=$(TA_USER_AES_IV) \
+ --ta_aes_key_iv_enc=$(LOCAL_PATH)/$(OUTPUT_DIR)/ta_aes_key_enc.bin \
--in=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta \
--out=$(LOCAL_PATH)/$(OUTPUT_DIR)/$(TA_BINARY).ta ))
$(info $(shell rm -f $(LOCAL_PATH)/$(OUTPUT_DIR)/ta_rsa_key.sig ))
diff --git a/secureos/axg/bl32.img b/secureos/axg/bl32.img
index 54ab627..d194375 100644
--- a/secureos/axg/bl32.img
+++ b/secureos/axg/bl32.img
@@ -1,45 +1,44 @@
e4'
-o
-
+o
+
#
-#
-
-
-"
- 
-"
-UxNE F
-vN?
-YI
+#
+
+
+"
+"
+YI
SI
-۲F
-F FBKhBK
-'%j
-F
-3. iJa (F$
+۲F
+F FBKhBK
+ 4
+G4 F "
+G #
+I#FGF FI
+G F$
Kka
-KZh*b5`]`HH
+KZh*b5`]`HH
BohXXP
K"
-H@(
-
-;`
-!F2F
-+ F9Fj
+H@(
+
+;`
+!F2F
++ F9Fj
Q
Q
-Q
-K Esa#a
+Q
+K Esa#a
-A$ʹ# F3`K+`
+A$# F3`K+`
-E
+E
,
-E""@
-CB`V" B3B`pG
-
-p
+E""@
+CB`V" B3B`pG
+
+p
@@ -48,122 +47,119 @@ CB`V" B3B`pG
/
/
/
-/F FF
-Zh:x"p
-Z`
+/F FF
+Zh:x"p
+Z`
K SBSL B3S
-FF!30F KBS,BSL:B
+FF!30F KBS,BSL:B
# 'wF? ?K
P
5
 AF
-
+
PCFSS,
-CCL 
- 
-H@_!J
+CCL 
+ 
+H@_!J
-k@F!hhر
+k@F!hhر
BV8/ "h8XB&`hhzh BhbhyhB4 FF h{`B,
-0`#ah EX
+0`#ah E>
i = 'w-? #-??
F3h
@h+-
- JEEE0iB@  L\CCP`L}B``ap
+ JEEE0iB@  L\CCP`L}B``ap
Z B`E E D G `1 ) H3+Ѣkh0
-C`eck" c8xG3-GFFFF
+C`eck"c8PG3-GFFFF
-kBYCh8FIFhBpk
+kBYCh8FIFh(pk
-kXYZQhFk@F![h @k]hCD
-KB
-
+kXYZQhFk@F![h@k]hCD
+KB
+
?O
2?#?#P?@j
k@i :_вRB@`
-
-F ` F!(FK Fg``@?t2C- p
-M
-
-K"! H(F|K``cb
-FG
+
+M
+
+K"! H(FbK``cb
+FG
Eѝ
-0
-JOq H
-22G3
+0
+JOq H
-
-#hG8"
-
-+hD$F]#DBB3$+
+
+#hG8"
+
+hD$F]#DBB3$+
K"
-H!
-F(
-F(
-
-+F(
+H!
+F(
+F(
+
+F(
-H[
-
-}F(
-8F(I
-ZF(
-WK"HOq
-
-Fl6K
-Hh
-(`
+H[
+
+cF(
+8F(I
+@F(
+WK"HOq
+
+FR6K
+Hh
+2\c(2hcE2lca2pcx2tc2c2̈c2Ȉc2c2c 2c 2c52HcL2Dca2@c}2Lc2?K!?J@Hh
+q(`
(JhK "`JhK`pG 0
-pYp p p
-K
- K
- K
- K
- K
- K
-K
-K
+pYp p p
+K
+ K
+ K
+ K
+ K
+ K
+K
+K
K
-H!
-"!cd"Add x22k F:* K
+H!
+"!cd"Add p22k F:* K
*( 
-@j@h
-5 -hh O
-K`0FK`Zh"p""?B
+@j@h
+K`0FK`Zh"p""?B
J``KhB
`"h
dbhJdhdhdL
-"i+J`bi`٣iBJ`iS`k+ ѣl=J`#jbcjcjScjc+6K "` jx5K``js3K`jn2K`ji0K`k#lak
+"i+J`bi`٣iBJ`iS`k+ ѣl=J`#jbcjcjScjc+6K "` j^5K``jY3K`jT2K`jO0K`k#lak
hsl"@rB# `rj
-hsl"@rB# `sj 2Ks`2K`2K`2K3a2KsaZ0Ks`0K`0K`0K3a0Ksa0Ka0Ka.Ks`.K`.K`.K3a.Ksa.Ka.Ka.K3b
- 'O 'O'O@"'BFB I"FFIF"F QF*K
-! !
+hsl"@rB# `sj 2Ks`2K`2K`2K3a2KsaZ0Ks`0K`0K`0K3a0Ksa0Ka0Ka.Ks`.K`.K`.K3a.Ksa.Ka.Ka.K3b
+ 'O 'O'O@"'BFB /"FFIF"F QF*K
+! !
O
O
-!FJF
- "h
-K@b
-5
-3o0+pOp ѫ~(F!Cvp(F!
+!FJF
+ "h
+K@b
+5
+3o0+pOp ѫ~(F!Cvp(F!
C##
*)OU1O1!K!J)!KO2` JO2Z`"K)OU1O1`Y`J)h C*C##*`
-K"
-HF@ K" Hb!
-H IF" F5H0 F)F"8@*8!
-HF HFP0F9 -4*F "
-O4 F!
-HwAFF:F(F
+K"
+HF@ K" Hb!
+H IF" FH0 F)F"8@8!
+HF HFP0F9 -4*F "O4 F!
+HwAFF:F(F
-
+
-
+
`
-+h
++h
ca4Kh
a3Kh
-a1Khh B#`C"c.Khh B#`C*Kh B"h"* h+0$Khh B#`C"F
+a1Khh B#`C"c.Khh B#`C*Kh B"h"* h+0$Khh B#`C"F
h

#EGFFOqhCo d!
@@ -171,54 +167,54 @@ ca4Kh
+0+Op`1F8F(̿0 *
1+l"F+F
0w6pEڴF
-3@P2@o(F<#(Fkheb
-HI+h3K`Kh2`KhBє,0 %ei
+3@P2@o(F<#(Fkheb
+HI+h3K`Kh2`KhBє,0 %ei
HF3h+`'x F 0 F :FhGFHFeMO
- ` F
-J
-F)Fhh$iG8[38FK
-F)FhhdiG8[3KXh
-
+ ` F
+J
+F)Fhh$iG8[38FK
+F)FhhdiG8[3KXh
+
FB! <B
@@#
-
+
"FHF
1F 

 O 
-
+
kGFx@FeF 5F
OF9(F!F
KFG
-=F O=F O
+=F O=F O
?(F 1FG
@#G`*$
-JF%OD%E 
+JF%OD%E 
IF F F
-
-
+
+
@

*
-O 0 !XFF
+O 0 !XFF
*
-+++h0Fй`
++++h0Fй`
, #iˎ
-SF
+SF
 FY
6FEKFK
-K KF
-GKGHhZh #B%
+K KF
+GKGHhZh #B%
FF #FF$eF4 aF ]F
-@+"i  QF
+@+"i  QF
h 
+ E  D 3BO
O F#
@@ -227,112 +223,112 @@ O F#
E B
FFFFUFWF6"h#KB/FAF

- 4Eѳh JB2Bѥb
+ 4Eѳh JB2Bѥb
-h FChB10+h
-OO h34ڈj rRiGzBӽ2-CFjӱhF
-OO h34ڈj riGzBӽ2
+h FChB10+h
+OO h34ڈj rRiGzBӽ2-CFjӱhF
+OO h34ڈj riGzBӽ2
Hh!
-3ڈj9F BFG04zBH
+3ڈj9F BFG04zBH
O hj
3ڈj @YiG
)KB
-8(
-K[nKnKoK[o{)FGO3`5a
+8(
+K[nKnKoK[o{)FGO3`5a
-
+
3CEрLYF
-t`hhGFȹ(F1FJ(F1FJ(F1FJJ(F1FzLL
+t`hhGFȹ(F1FJ(F1FJ(F1FJJ(F1FzLL
-L L )FF
-
-**JhiGiipjj JjkLhihGH
+L L )FF
+
+**JhiGiipjj JjkLhihGH
**
-Ji JVkFi*F#FGFH
+Ji JVkFi*F#FGFH
FFFF
1hiaF
uAF(FJF#FF
RB@7! OqOq@ !
- jGF`YF O@B
+ jGF`YF O@B
 2h+<

2hF YF
-
+
AF"nF
-pF
+p8F
KB
-"h
-F
+"h
+F
AF
 F ,GF)@;Iph+z9F2F(F5KFp
@ F,CF0(XB3+I
- F
- 
-
-F
+ F
+ 
+
+F
XF
N
N
-N(F:N
-
+N(F:N
+
F
` bF
-L
-F/#;F"#"
+L
+F/#;F"#"
KB
E)F
L
-L
+L
F
O
F
!i$#c ai.Kh $# jk
-N  F N
-$h
-. *F
-"`+`
+N  F N
+$h
+. *F
+"`+`
0F
!h+1
!h[
1!+i[h1! !
!ii!p"iڱ
Kh:F3F*F
-
+
#
-K!O
+K!O
!"0#F"jF
-L#LK"h@ > F&p[32
-L
+L#LK"h@ > F&p[32
+L

PO
3E
-[k=
+[k=
03CD
0 F
-!"` 0*SFF
-FFF&
+!"` 0*SFF
+FFF&
O
-TPH
-
-LH:(F F L3[3
-+FIFS :F@D
+TPH
+
+LH:(F F L3[3
++FIFS :F@D
IFh
W(h
-
+

-7O*9_D?% _4]FOU _IF"FU
-FP8FI"F#F
+7O*9_D?% _4]FOU _IF"FU
+FP8FI"F#F
V!F(hJF3FF
-
+
(,D#2`!F!B{"(Fw!c>#XCC7B#7`
-A
+A
#F
-l0F!F8hBI0F!*FKFnh5QFB"00B)L+F
+l0F!F8hBI0F!*FKFnh5QFB"00B)L+F
"
# 
@@ -340,57 +336,57 @@ LH:(F F L3[3
E
$
E EF@_@F5q)FF@#@Fspd
-GF0k0FI:F #GF0FL
+GF0k0FI:F #GF0FL
[F
#GF0eiPF9I #GFPF
-iI)GFPF
- ",0, B
-
+iI)GFPF
+ ",0, B
+
Oc@DcOHsOhs `
KB OsOss `
-
+
h ch #ihMKBSBSB@0@@F
@FlG
-@FyG
-"KB "KB !H!H!H!H!H
+@FyG
+"KB "KB !H!H!H!H!H
F
-lGB.(FFPK"H@Q
-
-
+lGB.(FFPK"H@Q
+
+
h ch `Hh #iciii-KBS(F5
-L F"0(
-h kh `Hh +ikiii>KB"أ@SBЌ:K
-kh F
+L F"0(
+h kh `Hh +ikiii>KB"أ@SBЌ:K
+kh F
+K lG+h(`B(LH0FZF
K"LOa
-H M F
+H M F
 (ر(( "J@AAH
* I"F
-3h2`BL!)F(F
-K L"
-KL"
-p#3M3
-Gih Gi)i G0F 8F
-
-pM3
+3h2`BL!)F(F
+K L"
+KL"
+p#3M3
+Gih Gi)i G0F 8F
+
+pM3

-pM3
-Gii G0Fo8F
-KBsB HH
+pM3
+Gii G0Fo8F
+KBsB HH
-
+
-KB%ңsBO3B3BIaE $KB@aE-!KB8)F2F#F*3')F2F#F  )F2F#F&O4c
 A
-
-*hiFK@F`jh[m"aJFGhQF:Fz>hFh' I
+
+*hiFK@F`jh[m"aJFGhQF:Fz>hFh' I

-L(+
+L(+
F,
FFKBsB%
@@ -403,18 +399,18 @@ L(+
KB%PAq)KB3B3B F@O@@
F(
-2Hr1Ho1Hl0H0H.H.H-H,H+H+H)H)H~(H{(Hx'HhhF0V3x"O
-
-
+2Hr1Ho1Hl0H0H.H.H-H,H+H+H)H)H~(H{(Hx'HhhF0V3x"O
+
+
@FlG
-@FqG
+@FqG

o?L
khh
5LT
a H@^K"
U@F9F2F F`K@f H"
-@L
+@L
 B1
@@ -422,45 +418,45 @@ F(

O
-O x2xixBH
+O x2xixBH
zOj

O
-O x3xixBHFȱ 1"9F#O  FCF}0F"
+O x3xixBHFȱ 1"9F#O  FCF0F"
zOj

O
-O x3xixBHBIF
-hDzXFQF"(HFQF"#HFa"#)F#
+O x3xixBH\IF
+hDzXFQF"(HFQF"#HFa"#)F#
D HFQF:F Fq]
- J@qUZU5-<
+ J@qUZU5-<

-
+
03
-"F
+"F
CC<#
-҂"<#=#S@=3#!C<#=#C=#>#b>#?#B?#@#"@#A#S@A3# 3$#SCL3
-JOp3FR#0"FiG
-l#c\2 l# \32l# #* #OpFY" i"FG  #52< #
+҂"<#=#S@=3#!C<#=#C=#>#b>#?#B?#@#"@#A#S@A3# 3$#SCL3
+JOp3FR#0"FiG
+l#c\2 l# \32l# #* #OpFY" i"FG  #52< #
' '
7''7' 
' '
3F'
-T'5J@ 3+:hB;`0Fa FX4-GFFF
-%DOS
+T'5J@ 3+:hB;`0Fa F04-GFFF
+%DOS
F
F @ H @q@ T@L Z#@ LLD]3+ hFDF
F!F 
@ H   T@LDY#@\D7L3 +  f .F
F!F4FZ#`  ^D H u ` 3V@l0+  5De F&D!F4F.Fdd P Hf  U@\DZ#PMD8 P3@+ b
-F5D
+F5D
K
F*F#F8LOe,M@e
@@ -479,7 +475,7 @@ J 
 p6P.WDO
D*FF
- ODaED[D``aDa
+ ODaED[D``aDa
Kb`
K`
Ka
@@ -487,10 +483,10 @@ KCa
Ka
Ka
Kb
-KCbFpG pG
+KCbFpG pG

FF;FZFOU pU
-
+
Kb`
K`
Ka
@@ -498,7 +494,7 @@ KCa
Ka
Ka
Kb
-KCbFpG pG
+KCbFpG pG
y Okqx0  #JK CxJ$ E C4y)Cx$ #ECC Cty)C$y6#fE@
2O@ p#
 A;
@@ -512,53 +508,53 @@ CckCs{Cs#O OHEh A 
OBj JOCjJ
 Eg
G 
-E 
-HFLI
+E 
+HFLI
O
-PF
- KS&0h FF
+PF
+ KS&0h FF
O
viHFYF
-_J@ !
-
- 
+_J@ !
+
+ 
4 , J
-KC$PH 4 ,HO4
+KC$PH 4 ,HO4
4 , J
-KC$PH 4 ,HO4
+KC$PH 4 ,HO4
4 , J
-KC$PH 4 ,HO4
-J
-ah
-G
-
-
-IQ" )FjFG
+KC$PH 4 ,HO4
+J
+ah
+G
+
+
+IQ" )FjFG


-Eѻ
-IQ" )FiFGFPF\\J@T3+0F FpX4-OFFFF {
+Eѻ
+IQ" )FiFGFPF\\J@T3+0F Fp04-OFFFF {
AF"6? ( i@FYFG

JAFR#0FrjG!8F
+FoйF;|\#T34tLE\U4,1F
-+FW
++FW
i  bi
1F >d
-hi
+hi
iIF ci "3F@FF
ci 3F&`F;#iO
-l iGch
+l iGch
qH
0
-F
-& F
-  .F
-!CZF"
- .i  nii.ji#F"uF@T KhkG
-l5m FG9 FADGF
-i IF8FCFF[i GG#40!hGh"ah8F
+& F
+  .F
+!CZF"
+ .i  nii.ji#F"uF@T KhkG
+l5m FG9 FADGF
+i IF8FCFF[i GG#40!hGh"ah8F
lF
QFZFKFF
GF
@@ -569,35 +565,35 @@ IQ" )FiFGFPF\\J@T3+0F FpX4-OFFFF {
FGF
GF
*jGF0iGFpi)iGF@iiiGF#+`+j
-
-T 8FIFBF(
+
+T 8FIFBF(
m
O 
- < d ! "()+ ,lxhG F
+ < d ! "()+ ,lxhG F
-Sh
+Sh
J+@XFF
-F
--FB?P{B?LXFX4M3F@h K[iG
- @:F
-4JUmFGF
+F
+-FB?P{B?LXF04M3F@h K[iG
+ @:F
+4JUmFGF
GF
 GF
- GF
+ GF
F
-Qi"GF
+Qi"GF
L lGF#m GF
(`h` .0;@<EAF``,u,a(bke cg*clc0
<@c0PeBed@,fx@@@ @@@
y # c
-F
-PFC
+F
+PFC
 
 $Ꭽ!#)``b:+c
- `,u,ablc<@cȃCD
-
+ `,u,ablc<@cȃCD
+

 
2`"bB"b5k`F`*cbOcje"
@@ -607,23 +603,23 @@ PFC
sF
-
-'
-
+
+'
+
x F)F( F!F*F;h cXhF!F8F
Kh+F
? F
-@
+@
OepS%`%UiF u@FS&`u@&S&`Fu@.qq. Nq.
=qS%`_*%iF u@FS&`
'Prih@P@S$ P@S* B
s sJs
-s
+s
OepS%`%eiF u@FS&`u@&S&`Fu@.qq. Nq.
=GqS%`ղ%iF u@FS&`*u@&S&`Fu@.rr. Nr.
S"P rE
s sJs
-s
+s
? ? \'pX+'FMOW+pGFIOjW+pEOW*
'V'p GU'pi T)p h 3h1_@?
X*
@@ -633,34 +629,34 @@ X*
BU" gT'p
$J'R'p"J
GR'piJ
-R)pBOr1K@J@Os$b@$33Z@AK@A2S@C``
+R)pBOr1K@J@Os$b@$33Z@AK@A2S@C``
@% @$  
 2*
 7
 28*
@$?~p?P%`Q"pG
-@%2*3+
-
-
+@%2*3+
+
+
40 F9FG8O
B80 FGC6F.O+pnp.؁#pkp5?҂#pkp3
p5
҃#.qkp3 p3
p5
F
-GFk F  GEѳk FGFNAF3lG K[iG!FmFG
-3
+GFk F  GEѳk FGFNAF3lG K[iG!FmFG
+3
u
a(1"0F
V <VṾ+M
-@]J@BP1` 6%u%a(4$ #8F
+@]J@BP1` 6%u%a(4$ #8F
Xcx
:F


E0F
F
-OO @FU208 (KVpGd pG
+OO @FU208 (KVpGd pG
!(h
! p\
!p(h p\
@@ -684,9 +680,9 @@ a(1"0F
!si Kp\X
! t(j 2
! @p\M
-!`t(j 8p\E#tZ ?#sbp
+!`t(j 8p\E#tZ ?#sbp
$p҃#,qkp# p#
-$pV 8(O
+$pV 8(O
FFHF
BF F
>F%h(F
@@ -705,7 +701,7 @@ O
O
O
O
-PF
+PF

@@ -729,7 +725,7 @@ hB`#
`
8F
F
-##
+##
IF0F
EF0F
A0F
@@ -751,7 +747,7 @@ hB`#

(F
F
-#
+#
4F(F
0(F
,F(F
@@ -773,63 +769,64 @@ x@X p`
|HF
y
v0F
-s$$
+s$$
# BTPF[
-
+
0GF
0F8ZF
0F
HFZF
HF
- Y
+ Y
PFQFZF
PFQFZF
PF[FR@RFPGF
FFJ RiGJ
- G
+ G
FGF
FGF
FnGF
FGF
FGF
OFFmGF
-!F KFmGF
+!F KFmGF
OF;nGF
~OFFmGF
qOFmGF
-NF3nGF
+NF3nGF
QO!hFmGF
CO
FnGF
-OmFGF
+OmFGF
uOFmGF
-`h)FmFGF
+`h)FmFGF
i AF "0F#`
- 0F
-K(F*F@KFGF
-7pZ( RmG
-FGF
-(F)FOIX(F)F2F#F*F)F3F@F
+ 0F
+K(F*F@KFGF
+7pZ( RmG
+FGF
+(F)FOIX(F)F2F#F*F)F3F@F
MgI0F_z1F O  #F {O O
!^F
27OE

-!F !F !F
-ch"
+!F !F !F
+ch"
F>KFFF;F
-:/FF
+:/FF
@6K FLF
+I*H
-x0F
-Jh0`JBZ`
-F J`Y`h```h`KhQ` F)F
-Q2$
-زBؕBشB3B
+x0F
+Jh0`JBZ`
+F J`Y`h```h`KhQ` F)F
+Q2$
+زBؕBشB3B
ȿ$,($+U
-+,
++,
+232//-O@EFFF
; 
ܸ#fи*fи @X.jи0и-@_U
3h6C{j
@@ -842,8 +839,7 @@ Jh0`JBZ`
"
" Fx<F F "
#x( ! AqF FT  ZF
-
- 3; 3 33H1@@8@Bddhl
+3 333H1@@8@Bddhl
;<
E
պ
@@ -853,39 +849,39 @@ Jh0`JBZ`
 :
 2ZE{ #a
-;9
+;9
-Xn`vh`mh`42, 8Q8Fi#U<[j `kG#ij+U<iG8@"-CFFFF FiF F#;`#AF;`Y<pk"hjkFG!FFhF
-
+Xn`vh`mh`42, 8Q8Fi#U<[j `kG#ij+U<iG8@"-CFFFF FiF#F#;`#AF;`Y<pk"hjkFG!FFhF
+
(F!F:Fsih4
oF  FFOhF
-8
-)
+8
+)
-
-C
-`
+
+C
+`
FFFs i[i
:*+$$**V<hFIhp`2`h
zhh

- 7
-!iF
+ 7
+!iF
"
-cj ##jFpFF OqF85
+cj ##jFpFF OqF85
F FF
F FQ8Fh\ F ah
-h!q2FQ@BF
+h!q2FQ@BF
p hp
qCqˈ
qˈ1q0мKx
xCcxCxC#`
-yKyC#yy1C#"À0
-i 9F2F
+yKyC#yy1C#"À0
+i 9F2F
 pG
 pG
z pG
-B pG-AFFFF{Q)F@p"(F9F2F#FA -AFFFF۱6)F@p")FBp")FDp"(F9F2F#FA F
+B pG-AFFFF{k)F@p"(F9F2F#FA -AFFFF۱P)F@p")FBp")FDp"(F9F2F#FA F
' '
'T74',T7
@@ -900,10 +896,10 @@ wa
U )F
Z \  ] 
^ )F
-pbJphO"php
+pbJphO"php
f,h  i 
j w)F
-pbJphO"php
+pbJphO"php
L  
4s)F
pJpbhO"pbhpx
@@ -1025,33 +1021,34 @@ h `:`9F"F3F""?GE

Fx1BxFF3x
-
+
GoQcpn
g))/F
'&&\8!.*Zm,M߳ 8ScTs
ew<
jvG.;5,rdL迢0BKfpK0TQlReU$* qW5ѻ2pjҸSAQl7LwH'Hᵼ4cZų 9ˊAJNscwOʜ[o.h]t`/CocxrxȄ9dnj(c#齂lPyƲ+SrxqƜa&>'!Ǹ}xnO}orgȢ}c
?G5 q}#w($@{2
-<L gCB>˾L*~e)Y:o_XGJDl2m2I2u102A2222
-
-
-
-
+<L gCB>˾L*~e)Y:o_XGJDl{2e2A2u10292 222
+
+
+
+
'8!.m,M 8STs
e
-jv.,r迢KfpK£Ql$օ5pjl7LwH'4 9JNOʜ[o.htocxxȄnjlPxq92
-
-
-
-3W
-3
-3
-3
-
-
-
-
-
+jv.,r迢KfpK£Ql$օ5pjl7LwH'4 9JNOʜ[o.htocxxȄnjlPxq2
+
+
+
+3l
+3
+3
+3x 3 3
+3. 3k 3 3
+
+
+
+
+
|B|
!\hT[:.6$g
WҖO aiKwZ
@@ -1178,7 +1175,7 @@ CPUID 0x%x CPSR 0x%x (read from SPSR)
-
+
@@ -1201,14 +1198,14 @@ CPUID 0x%x CPSR 0x%x (read from SPSR)
-
+
-
+
@@ -1234,4 +1231,4 @@ CPUID 0x%x CPSR 0x%x (read from SPSR)
aml-sha1
;3+#>6.&=5-% <4,$   

- 
+ 
diff --git a/secureos/gx/bl32.img b/secureos/gx/bl32.img
index 6bc8909..b22895f 100644
--- a/secureos/gx/bl32.img
+++ b/secureos/gx/bl32.img
@@ -1,47 +1,44 @@
e4'
-o
-
+o
+
#
-#
-
-
-"
- 
-
-"
-ixNE F
-vN?
-YI
+#
+
+
+"
+"
+YI
SI
-۲F
-F FBKhBK
-'#
-F
-G. iJa (F#
+۲F
+F FBKhBK
+ 4
+G4 F "
+G #
+I#FGF FI
+G F$%
Kka
-KZh*b5`]`HH
+KZh*b5`]`HH
BohXXP
K"
-H@(
-
-;`
-
-!F2F
-+ F9Fj
+H@(
+
+;`
+!F2F
++ F9Fj
Q
Q
-Q
-K Esa#a
+Q
+K Esa#a
-A"޼# F3`K+`
+A## F3`K+`
-E
+E
,
-E""@
-CB`V" B3B`pG
-
-p
+E""@
+CB`V" B3B`pG
+
+p
@@ -50,379 +47,398 @@ CB`V" B3B`pG
/
/
/
-/F )FF
-Zh:x"p
-Z`
+/F FF
+Zh:x"p
+Z`
K SBSL B3S
-FF30F KBS,BSL:B
-# 'wF? ?K
+FF30F KBS,BSL:B
+# 'wF? ?K
P
5
 AF
-
+
PCFSS,
-CCL 
- 
-H@Y!J
+CCL 
+ 
+H@_!J
-k@F!hh*ر
+k@F!hh0ر
BV8/ "h8XB&`hhzh BhbhyhB4 FF h{`B,
-0`#ah E
+0`#ah E
i = 'w-? #-??
F3h
@h+-
- JEEE0iB@  L\CCP`L}B``ap
+ JEEE0iB@  L\CCP`L}B``ap
Z B`E E D G `1 ) H3+Ѣkh0
-C`eck %c8H(3-GFFFF
+C`eck!+c8883-GFFFF
-kBYCh8FIFhpk
+kBYCh8FIFhpk
-kXYZQhFk@F![h_@k]hCD
-KB
-
+kXYZQhFk@F![he@k]hCD
+KB
+
?O
2?#?#P?@j
k@i :_вRB@`
-
-M
-
-K"! H(FK``cb
-FG
+
+M
+
+K"! H(FK``cb
+FG
Eѝ
-0
-JOq H
+0
+JOq H
-
-#hG8"
-
+
+#hG8"
+
+hD$F]#DBB3$+
K"
-H!
+H!
+F(
-H[
-
-F6K
-Hh
-(`
+H[
+
+Fv6K
+Hh
+(`
(JhK "`JhK`pGJKh
-pYp p p
-K
- K
- K
- K
- K
- K
-K
-K
+pYp p p
+K
+ K
+ K
+ K
+ K
+ K
+K
+K
K
-H!
-"!cd"Add 262k F:* K
+H!
+"!cd"Add 22k F:* K
*( 
-@j@h
-K`0FiK`Zh"p""?B
+@j@h
+K`0F_K`Zh"p""?B
J``KhB
`"h
dbhJdhdhdL
-"i+J`bi`٣iBJ`iS`k+ ѣl=J`#jbcjcjScjc+6K "` j5K``j3K`j2K`j0K`k#lak
-(FIF2F
-! !
-K@b
-5
+"i+J`bi`٣iBJ`iS`k+ ѣl=J`#jbcjcjScjc+6K "` j5K``j3K`j2K`j0K`k#lak
+! !
+K@b
+5
C##
*)OU1O1!K!J)!KO2` JO2Z`"K)OU1O1`Y`J)h C*C##*`
-K"
-HGF@ K" Hb!
-H# IF" FAH0 F)F"8@68!
-H
-HAFF:F(F
-HI+h3
-K`Kh2`Kh
+K"
+HF@ K" Hb!
+H IF" FH0 F)F"8@8!
+HF HFP0F9 -4*F "O4 F!
+HAFF:F(F
+
+
+
+
+`
+JF
+ca4Kh
+a3Kh
+a1Khh B#`C"c.Khh B#`C*Kh B"h"* h+0$Khh B#`C"F
+ h
+
+#EGFFOqhCo d!
+` 8OrXO0@
++0x+Op`1F8F(̿0 *
+1+Bo"F+F
+0w6pEڴF
+3@P2@o(F(F+(%"
+HID+h34K`Kh2`Kh*Bє,0 %ei
HF3h+`'x F 0 F :FhGFHFeMO
- ` F
-J
-F)Fhh$iG8|938FK
-F)FhhdiG8|93KXh
-
+ ` F
+J
+F)Fhh$iG8lI38FK
+F)FhhdiG8lI3KXh
+
FB! <B
@@#
-
+
"FHF
-W1F 
-
+1F 
+

-  O 
-
-kGFx@FeF 5F
+G? O 
+
+kGFx@FeF 5F
OF9(F!F
KFG
-
-=F O=F O
+
+=F O=F O
?(F 1FG
-@#G`*$
-JF@%OD%E 
-IF F F
-
-
- @
+@#G`*$
+JFz%OD%E 
+IF F PF
+
+
+ @

*
-O 0 !XFF
+O 0 !XFF
*
-+++h0FZй`
++++h0Fй`
, #iˎ
-SF
+SF
- FY
-6FEKFK
+ FYY
+6FEKFK
-K KF
-GKGHhZh #B%
-FF #FF$F4 F F
-@+"i QF
+K KF
+GKGHhZh #B%
+FF #FF$%F4 !F F
+@+"i QF
h 
+ E  D 3BO
O F#
-1FX
+1FX

E B
-FFFFUFWF6"h#KB/FAFe
+FFFFUFWF6"h#KB/FAF

- 4Eѳh JB2Bѥb
+ 4Eѳh JB2Bѥb
-
-h FChB10+h
-OO h34ڈj rRiGzBӽl}2-CFjӱhF
-OO h34ڈj riGzBӽl}2
+
+h FChB10L+h
+OO h34ڈj rRiGzBӽ,2-CFjӱhF
+OO h34ڈj riGzBӽ,2
Hh!
-3ڈj9F BFG04zBH
+3ڈj9F BFG04zBH
O hj
3ڈj @YiG
-)KB
-8(
-K[nKnKoK[o{)FGO3`5a
-
-
+)KB
+8(
+K[nKnKoK[o{)FGO3`5a
+
+
-3CEрLYF
-t`hhGFȹ(F1FJE(F1FJ@(F1FJ;J(F1F6LL
-
-L L )FF
-
-**JhiGiipjj JjkLhihGH
+3CEрLYF
+t`hhGFȹ(F1FJ(F1FJz(F1FJuJ(F1FpLL
+
+L L )FF
+
+**JhiGiipjj JjkLhihGH
**
-Ji JVkFi*F#FGFH
+Ji JVkFi*F#FGFH
FFFF
-1hiaF
-uAF(FJF#FF
+1hiaF
+uAF(FJF#FF
RB@7! OqOq@ !
- jGF`YF O@B
+ jGF`YF O@B
 2h+<

-2hF YF
-
-AF"*F
-pF
+2hF YF
+
+AF"dF
+pF
KB
-"$
-oF
+"^
+F
AF
 F ,GF)@;Iph+z9F2F(F5KFp
@ F,CF0(XB3+I
- F
- 
-
-F
-F
+ F
+ 
+
+F
+F
N
N
-N(FN
-
-F
+N(FN
+
+F
` bF
-L
-F/#;F"#"
+L
+F/#;F"#"
KB
-E)FO
+E)F
L
-L
+L
+282
F
-O
+O
F
-!i$#c ai.Kh $# jk
-N  F N
-$h
-. *F
-"`+`
-0F
+!i$#c ai.Kh $# jk
+N  F? N
+$h
+. *F
+"`+`
+0F
!h+1
!h[
1!+i[h1! !
-!ii!p"iڱ
+!ii!p"iڱ
Kh:F3F*F
-
-#
-K!O
+
+#
+K!O
!"0#F"jF
-LLK"h@ > F&p93x~2
-L
-
+LLK"h@ > F&pI382
+L
+

PO
3E
-[k
+[k
03CD
-0 F
-!"` 0*SFF
-FFF&
-O
-TPH
-
-LH(Fg F *393
-+FIFS :F@D
-IFh
+0 F
+!"` 0*SFF
+FFF&
+O
+TPH2
+` PF=:3I3
+
+LH(F F :3I3
++FIFS :F@D
+IFh
W(h
-
-
-7O*9_D?% _4]FOU _IF"FU
+
+
+7O*9_D?% _4]FOU _IF"FU
V!F(hJF3FF
-
-(,D#2`!F!B"(Fw!>#XCC7B#7`
-A
+
+(,D#2`!F!B;"(Fw!#>#XCC7B#7`
+A
#F
-l0F!FhBI0F!*FKFnh5QFB"00B)L+F
-1
-
-0p;0N
+l0F!F.hBI0F!*FKFnh5QFB"0I0B)L+F
+
"
-# 
-# 
-E
+# 
+# 
+E
$
-E F@_@F5)FF@#@F/pd
-GF0k0FI:F #GF0FL
-[F
-#GF0eiPF9I #GFPF
-iI)GFPF
- "0, B
-
+E ;F@_@F51)FF@#@Fipd
+GF0k0FI:F #GF0FL
+[F
+#GF0eiPF9I #GFPF
+iI)GFPF
+ "0, B
+
Oc@DcOHsOhs `
KB OsOss `
-
- h ch #ihMKBSBSB@0@@F
+
+ h ch #ihMKBSBSB@0@@F
@FlG
-@FyG
-"KB "KB !H!H!H!H!H
-
-!F
-lGB.(FFPK"H@Q
-
-
-
-h ch `Hh #iciii-KBS(F5
-L F"0(
-h kh `Hh +ikiii>KB"أ@SBЌ:K
-kh F
-+K lG+h(`B(LH0FZF
+@FyG
+"KB "KB !H!H!H!H!H
+
+F
+lGB.(FFPK"H@Q
+
+
+
+h ch `Hh #iciii-KBS(F5
+L F"0(
+h kh `Hh +ikiii>KB"أ@SBЌ:K
+kh F
++K lG+h(`B(LH0FZF
K"LOa
-H F
- 6(ر(( "J@AAH
-* I"F
-3h2`BL!)FV(F{
-K L"
-KL"
-p3+3
-Gih Gi)i G0F8F
-
-p+3
-
-p+3
-Gii G0F8F
-KBsB HH
-
-
+H F
+ N(ر(( "J@AAH
+* I"F
+3h2`BL!)F~(F
+K L"
+KL"
+px3p;3
+Gih Gi)i G0F8F
+
+pp;3
+
+pp;3
+Gii G0F/8F
+KBsB HH
+
+
- -KB%ңsBO3B3BIaE $KB@aE-!KB8)F2F#F**')F2F#F )F2F#F4c
-A
-
-*hiFK@F`jh[m"aJFGhQF:Fz>hFh' I
-L(+
+ -KB%ңsBO3B3BIaE $KB@aE-!KB8)F2F#FB*')F2F#F. )F2F#F4c
+A
+
+C*hiFK@F`jh[m"aJFGhQF:Fz>hFh' I
+L(+
F,
-FFKBsB%
-
-(F
-
+FFKBsB%
+
+(F
+
--KBPJF*F
+-KBPJF*F!
-KB%PAq)KB3B3B F@ߺ@@'
-F(E
-
-a)H&(H#(H 'HM'HJ&HG&HD%HA%H>$HghhF0V3xO
-
-
+KB%PAq)KB3B3B F@@𝻽@?
+F(m
+
+y)H>(H;(H8'He'Hb&H_&H\%HY%HV$HhhF0V3xO
+
+
@FlG
-@FqG
+@FqG

-Ro?L
-khh
-75LT
- H@^K"
-@F9F2F 8F`K@f H"
-L
- B1
+jo?L
+khh
+O5LT
+! H@^K"
+@F9F2F PF`K@f H"
+
+ B1
zOj

O
-O x2xixBH
+O x2xixBH
zOj

O
-O x3xixBH&Fȱ 1"Q9F#O  FCF0F"?
+O x3xixBHHFȱ 1"y9F#O  FCF)0F"g
zOj

O
-O x3xixBHIF
-ٱӱϱH4@w#
-ٱӱϱH@w#
+O x3xixBHIF
+D HFQF:F Fq]
+ J@qUZU5-<
+
+
03
-"F
+"F
CC<#
-҂"<#=#S@=3#!C<#=#C=#>#b>#?#B?#@#"@#A#S@A3# 3$#SCL3
-JOp3FR#0"FiG
-l#c\2 l# \32l# #* #OpFY" i"FG  #52< #
+҂"<#=#S@=3#!C<#=#C=#>#b>#?#B?#@#"@#A#S@A3# 3$#SCL3
+JOp3FR#0"FiG
+l#c\2 l# \32l# #* #OpFY" i"FG  #52< #
' '
7''7' 
' '
-3F'
-T'5J@ 3+:hB;`0F! F04-GFFF
-%DOS
+3F'
+T'5J@ 3+:hB;`0F! F4-GFFF
+%DOS
F
F @ H @q@ T@L Z#@ LLD]3+ hFDF
F!F 
@ H   T@LDY#@\D7L3 +  f .F
F!F4FZ#`  ^D H u ` 3V@l0+  5De F&D!F4F.Fdd P Hf  U@\DZ#PMD8 P3@+ b
-F5D
+F5D
K
F*F#F8LOe,M@e
@@ -452,7 +468,7 @@ Kb
KCbFpG pG

FF;FZFOU pU
-
+
Kb`
K`
Ka
@@ -474,49 +490,49 @@ CckCs{Cs#O OHEh A 
OBj JOCjJ
 Eg
G 
-E 
-2BE
+E 
+2BE
O
-viHFYF
-_J@ !
-
- 
+viHFYF
+_J@ !
+
+ 
4 , J
-KC$PH 4 ,HO4
+KC$PH 4 ,HO4
4 , J
-KC$PH 4 ,HO4
+KC$PH 4 ,HO4
4 , J
-KC$PH h 4 ,HO4 _
-ah
-G
-
-
-IQ" )FjFG
-
+KC$PH h 4 ,HO4 _
+ah
+G
+
+
+IQ" )FjFG
+

-Eѻ
-IQ" )FiFGFPF\\J@T3+0F Fp04-OFFFF {
-AF"6? ( i@FYFG
+Eѻ
+IQ" )FiFGFPF\\J@T3+0F Fp4-OFFFF {
+AF"6? ( i@FYFG

JAFR#0FrjG!8F
+FoйF;|\#T34tLE\U4,1F
-+FW
++FW
i  bi
- 1F >d
-hi
+ 1F >d
+hi
iIF ci "3F@FF
- ci 3F&`F;#iO
-l iGch
+ ci 3F&`F;#iO
+l iGch
qH
0
-QF
-& F
-  .F
-!CZF"
- .i  nii.ji#F"uF@T KhkG
-l5m FG9 FADGF
-i IF8FCFF[i GG#40!hGh"ah8F
+QF
+& F
+  .F
+!CZF"
+ .i  nii.ji#F"uF@T KhkG
+&l5m FG9 FADGF
+i IF8FCFF[i GG#40!hGh"ah8F
F
QFZFKFF
GF
@@ -527,61 +543,60 @@ IQ" )FiFGFPF\\J@T3+0F Fp04-OFFFF {
FGF
GF
*jGF0iGFpi)iGF@iiiGF#+`+j
-
-\ 8FIFBF(
+
+l 8FIFBF(
m
O 
- < d ! "()+ ,lxhG F
-F8F!h2SFB
-
-J+@XFF
-F
--FB?P{B?LXF04+3F@h K[iG
- @:F
-4JUmFGF
-
+ < d ! "()+ ,lxhG F
+F8F!h2SFB
+
+J+@XFF
+F
+-FB?P{B?LXF4p;3F@h K[iG
+ @:F
+4JUmFGF
+
GF
 GF
- GF
+ GF
F
-Qi"GF
+Qi"GF
L lGF#m GF
(`h` .0;@<EAF``,u,a(bke cg*clc0
-<@c0PeBed@,fx@@@ @@@
-F
-PFC
+<@c0PeBed@,fx@@@ @@@
+F
+PFC
 
-
-  $Ꭽ!#)``b:+c
- `,u,ablc<@cȃCD
-
+
+  $Ꭽ!#)``b:+c
+ `,u,ablc<@cȃCD
+

- 
-2`"bB"b5k`F`*cbOcje"
+ 
+2`"bB"b5k`F`*cbOcje"
-
-j`FbObbB#`+cke#e0tc<@c
+
+j`FbObbB#`+cke#e0tc<@c
-
-
-/
-
-_
-
- F)F( F!F*F;h kXhF!F8F
+
+
+?
+o
+
+ F)F( F!F*F;h {XhF!F8F
Kh+F
-G F
-H
+W F
+X
OepS%`%UiF u@FS&`u@&S&`Fu@.qq. Nq.
=qS%`_*%iF u@FS&`
'Prih@P@S$ P@S* B
s sJs
-s
+s
OepS%`%eiF u@FS&`u@&S&`Fu@.qq. Nq.
=GqS%`ղ%iF u@FS&`*u@&S&`Fu@.rr. Nr.
S"P rE
s sJs
-s
+s
? ? \'pX+'FMOW+pGFIOjW+pEOW*
'V'p GU'pi T)p h 3h1_@?
X*
@@ -591,225 +606,224 @@ X*
BU" gT'p
$J'R'p"J
GR'piJ
-R)pBOr1K@J@Os$b@$33Z@AK@A2S@C``
+R)pBOr1K@J@Os$b@$33Z@AK@A2S@C``
@% @$  
 2*
 7
 28*
@$?~p?P%`Q"pG
-@%2*3+
-
-
+@%2*3+
+
+
40 F9FG8O
B80 FGC6F.O+pnp.؁#pkp5?҂#pkp3
p5
҃#.qkp3 p3
p5
F
-GFk F  GEѳk FGFNAF3lG K[iG!FmFG
-3
+GFk F  GEѳk FGFNAF3lG K[iG!FmFG
+3
u
-a(1"0F
-$$
-F
+a(1"0F
+F
V <VṾ+M
-@]J@BP1` 6%u%a(4$ #8F
-$$
-eFXFF
-#8F
-*
-F
-F F
-Xcx
-AXF!F5FO
-:F
- 
+@]J@BP1` 6%u%a(4$ #8F
+$$
+uFXFF
+#8F
+:
+*F
+F F
+Xcx
+QXF!F5FO
+:F
+ 

E0F
- F
-OO @F;208 (KVpGd pG
-!(h
-! p\
-!p(h p\
-!phh
-! p\
-! qhh p\
-!`qh
-! p\
-!qh p\
-!qh
-! p\
-! rh p\
-!`r(i
-! p\
-!r(i p\
-!rhi m
-! {p\
-! shi sp\x`s+j iiN
-!si M
-! [p\`
-!si Sp\X
-! t(j :
-! Hp\M
-!`t(j @p\E#tZ ?#sbp
+ F
+OO @FG208 (KVpGd pG
+!(h
+! p\
+!p(h p\
+!phh
+! p\
+! qhh p\
+!`qh
+! p\
+!qh p\
+!qh
+! p\
+! rh p\
+!`r(i
+! p\
+!r(i p\
+!rhi }
+! p\
+! shi p\x`s+j iiN
+!si ]
+! kp\`
+!si cp\X
+! t(j J
+! Xp\M
+!`t(j Pp\E#tZ ?#sbp
$p҃#,qkp# p#
-$pV 8(O
-NFHF
-JF F
-FF%h(F
-S8F
-O
-IYF"F 8
+$pV 8(O
+^FHF
+ZF F
+VF%h(F
+c8F
+_
+YYF"F 8
O
-aBFYD(F
-
-
+aBFYD(F
+
+
+]b
`i
-#`O 0FF
-8F
-(F
-O
+#`O 0FF
+8F
+(F
+O
O
O
-PF
+PF

E
-GF0F
-CF@F
-?F$h F
-L8F
-H
-BCm
+WF0F
+SF@F
+OF$h F
+\8F
+X
+RCm
-!#
+1#
0D
-
+
(F:KAFS"0[iG@EFQ!FZF ;F 9
hB`#
-!F
-D2
+!F
+D2
`
-8F
- F
-##
-QF0F
-MF0F
-I0F
-E F4 F
-N(F
-JF
-E
-> <+# F:RFYF
-@F
+8F
+ F
+##
+aF0F
+]F0F
+Y0F
+U F4 F
+^(F
+ZF
+U
+N <+# F:RFYF
+@F
JF
-
+

BoR

E
-`.['0[mGF
+`.['0[mGF
aRmGF['0)FmGFH(FAFJF
-U`@F
-
-(F
- F
-#
-<F(F
-8(F
-4F(F
-0FF
-9F
-4
-.
-'
-[' RmGF
+U`@F
+
+(F
+ F
+#
+LF(F
+H(F
+DF(F
+@FF
+IF
+D
+>
+7
+[' RmGF
1Fm"GF
m GF
IFmBFGF
QFmGF
-" IFX 0BF
-8FQFoFD
-xWQF
-rW"U
+" IFX 0BF
+8FQFoFD
+WQF
+W"U
x@X p`
-HF
-
-~0F
-{$$
+HF
+
+0F
+$$
# BTPF
-
-
+
+
0GF
0F8ZF
0F
HFZF
HF
- Y
+ Y
PFQFZF
PFQFZF
PF[FR@RFPGF
FFJ RiGJ
- G
+ G
FGF
FGF
FnGF
FGF
FGF
OFFmGF
-!F KFmGF
+!F KFmGF
OF;nGF
~OFFmGF
qOFmGF
-NF3nGF
+NF3nGF
QO!hFmGF
CO
FnGF
-OmFGF
+OmFGF
uOFmGF
-`h)FmFGF
+`h)FmFGF
i AF "0F#`
- 0F
-K(F*F@KFGF
-7pZ( RmG
-FGF
-UgI0F_z1F O  #F {O O
+ 0F
+K(F*F@KFGF
+7pZ( RmG
+FGF
+egI0F_z1F O  #F {O O
-!fF
- :7OE
-
-!F !F !F
-ch"
-FFKFFF;F
-:/FF
-@6K FTF
-+I*H
-x0F
-Jh0`JBZ`
-F J`Y`h```h`KhQ` F)F
-Q2$
-زBؕBشB3B
+!vF
+ J7OE
+
+!F !F !F
+ch"
+FVKFFF;F
+:/FF
+@6K FdF
++I*H
+x0F
+Jh0`JBZ`
+F J`Y`h```h`KhQ` F)F
+Q2$
+زBؕBشB3B
ȿ$,($+U
-+,
++,
; 
ܸ#fи*fи @X.jи0и-@_U
3h6C{j

-`H`"
-F O
+`H`"
+F O

AEq0
"
" Fx<F F "
#x( ! AqF FT  ZF
-
+3333H1@@8@Bddhl
;<
E
պ
@@ -819,100 +833,101 @@ Jh0`JBZ`
 :
 2ZE{ #a
-;9
+;9
-Xn`vh`mh`42, 8Y8Fi
-
+Xn`vh`mh`42, 8i8Fi
+@F>(F!F:FO3A-CFO F(F&h.
+
(F!F:Fsih4
-oF  FFOhF
-8
-)
-
-
-C
-`
+oF  FFOhF
+8
+)
+
+
+C
+`
FFFs i[i
-:*+$$**V<hF hp`2`h
+:*+$$**V<hFhp`2`h
zhh

- 7
-!+F
+ 7
+!F
"
-cj ##jFCpFF OqdF85
-F FF
-F F8Fh\ FPah
-h!q2FQ@BF
+cj ##jF=pFF OqdF85
+0F\3+F
+F FF
+F F[8Fh\ Fah
+h!q2FQ@BF
p hp
qCqˈ
qˈ1q0Kx
xCcxCxC#`
-yKyC#yy1C#"À0z
-i 9F2F
--AFFFF- F9F2F+FA͸pG pG
+yKyC#yy1C#"À0
+i 9F2F
ü pG
} pG
D pG
-  pG-AFFFF{)F@p"~(F9F2F#FA -AFFFF۱)F@p"c)FBp"])FDp"W(F9F2F#FAj F
-
+  pG-AFFFF{)F@p"~(F9F2F#FA -AFFFF۱)F@p"c)FBp"])FDp"W(F9F2F#FAj F
+
' '
'T74',T7

Tu8F)F
7 3T+7T8FYF
-
-O
-wa
+
+O
+wa
wa
YW  V 
-U )F
+U )F
Z \  ] 
-^ !)F
-pbJphO"php
+^ )F
+pbJphO"php
f,h  i 
-j m)F
-pbJphO"php
+j ])F
+pbJphO"php
+
L  
- 4c)F
+ 4S)F
pJpbhO"pbhpx
-qbJq"hO"qT+q
-` 8kh
--GFFF
-萇Fpi
-FBO
--GFFFF@:7.
-7 !.Fp
+qbJq"hO"qT+q
+` 8kh
+-GFFF
+萇Fpi
+FBO
+-GFFFF@:7.
+7 !.Fp
+3a h?+ VF 
-86
-%D iF
- BFIF0F Fm
-(BF0F FdHF !
-8
-1FFH(F F `
-*)(F"F
-*4..2 F*F
+86
+%D iF
+ BFIF0F Fm
+(BF0Fx FdHF !
+8
+*)(F"F
+*4..2 F*F
pq"q bq
-q
+q
pq"q bq
-q
+q
pq"q bq
-q
+q
pq"q bq
-q
-FFUFZ
+q
+FFUFZ

( EѨ - ?+߀k"hB#` +1#0#-3pOup#-؁#psp#?҂#psp+
p#
҃#5qsp+ p+
p#"h
-#`;hhxh
- 
+#`;hhxh
+ 
"FF
-3
-%F
+3
+%F
- a
-%aeF
-+8(x0lxвB$
+ a
+%aUF
++8(x0lxвB$
?҂"pbp*
p"
?҂"pbp*
@@ -924,15 +939,15 @@ Z O
O
L ɲѡT2
-D
+D
&p҃#%qcp+ &p+
-p
+p
=F<F C
p#(!rh 3h ;#*FFO
p҃#,qkp# !p#
-p\T2Bъ2`(0 (0?00`
+p\T2Bъ2`(0 (0?00`
&p҃#%qcp+ &p+
-p
+p
Jh01
F
  B FAF h
@@ -968,7 +983,7 @@ F
Y'
&v
OD
- *F6MFW
+ *F6MFW
@BF
74
@@ -980,7 +995,7 @@ B
1
FFF!F9FBF#F1F
FFF!F9FBF#F}1F
-FFF!F9FBF#FN1F
+FFF!F9FBF#FN1F
ڰG
Z6:h
8X'O (F OI  
@@ -992,30 +1007,32 @@ h `:`9F"F3F""?GE
3FE !FXF

-Fx1BxFF3x
-
+Fx1BxFF3x
+
GoQcpn
g))/F
'&&\8!.*Zm,M߳ 8ScTs
ew<
jvG.;5,rdL迢0BKfpK0TQlReU$* qW5ѻ2pjҸSAQl7LwH'Hᵼ4cZų 9ˊAJNscwOʜ[o.h]t`/CocxrxȄ9dnj(c#齂lPyƲ+SrxqƜa&>'!Ǹ}xnO}orgȢ}c
?G5 q}#w($@{2
-<L gCB>˾L*~e)Y:o_XGJDl11q1u101i1;111
-
-
-
+<L gCB>˾L*~e)Y:o_XGJDl222u1022S222
+
+1 1}110k2
+
+
'8!.m,M 8STs
e
-jv.,r迢KfpK£Ql$օ5pjl7LwH'4 9JNOʜ[o.htocxxȄnjlPxqƯ2
-
-
-
-
-
-
-
-
-2
+jv.,r迢KfpK£Ql$օ5pjl7LwH'4 9JNOʜ[o.htocxxȄnjlPxqz2
+
+
+
+
+
+
+
+3
+30 3 3
+
|B|
!\hT[:.6$g
WҖO aiKwZ
@@ -1076,7 +1093,7 @@ o/Dyeڜ
FSR 0x%x PC 0x%x TTBR0 0x%X CONTEXIDR 0x%X
-CPUID 0x%x CPSR 0x%x (read from SPSR)
+CPUID 0x%x CPSR 0x%x (read from SPSR)
@@ -1142,14 +1159,37 @@ CPUID 0x%x CPSR 0x%x (read from SPSR)
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -1175,4 +1215,5 @@ CPUID 0x%x CPSR 0x%x (read from SPSR)
SECP112R1
;3+#>6.&=5-% <4,$   

- 
+ 
+2
diff --git a/secureos/txlx/bl32.img b/secureos/txlx/bl32.img
index 5f641e6..d194375 100644
--- a/secureos/txlx/bl32.img
+++ b/secureos/txlx/bl32.img
@@ -1,45 +1,44 @@
e4'
-o
-
+o
+
#
-#
-
-
-"
- 
-"
-[xNE F
-vN?
-YI
+#
+
+
+"
+"
+YI
SI
-۲F
-F FBKhBK
-'$`
-F
-9. iJa (F$y
+۲F
+F FBKhBK
+ 4
+G4 F "
+G #
+I#FGF FI
+G F$
Kka
-KZh*b5`]`HH
+KZh*b5`]`HH
BohXXP
K"
-H@(
-
-;`
-!F2F
-+ F9Fj
+H@(
+
+;`
+!F2F
++ F9Fj
Q
Q
-Q
-K Esa#a
+Q
+K Esa#a
-A## F3`K+`
+A$# F3`K+`
-E
+E
,
-E""@
-CB`V" B3B`pG
-
-p
+E""@
+CB`V" B3B`pG
+
+p
@@ -48,392 +47,416 @@ CB`V" B3B`pG
/
/
/
-/F FF
-Zh:x"p
-Z`
+/F FF
+Zh:x"p
+Z`
K SBSL B3S
-FF30F KBS,BSL:B
-# 'wF? ?K
+FF!30F KBS,BSL:B
+# 'wF? ?K
P
5
 AF
-
+
PCFSS,
-CCL 
- 
-H@Y!J
+CCL 
+ 
+H@_!J
-k@F!hhر
+k@F!hhر
BV8/ "h8XB&`hhzh BhbhyhB4 FF h{`B,
-0`#ah EN
+0`#ah E>
i = 'w-? #-??
F3h
@h+-
- JEEE0iB@  L\CCP`L}B``ap
+ JEEE0iB@  L\CCP`L}B``ap
Z B`E E D G `1 ) H3+Ѣkh0
-C`eck!c873-GFFFF
+C`eck"c8PG3-GFFFF
-kBYCh8FIFh8pk
+kBYCh8FIFh(pk
-kXYZQhFk@F![h@k]hCD
-KB
-
+kXYZQhFk@F![h@k]hCD
+KB
+
?O
-2?#?#P?@j
+2?#?#P?@j
k@i :_вRB@`
-
-M
-
-K"! H(FK``cb
-FG
+
+M
+
+K"! H(FbK``cb
+FG
Eѝ
-0
-JOq H
+0
+JOq H
-
-#hG8"
-
-FT 2D  (F H!F " ) K
-[hD$F]#DBB3$+
+
+#hG8"
+
+hD$F]#DBB3$+
K"
-H!
+H!
+F(
+F(
+
+F(
-H[
-8F(I F(
-
-Fr6K
-Hh
-(`
-232Tc2Xc42cK2|c`2xc|2c2c2c2c2
+H[
+
+cF(
+8F(I
+@F(
+WK"HOq
+
+FR6K
+Hh
+2\c(2hcE2lca2pcx2tc2c2̈c2Ȉc2c2c 2c 2c52HcL2Dca2@c}2Lc2?K!?J@Hh
+q(`
(JhK "`JhK`pG 0
-pYp p p
-K
- K
- K
- K
- K
- K
-K
-K
+pYp p p
+K
+ K
+ K
+ K
+ K
+ K
+K
+K
K
-H!
-"!cd"Add 2&2k F:* K
+H!
+"!cd"Add p22k F:* K
*( 
-@j@h
-K`0FK`Zh"p""?B
+@j@h
+K`0FK`Zh"p""?B
J``KhB
`"h
dbhJdhdhdL
-"i+J`bi`٣iBJ`iS`k+ ѣl=J`#jbcjcjScjc+6K "` j~5K``jy3K`jt2K`jo0K`k#lak
+"i+J`bi`٣iBJ`iS`k+ ѣl=J`#jbcjcjScjc+6K "` j^5K``jY3K`jT2K`jO0K`k#lak
hsl"@rB# `rj
-hsl"@rB# `sj 2Ks`2K`2K`2K3a2KsaZ0Ks`0K`0K`0K3a0Ksa0Ka0Ka.Ks`.K`.K`.K3a.Ksa.Ka.Ka.K3b
- 'O 'O'O@"'BFB O"FFIF"F QF*K
-j(FIF2FC
-! !
+hsl"@rB# `sj 2Ks`2K`2K`2K3a2KsaZ0Ks`0K`0K`0K3a0Ksa0Ka0Ka.Ks`.K`.K`.K3a.Ksa.Ka.Ka.K3b
+ 'O 'O'O@"'BFB /"FFIF"F QF*K
+! !
O
O
-!FJF
- "h
-K@b
-5
+!FJF
+ "h
+K@b
+5
+3o0+pOp ѫ~(F!Cvp(F!
C##
*)OU1O1!K!J)!KO2` JO2Z`"K)OU1O1`Y`J)h C*C##*`
-K"
-HQF@ K" Hb!
-H- IF" FH$0 F)F"8@v8!
-H
-F HFP0F9 -4*F "VO4 F!
-HAFF:F(F
-HIr+h3bK`Kh2`KhXBє,0 %ei
+K"
+HF@ K" Hb!
+H IF" FH0 F)F"8@8!
+HF HFP0F9 -4*F "O4 F!
+HwAFF:F(F
+
+
+
+
+`
++h
+ca4Kh
+a3Kh
+a1Khh B#`C"c.Khh B#`C*Kh B"h"* h+0$Khh B#`C"F
+ h
+
+#EGFFOqhCo d!
+` 8OrXO0@
++0+Op`1F8F(̿0 *
+1+l"F+F
+0w6pEڴF
+3@P2@o(F<#(Fkheb
+HI+h3K`Kh2`KhBє,0 %ei
HF3h+`'x F 0 F :FhGFHFeMO
- ` F
-J
-F)Fhh$iG8K38FK
-F)FhhdiG8K3KXh
-
+ ` F
+J
+F)Fhh$iG8[38FK
+F)FhhdiG8[3KXh
+
FB! <B
@@#
-
+
"FHF
-1F 
-
+1F 
+

-ME O 
-
-kGFx@FeF 5F
+ O 
+
+kGFx@FeF 5F
OF9(F!F
KFG
-
-=F O=F O
+
+=F O=F O
?(F 1FG
-@#G`*$
-JF%OD%E 
-IF F VF
-
-
- @
+@#G`*$
+JF%OD%E 
+IF F F
+
+
+ @

*
-O 0 !XFF
+O 0 !XFF
*
-+++h0Fdй`
++++h0Fй`
, #iˎ
-SF
+SF
- FY_
-6FEKFK
+ FY
+6FEKFK
-K KF
-GKGHhZh #B%
-FF #FF$+F4 'F #F
-@+"i QF
-L Fp
+K KF
+GKGHhZh #B%
+FF #FF$eF4 aF ]F
+@+"i  QF
h 
+ E  D 3BO
O F#
-1FX
+1FX

E B
-FFFFUFWF6"h#KB/FAFo
+FFFFUFWF6"h#KB/FAF

- 4Eѳh JB2Bѥb
+ 4Eѳh JB2Bѥb
-
-h FChB10R+h
-OO h34ڈj rRiGzBӽ$2-CFjӱhF
-OO h34ڈj riGzBӽ$2
+
+h FChB10+h
+OO h34ڈj rRiGzBӽ2-CFjӱhF
+OO h34ڈj riGzBӽ2
Hh!
-3ڈj9F BFG04zBH
+3ڈj9F BFG04zBH
O hj
3ڈj @YiG
-)KB
-8(
-K[nKnKoK[o{)FGO3`5a
-
-
+)KB
+8(
+K[nKnKoK[o{)FGO3`5a
+
+
-3CEрLYF
-t`hhGFȹ(F1FJO(F1FJJ(F1FJEJ(F1F@LL
-
-L L )FF
-
-**JhiGiipjj JjkLhihGH
+3CEрLYF
+t`hhGFȹ(F1FJ(F1FJ(F1FJJ(F1FzLL
+
+L L )FF
+
+**JhiGiipjj JjkLhihGH
**
-Ji JVkFi*F#FGFH
+Ji JVkFi*F#FGFH
FFFF
-1hiaF
-uAF(FJF#FF
+1hiaF
+uAF(FJF#FF
RB@7! OqOq@ !
- jGF`YF O@B
+ jGF`YF O@B
 2h+<

-2hF YF
-
-F
-AF"4F
-pF
+2hF YF
+
+AF"nF
+p8F
KB
-".
-F
+"h
+F
AF
 F ,GF)@;Iph+z9F2F(F5KFp
@ F,CF0(XB3+I
- F
- 
-
-F
-F
+ F
+ 
+
+F
+XF
N
N
-N(F
-
-F
+N(F:N
+
+F
` bF
-L
-F/#;F"#"
+L
+F/#;F"#"
KB
-E)FY
+E)F
L
-L
+L
F
-O
+O
F
-!i$#c ai.Kh $# jk
-N  FE N
-$h
-. *F
-"`+`
-0F
+!i$#c ai.Kh $# jk
+N  F N
+$h
+. *F
+"`+`
+0F
!h+1
!h[
1!+i[h1! !
-!ii!p"iڱ
+!ii!p"iڱ
Kh:F3F*F
-
-#
-K!O
+
+#
+K!O
!"0#F"jF
-LLK"h@ > F&p L302
-L
-
+L#LK"h@ > F&p[32
+L
+

PO
3E
-[k
+[k=
03CD
-0 F
-!"` 0*SFF
-FFF&
-O
-TPH`
-
-LH(F F =3L3
-+FIFS :F@D
-IFh
+0 F
+!"` 0*SFF
+FFF&
+O
+TPH
+
+LH:(F F L3[3
++FIFS :F@D
+IFh
W(h
-
-
-7O*9_D?% _4]FOU _IF"FU
+
+
+7O*9_D?% _4]FOU _IF"FU
+FP8FI"F#F
V!F(hJF3FF
-
-(,D#2`!F!BA"(Fw!)>#XCC7B#7`
-A
+
+(,D#2`!F!B{"(Fw!c>#XCC7B#7`
+A
#F
-l0F!FhBI0F!*FKFnh5QFB"0O0B)L+F
-
+l0F!F8hBI0F!*FKFnh5QFB"00B)L+F
+
"
-# 
-FP
-# 
-E
+# 
+# 
+E
$
-E  F@_@F57)FF@#@F9pd
-GF0k0FI:F #GF0FL
-[F
-#GF0eiPF9I #GFPF
-iI)GFPF
- "0, B
-
+E EF@_@F5q)FF@#@Fspd
+GF0k0FI:F #GF0FL
+[F
+#GF0eiPF9I #GFPF
+iI)GFPF
+ ",0, B
+
Oc@DcOHsOhs `
KB OsOss `
-
- h ch #ihMKBSBSB@0@@F
+
+ h ch #ihMKBSBSB@0@@F
@FlG
-@FyG
-"KB "KB !H!H!H!H!H
-
-!F
-lGB.(FFPK"H@Q
-
-
-
-h ch `Hh #iciii-KBS(F5
-L F"0(
-2
-h kh `Hh +ikiii>KB"أ@SBЌ:K
-kh F
-+K lG+h(`B(LH0FZF
+@FyG
+"KB "KB !H!H!H!H!H
+
+F
+lGB.(FFPK"H@Q
+
+
+
+h ch `Hh #iciii-KBS(F5
+L F"0(
+h kh `Hh +ikiii>KB"أ@SBЌ:K
+kh F
++K lG+h(`B(LH0FZF
K"LOa
-H 5 F
- (ر(( "J@AAH
-* I"F
-3h2`BL!)F(F
-K L"
-KL"
-p3=3
-Gih Gi)i G0F8F
-
-p=3
-
-p=3
-Gii G0FG8F
-KBsB HH
-
-
+H M F
+ (ر(( "J@AAH
+* I"F
+3h2`BL!)F(F
+K L"
+KL"
+p#3M3
+Gih Gi)i G0F 8F
+
+pM3
+
+pM3
+Gii G0Fo8F
+KBsB HH
+
+
- -KB%ңsBO3B3BIaE $KB@aE-!KB8)F2F#F*')F2F#Fn )F2F#F'4c
-A
-
-[*hiFK@F`jh[m"aJFGhQF:Fz>hFh' I
-L(+
+ -KB%ңsBO3B3BIaE $KB@aE-!KB8)F2F#F*3')F2F#F  )F2F#F&O4c
+ A
+
+*hiFK@F`jh[m"aJFGhQF:Fz>hFh' I
+ 
+L(+
F,
-FFKBsB%
-
-(F
-
+FFKBsB%
+
+(F'
+
--KBPJF*F
+-KBPJF*F#
-KB%PAq)KB3B3B F@7@ݼ@
-F(
-
-2HZ1HW1HT0H0H~.H.Hx-Hu,H+Ho+Hl)H)Hf(Hc(H`'HhhF0V3x"O
-
-
+KB%PAq)KB3B3B F@O@@
+F(
+
+2Hr1Ho1Hl0H0H.H.H-H,H+H+H)H)H~(H{(Hx'HhhF0V3x"O
+
+
@FlG
-@FqG
+@FqG

-o?L
-khh
-w5LT
-I H@^K"
-=@F9F2F xF`K@f H"
-(L
- B1
+o?L
+khh
+5LT
+a H@^K"
+U@F9F2F F`K@f H"
+@L
+ B1
zOj

O
-O x2xixBH
+O x2xixBH
zOj

O
-O x3xixBH~Fȱ 1"y9F#O  FCF_0F"g
+O x3xixBHFȱ 1"9F#O  FCF0F"
zOj

O
-O x3xixBH$IF
-ٱӱϱH@w#
-ٱӱϱH`@w#
+O x3xixBH\IF
+hDzXFQF"(HFQF"#HFa"#)F#
+D HFQF:F Fq]
+ J@qUZU5-<
+
+
03
-"F
+"F
CC<#
-҂"<#=#S@=3#!C<#=#C=#>#b>#?#B?#@#"@#A#S@A3# 3$#SCL3
-JOp3FR#0"FiG
-l#c\2 l# \32l# #* #OpFY" i"FG  #52< #
+҂"<#=#S@=3#!C<#=#C=#>#b>#?#B?#@#"@#A#S@A3# 3$#SCL3
+JOp3FR#0"FiG
+l#c\2 l# \32l# #* #OpFY" i"FG  #52< #
' '
7''7' 
' '
-3F'
-T'5J@ 3+:hB;`0Fa F4-GFFF
-%DOS
+3F'
+T'5J@ 3+:hB;`0Fa F04-GFFF
+%DOS
F
F @ H @q@ T@L Z#@ LLD]3+ hFDF
F!F 
@ H   T@LDY#@\D7L3 +  f .F
F!F4FZ#`  ^D H u ` 3V@l0+  5De F&D!F4F.Fdd P Hf  U@\DZ#PMD8 P3@+ b
-F5D
+F5D
K
F*F#F8LOe,M@e
@@ -452,7 +475,7 @@ J 
 p6P.WDO
D*FF
- ODaED[D``aDa
+ ODaED[D``aDa
Kb`
K`
Ka
@@ -460,10 +483,10 @@ KCa
Ka
Ka
Kb
-KCbFpG pG
+KCbFpG pG

FF;FZFOU pU
-
+
Kb`
K`
Ka
@@ -471,7 +494,7 @@ KCa
Ka
Ka
Kb
-KCbFpG pG
+KCbFpG pG
y Okqx0  #JK CxJ$ E C4y)Cx$ #ECC Cty)C$y6#fE@
2O@ p#
 A;
@@ -485,54 +508,53 @@ CckCs{Cs#O OHEh A 
OBj JOCjJ
 Eg
G 
-E 
-HFLI
+E 
+HFLI
O
-PF
-DKEI
- KS&0h FyF
+PF
+ KS&0h FF
O
-viHFYF
-_J@ !
-
- 
+viHFYF
+_J@ !
+
+ 
4 , J
-KC$PH 4 ,HO4
+KC$PH 4 ,HO4
4 , J
-KC$PH 4 ,HO4
+KC$PH 4 ,HO4
4 , J
-KC$PH 4 ,HO4
-J
-ah
-G
-
-
-IQ" )FjFG
-
+KC$PH 4 ,HO4
+J
+ah
+G
+
+
+IQ" )FjFG
+

-Eѻ
-IQ" )FiFGFPF\\J@T3+0F Fp4-OFFFF {
-AF"6? ( i@FYFG
+Eѻ
+IQ" )FiFGFPF\\J@T3+0F Fp04-OFFFF {
+AF"6? ( i@FYFG

JAFR#0FrjG!8F
+FoйF;|\#T34tLE\U4,1F
-+FW
++FW
i  bi
- 1F >d
-hi
+ 1F >d
+hi
iIF ci "3F@FF
- ci 3F&`F;#iO
-l iGch
+ ci 3F&`F;#iO
+l iGch
qH
0
--F
-& F
-  .F
-!CZF"
- .i  nii.ji#F"uF@T KhkG
-l5m FG9 FADGF
-i IF8FCFF[i GG#40!hGh"ah8F
+-F
+& F
+  .F
+!CZF"
+ .i  nii.ji#F"uF@T KhkG
+l5m FG9 FADGF
+i IF8FCFF[i GG#40!hGh"ah8F
lF
QFZFKFF
GF
@@ -543,62 +565,61 @@ IQ" )FiFGFPF\\J@T3+0F Fp4-OFFFF {
FGF
GF
*jGF0iGFpi)iGF@iiiGF#+`+j
-
-D 8FIFBF(
+
+T 8FIFBF(
m
O 
- < d ! "()+ ,lxhG uF
-
-Ch
-J+@XFF
-F
--FB?P{B?LXF4=3F@h K[iG
- @:F
-4JUmFGF
-
+ < d ! "()+ ,lxhG F
+
+Sh
+J+@XFF
+F
+-FB?P{B?LXF04M3F@h K[iG
+ @:F
+4JUmFGF
+
GF
 GF
- GF
+ GF
F
-Qi"GF
+Qi"GF
L lGF#m GF
(`h` .0;@<EAF``,u,a(bke cg*clc0
<@c0PeBed@,fx@@@ @@@
-i # c
-F
-@F+mQGFP`8"F
-PFC
+y # c
+F
+PFC
 
-
-  $Ꭽ!#)``b:+c
- `,u,ablc<@cȃCD
-
+
+  $Ꭽ!#)``b:+c
+ `,u,ablc<@cȃCD
+

- 
-2`"bB"b5k`F`*cbOcje"
+ 
+2`"bB"b5k`F`*cbOcje"
-
-j`FbObbB#`+cke#e0tc<@c
+
+j`FbObbB#`+cke#e0tc<@c
-cF
-
-
-
-h F)F( F!F*F;h SXhF!F8F
+sF
+
+'
+
+x F)F( F!F*F;h cXhF!F8F
Kh+F
-/ F
-0
+? F
+@
OepS%`%UiF u@FS&`u@&S&`Fu@.qq. Nq.
=qS%`_*%iF u@FS&`
'Prih@P@S$ P@S* B
s sJs
-s
+s
OepS%`%eiF u@FS&`u@&S&`Fu@.qq. Nq.
=GqS%`ղ%iF u@FS&`*u@&S&`Fu@.rr. Nr.
S"P rE
s sJs
-s
+s
? ? \'pX+'FMOW+pGFIOjW+pEOW*
'V'p GU'pi T)p h 3h1_@?
X*
@@ -608,217 +629,217 @@ X*
BU" gT'p
$J'R'p"J
GR'piJ
-R)pBOr1K@J@Os$b@$33Z@AK@A2S@C``
+R)pBOr1K@J@Os$b@$33Z@AK@A2S@C``
@% @$  
 2*
 7
 28*
@$?~p?P%`Q"pG
-@%2*3+
-
-
+@%2*3+
+
+
40 F9FG8O
B80 FGC6F.O+pnp.؁#pkp5?҂#pkp3
p5
҃#.qkp3 p3
p5
F
-GFk F  GEѳk FGFNAF3lG K[iG!FmFG
-3
+GFk F  GEѳk FGFNAF3lG K[iG!FmFG
+3
u
-a(1"0F
+a(1"0F
V <VṾ+M
-@]J@BP1` 6%u%a(4$ #8F
-F F
-Xcx
-:F u
- 
+@]J@BP1` 6%u%a(4$ #8F
+Xcx
+:F
+ 

E0F
- F
-OO @FyI208 (KVpGd pG
-!(h
-! p\
-!p(h p\
-!phh
-! p\
-! qhh p\
-!`qh
-! p\
-!qh p\
-!qh {
-! p\
-! rh p\
-!`r(i h
-! vp\
-!r(i np\
-!rhi U
-! cp\
-! shi [p\x`s+j iiN
-!si 5
-! Cp\`
-!si ;p\X
-! t(j "
-! 0p\M
-!`t(j (p\E#tZ ?#sbp
+ F
+OO @FU208 (KVpGd pG
+!(h
+! p\
+!p(h p\
+!phh
+! p\
+! qhh p\
+!`qh
+! p\
+!qh p\
+!qh
+! p\
+! rh p\
+!`r(i x
+! p\
+!r(i ~p\
+!rhi e
+! sp\
+! shi kp\x`s+j iiN
+!si E
+! Sp\`
+!si Kp\X
+! t(j 2
+! @p\M
+!`t(j 8p\E#tZ ?#sbp
$p҃#,qkp# p#
-$pV 8(O
-6FHF
-2F F
-.F%h(F
-;8F
-7
-1YF"F 8
+$pV 8(O
+FFHF
+BF F
+>F%h(F
+K8F
+G
+AYF"F 8
O
-aBFYD(F
-
+aBFYD(F
+
+]b
`i
-#`O 0FF
-8F
-(F
-O
+#`O 0FF
+8F
+(F
+O
O
O
-PF
+PF

E
-/F0F
-+F@F
-'F$h F
-48F
-0
-*Cm
+?F0F
+;F@F
+7F$h F
+D8F
+@
+:Cm
- #
+#
0D
-
+
(F:KAFS"0[iG@EFQ!FZF ;F 9
hB`#
-!F
-D2
+!F
+D2
`
-8F
- F
-##
-9F0F
-5F0F
-10F
-- F4 F
-6(F
-2F
--
-& <+# F:RFYF
-@F
+8F
+ F
+##
+IF0F
+EF0F
+A0F
+= F4 F
+F(F
+BF
+=
+6 <+# F:RFYF
+@F
JF
-
+

BoR

E
-`.['0[mGF
+`.['0[mGF
aRmGF['0)FmGFH(FAFJF
-vU`@F
-
-(F
- F
-#
-$F(F
- (F
-F(F
-FF
-!F
-
-
-
-[' RmGF
+U`@F
+
+(F
+ F
+#
+4F(F
+0(F
+,F(F
+(FF
+1F
+,
+&
+
+[' RmGF
1Fm"GF
m GF
IFmBFGF
QFmGF
-" IFX 0BF
-8FQFoFD
-`WQF
-ZW"U
+" IFX 0BF
+8FQFoFD
+pWQF
+jW"U
x@X p`
-lHF
-i
-f0F
-c$$
+|HF
+y
+v0F
+s$$
# BTPF[
-
-
+
+
0GF
0F8ZF
0F
HFZF
HF
- Y
+ Y
PFQFZF
PFQFZF
PF[FR@RFPGF
FFJ RiGJ
- G
+ G
FGF
FGF
FnGF
FGF
FGF
OFFmGF
-!F KFmGF
+!F KFmGF
OF;nGF
~OFFmGF
qOFmGF
-NF3nGF
+NF3nGF
QO!hFmGF
CO
FnGF
-OmFGF
+OmFGF
uOFmGF
-`h)FmFGF
+`h)FmFGF
i AF "0F#`
- 0F
-K(F*F@KFGF
-7pZ( RmG
-FGF
-=gI0F_z1F O  #F {O O
+ 0F
+K(F*F@KFGF
+7pZ( RmG
+FGF
+(F)FOIX(F)F2F#F*F)F3F@F
+MgI0F_z1F O  #F {O O
-!NF
- "7OE
-
-!F !F !F
-ch"
-F.KFFF;F
-:/FF
-@6K F<F
-+I*H
-x0F
-Jh0`JBZ`
-F J`Y`h```h`KhQ` F)F
-Q2$
-زBؕBشB3B
-
+!^F
+ 27OE
+
+!F !F !F
+ch"
+F>KFFF;F
+:/FF
+@6K FLF
++I*H
+x0F
+Jh0`JBZ`
+F J`Y`h```h`KhQ` F)F
+Q2$
+زBؕBشB3B
ȿ$,($+U
-+,
++,
+232//-O@EFFF
; 
ܸ#fи*fи @X.jи0и-@_U
3h6C{j

-`H`"
-F O
+`H`"
+F O

AEq0
"
" Fx<F F "
#x( ! AqF FT  ZF
-O33H373H1@@8@Bddhl
+3 333H1@@8@Bddhl
;<
E
պ
@@ -828,99 +849,98 @@ Jh0`JBZ`
 :
 2ZE{ #a
-;9
+;9
-Xn`vh`mh`42, 8A8FiU<[j `kG#ij+U<iG8@-CFFFF
-
+Xn`vh`mh`42, 8Q8Fi#U<[j `kG#ij+U<iG8@"-CFFFF FiF#F#;`#AF;`Y<pk"hjkFG!FFhF
+
(F!F:Fsih4
-oF  FFOhF
-8
-)
-
-
-C
-`
+oF  FFOhF
+8
+)
+
+
+C
+`
FFFs i[i
-:*+$$**V<hFYhp`2`h
+:*+$$**V<hFIhp`2`h
zhh

- 7
-!yF
+ 7
+!iF
"
-cj ##jFpFF OqF85
-F FF
-F F8Fh\ FFah
-h!q2FQ@BF
+cj ##jFpFF OqF85
+F FF
+F FQ8Fh\ F ah
+h!q2FQ@BF
p hp
qCqˈ
qˈ1q0мKx
xCcxCxC#`
-yKyC#yy1C#"À0p
-i 9F2F
+yKyC#yy1C#"À0
+i 9F2F
 pG
 pG
z pG
-B pG-AFFFF{[)F@p"(F9F2F#FA -AFFFF۱@)F@p")FBp")FDp"(F9F2F#FA F
-
+B pG-AFFFF{k)F@p"(F9F2F#FA -AFFFF۱P)F@p")FBp")FDp"(F9F2F#FA F
+
' '
'T74',T7

Tu8F)F
7 3T+7T8FYF
-
-O
-wa
+
+O
+wa
wa
YW  V 
-U )F
+U )F
Z \  ] 
-^ /)F
-pbJphO"php
+^ )F
+pbJphO"php
f,h  i 
-j )F
-pbJphO"php
+j w)F
+pbJphO"php
L  
- 4)F
+ 4s)F
pJpbhO"pbhpx
-qbJq"hO"qT+q
-` 8kh
--GFFF
-萇Fpi
-FBO
--GFFFF@:7.
-7 !.Fp
+qbJq"hO"qT+q
+` 8kh
+-GFFF
+萇Fpi
+FBO
+-GFFFF@:7.
+7 !.Fp
+3a h?+ VF 
-86
-%D iF
- BFIF0F Fm
-(BF0F FdHF !
-8
-*)(F"F
-*4..2 F*F
+86
+%D iF
+ BFIF0F Fm
+(BF0F FdHF !
+8
+*)(F"F
+*4..2 F*F
pq"q bq
-q
+q
pq"q bq
-q
+q
pq"q bq
-q
-hF q
+q
pq"q bq
-q
-FFUFZ
+q
+FFUFZ

( EѨ - ?+߀k"hB#` +1#0#-3pOup#-؁#psp#?҂#psp+
p#
҃#5qsp+ p+
p#"h
-#`;hhxh
- 
+#`;hhxh
+ 
"FF
-3
-% F
+3
+%F
- a
-%a}F
-+8(x0lxвB$
+ a
+%amF
++8(x0lxвB$
?҂"pbp*
p"
?҂"pbp*
@@ -932,15 +952,15 @@ Z O
O
L ɲѡT2
-D
+D
&p҃#%qcp+ &p+
-p
+p
=F<F C
p#(!rh 3h ;#*FFO
p҃#,qkp# !p#
-p\T2Bъ2`(0 (0?00`
+p\T2Bъ2`(0 (0?00`
&p҃#%qcp+ &p+
-p
+p
Jh01
F
  B FAF h
@@ -988,7 +1008,7 @@ B
1
FFF!F9FBF#F1F
FFF!F9FBF#F}1F
-FFF!F9FBF#FN1F
+FFF!F9FBF#FN1F
ڰG
Z6:h
8X'O (F OI  
@@ -1000,33 +1020,35 @@ h `:`9F"F3F""?GE
3FE !FXF

-Fx1BxFF3x
-
+Fx1BxFF3x
+
GoQcpn
g))/F
'&&\8!.*Zm,M߳ 8ScTs
ew<
jvG.;5,rdL迢0BKfpK0TQlReU$* qW5ѻ2pjҸSAQl7LwH'Hᵼ4cZų 9ˊAJNscwOʜ[o.h]t`/CocxrxȄ9dnj(c#齂lPyƲ+SrxqƜa&>'!Ǹ}xnO}orgȢ}c
?G5 q}#w($@{2
-<L gCB>˾L*~e)Y:o_XGJDl2y2U2u102M2222
-
-
-
-
+<L gCB>˾L*~e)Y:o_XGJDl{2e2A2u10292 222
+
+
+
+
'8!.m,M 8STs
e
-jv.,r迢KfpK£Ql$օ5pjl7LwH'4 9JNOʜ[o.htocxxȄnjlPxq~2
-
-
-
-
-
-3[33
-
-
-3
-38 3
-
+jv.,r迢KfpK£Ql$օ5pjl7LwH'4 9JNOʜ[o.htocxxȄnjlPxq2
+
+
+
+3l
+3
+3
+3x 3 3
+3. 3k 3 3
+
+
+
+
+
|B|
!\hT[:.6$g
WҖO aiKwZ
@@ -1087,7 +1109,7 @@ o/Dyeڜ
FSR 0x%x PC 0x%x TTBR0 0x%X CONTEXIDR 0x%X
-CPUID 0x%x CPSR 0x%x (read from SPSR)
+CPUID 0x%x CPSR 0x%x (read from SPSR)
@@ -1153,14 +1175,37 @@ CPUID 0x%x CPSR 0x%x (read from SPSR)
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -1186,5 +1231,4 @@ CPUID 0x%x CPSR 0x%x (read from SPSR)
aml-sha1
;3+#>6.&=5-% <4,$   

- 
-2
+ 
diff --git a/ta_export/host_include/conf.h b/ta_export/host_include/conf.h
index c44f648..fe1158b 100644
--- a/ta_export/host_include/conf.h
+++ b/ta_export/host_include/conf.h
@@ -90,6 +90,7 @@
#define CFG_TEE_TA_LOG_LEVEL 1
/* CFG_TEE_TA_MALLOC_DEBUG is not set */
/* CFG_ULIBS_GPROF is not set */
+#define CFG_WATERMARK 1
#define CFG_WITH_ARM_TRUSTED_FW 1
#define CFG_WITH_DEBUG 1
/* CFG_WITH_PAGER is not set */
diff --git a/ta_export/host_include/conf.mk b/ta_export/host_include/conf.mk
index c143c2f..076a55f 100644
--- a/ta_export/host_include/conf.mk
+++ b/ta_export/host_include/conf.mk
@@ -1,5 +1,5 @@
# auto-generated TEE configuration file
-# TEE version ATOS-V2.4-1-ga4c5f13
+# TEE version ATOS-V2.4-7-gdc2b2aa
ARCH?=arm
PLATFORM=meson
PLATFORM_FLAVOR=gx
@@ -93,6 +93,7 @@ CFG_TEE_PANIC_DEBUG=y
CFG_TEE_TA_LOG_LEVEL=1
CFG_TEE_TA_MALLOC_DEBUG=n
CFG_ULIBS_GPROF=n
+CFG_WATERMARK=y
CFG_WITH_ARM_TRUSTED_FW=y
CFG_WITH_DEBUG=y
CFG_WITH_PAGER=n
diff --git a/ta_export/host_include/signed_hdr.h b/ta_export/host_include/signed_hdr.h
index c6e61e7..684a99f 100644
--- a/ta_export/host_include/signed_hdr.h
+++ b/ta_export/host_include/signed_hdr.h
@@ -39,8 +39,7 @@ enum shdr_img_type {
enum img_key_type {
IMG_KEY_NONE = 0,
- IMG_KEY_AES256,
- IMG_KEY_AES256_ENCRYPT,
+ IMG_KEY_AES256_ENCRYPT = 2,
};
#define TA_SIGN_RSA_PUB_KEY_SIZE (256)
@@ -72,6 +71,7 @@ struct shdr {
uint32_t key_type;
uint32_t rsv[8];
+ uint8_t nonce[TA_ENC_AES_IV_SIZE];
uint8_t aes_key[TA_ENC_AES_KEY_SIZE];
uint8_t aes_iv[TA_ENC_AES_IV_SIZE];
diff --git a/ta_export/host_include/tee_watermark_api.h b/ta_export/host_include/tee_watermark_api.h
new file mode 100644
index 0000000..5e5c28a
--- a/dev/null
+++ b/ta_export/host_include/tee_watermark_api.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2014-2017 Amlogic, Inc. All rights reserved.
+ *
+ * All information contained herein is Amlogic confidential.
+ *
+ * This software is provided to you pursuant to Software License Agreement
+ * (SLA) with Amlogic Inc ("Amlogic"). This software may be used
+ * only in accordance with the terms of this agreement.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification is strictly prohibited without prior written permission from
+ * Amlogic.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _TEE_WATERMARK_API_H_
+#define _TEE_WATERMARK_API_H_
+
+#include <stdlib.h>
+
+typedef enum VM_HW_Err {
+ VM_HW_OK = 0,
+ VM_HW_PARAM_ERROR,
+ VM_HW_FAIL,
+} VM_HW_Err_t;
+
+// WaterMark Core Parameters
+typedef struct VMX_CORE_PARAMETERS_REND {
+//versioning
+ uint8_t version_major;
+ uint8_t version_minor;
+//embedding part
+ uint8_t watermark_on;
+ uint8_t frequency_distance[3][3];
+ uint8_t background_embedding_on;
+ uint16_t embedding_strength_threshold_8[3];
+ uint16_t embedding_strength_threshold_bg_8[3];
+ uint16_t embedding_strength_threshold_10[12];
+ uint16_t embedding_strength_threshold_bg_10[12];
+ uint16_t embedding_strength_threshold_12[48];
+ uint16_t embedding_strength_threshold_bg_12[48];
+ uint16_t direction_max;
+ int8_t strength_multiply;
+//rendering part
+ uint8_t payload_symbols[1920];
+ uint8_t symbols_rows;
+ uint8_t symbols_cols;
+ uint8_t symbols_xpos;
+ uint8_t symbols_ypos;
+ uint8_t symbol_size;
+ uint16_t spacing_vert;
+ uint16_t spacing_horz;
+ uint8_t symbol_scale_control;
+} vmx_hw_soc_rend_t;
+
+VM_HW_Err_t VM_HW_Init(void);
+VM_HW_Err_t VM_HW_Term(void);
+
+VM_HW_Err_t VM_HW_OpenSession(uint8_t bServiceIdx);
+VM_HW_Err_t VM_HW_CloseSession(uint8_t bServiceIdx);
+
+VM_HW_Err_t VM_HW_SetParameters_Rend(uint8_t bServiceIdx, vmx_hw_soc_rend_t *hwParameters);
+#endif // _TEE_WATERMARK_API_H_
diff --git a/ta_export/host_include/utee_type_extensions.h b/ta_export/host_include/utee_type_extensions.h
index 6e7661f..3e85f35 100644
--- a/ta_export/host_include/utee_type_extensions.h
+++ b/ta_export/host_include/utee_type_extensions.h
@@ -41,7 +41,8 @@
#define TEE_EXTEND_CRYP_EXPORT_KEY 12
#define TEE_EXTEND_CRYP_IMPORT_KEY 13
#define TEE_EXTEND_MEMSET 14
-#define TEE_EXTEND_MAX 14
+#define TEE_EXTEND_WM_SET_PARA_REND 15
+#define TEE_EXTEND_MAX 15
struct tee_vdec_info_param {
paddr_t pa;
@@ -135,4 +136,11 @@ struct tee_memset_param {
uint32_t size;
};
+#if defined(CFG_WATERMARK)
+typedef struct {
+ void *para;
+ uint32_t para_len;
+} tee_wm_param;
+#endif
+
#endif /* UTEE_TYPE_EXTENSIONS_H */
diff --git a/ta_export/include/tee_watermark_api.h b/ta_export/include/tee_watermark_api.h
new file mode 100644
index 0000000..5e5c28a
--- a/dev/null
+++ b/ta_export/include/tee_watermark_api.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2014-2017 Amlogic, Inc. All rights reserved.
+ *
+ * All information contained herein is Amlogic confidential.
+ *
+ * This software is provided to you pursuant to Software License Agreement
+ * (SLA) with Amlogic Inc ("Amlogic"). This software may be used
+ * only in accordance with the terms of this agreement.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification is strictly prohibited without prior written permission from
+ * Amlogic.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _TEE_WATERMARK_API_H_
+#define _TEE_WATERMARK_API_H_
+
+#include <stdlib.h>
+
+typedef enum VM_HW_Err {
+ VM_HW_OK = 0,
+ VM_HW_PARAM_ERROR,
+ VM_HW_FAIL,
+} VM_HW_Err_t;
+
+// WaterMark Core Parameters
+typedef struct VMX_CORE_PARAMETERS_REND {
+//versioning
+ uint8_t version_major;
+ uint8_t version_minor;
+//embedding part
+ uint8_t watermark_on;
+ uint8_t frequency_distance[3][3];
+ uint8_t background_embedding_on;
+ uint16_t embedding_strength_threshold_8[3];
+ uint16_t embedding_strength_threshold_bg_8[3];
+ uint16_t embedding_strength_threshold_10[12];
+ uint16_t embedding_strength_threshold_bg_10[12];
+ uint16_t embedding_strength_threshold_12[48];
+ uint16_t embedding_strength_threshold_bg_12[48];
+ uint16_t direction_max;
+ int8_t strength_multiply;
+//rendering part
+ uint8_t payload_symbols[1920];
+ uint8_t symbols_rows;
+ uint8_t symbols_cols;
+ uint8_t symbols_xpos;
+ uint8_t symbols_ypos;
+ uint8_t symbol_size;
+ uint16_t spacing_vert;
+ uint16_t spacing_horz;
+ uint8_t symbol_scale_control;
+} vmx_hw_soc_rend_t;
+
+VM_HW_Err_t VM_HW_Init(void);
+VM_HW_Err_t VM_HW_Term(void);
+
+VM_HW_Err_t VM_HW_OpenSession(uint8_t bServiceIdx);
+VM_HW_Err_t VM_HW_CloseSession(uint8_t bServiceIdx);
+
+VM_HW_Err_t VM_HW_SetParameters_Rend(uint8_t bServiceIdx, vmx_hw_soc_rend_t *hwParameters);
+#endif // _TEE_WATERMARK_API_H_
diff --git a/ta_export/include/utee_type_extensions.h b/ta_export/include/utee_type_extensions.h
index 6e7661f..3e85f35 100644
--- a/ta_export/include/utee_type_extensions.h
+++ b/ta_export/include/utee_type_extensions.h
@@ -41,7 +41,8 @@
#define TEE_EXTEND_CRYP_EXPORT_KEY 12
#define TEE_EXTEND_CRYP_IMPORT_KEY 13
#define TEE_EXTEND_MEMSET 14
-#define TEE_EXTEND_MAX 14
+#define TEE_EXTEND_WM_SET_PARA_REND 15
+#define TEE_EXTEND_MAX 15
struct tee_vdec_info_param {
paddr_t pa;
@@ -135,4 +136,11 @@ struct tee_memset_param {
uint32_t size;
};
+#if defined(CFG_WATERMARK)
+typedef struct {
+ void *para;
+ uint32_t para_len;
+} tee_wm_param;
+#endif
+
#endif /* UTEE_TYPE_EXTENSIONS_H */
diff --git a/ta_export/keys/root_aes_key.bin b/ta_export/keys/root_aes_key.bin
new file mode 100644
index 0000000..8ce85b6
--- a/dev/null
+++ b/ta_export/keys/root_aes_key.bin
@@ -0,0 +1 @@
+3x⌦ʣ_П0Y&;C~yh \ No newline at end of file
diff --git a/ta_export/keys/ta_aes_iv.bin b/ta_export/keys/ta_aes_iv.bin
new file mode 100644
index 0000000..8bc1bb6
--- a/dev/null
+++ b/ta_export/keys/ta_aes_iv.bin
@@ -0,0 +1 @@
+b5!݁r>W \ No newline at end of file
diff --git a/ta_export/keys/ta_aes_key.bin b/ta_export/keys/ta_aes_key.bin
new file mode 100644
index 0000000..e5cff83
--- a/dev/null
+++ b/ta_export/keys/ta_aes_key.bin
@@ -0,0 +1 @@
+΋'^ C785V=# \ No newline at end of file
diff --git a/ta_export/lib/libmpa.a b/ta_export/lib/libmpa.a
index fad7104..e1250e6 100644
--- a/ta_export/lib/libmpa.a
+++ b/ta_export/lib/libmpa.a
@@ -1,13 +1,14 @@
!<arch>
-/ 1495506546 0 0 0 1608 `
-
+/ 1499930199 0 0 0 1608 `
+
mpa_montgomery.o/
mpa_mem_static.o/
-mpa_misc.o/ 1495506544 7574 7000 100644 38856 `
-ELF
-Jh01
-
-
+mpa_misc.o/ 1499930197 7574 7000 100644 38892 `
+ELF
+Jh01
+
+
+6

@@ -18,45 +19,48 @@ mpa_misc.o/ 1495506544 7574 7000 100644 38856 `
B 
B
-
-
-
-
-
-
-
-
-s
-
-
-
-3
-
-
-. #[!)2/V# Y`"D
+
+
+
+
+
+
+
+
+
+
+
+s
+
+
+
+
+
+
+. #[!)2/V# Y`"D
A 
-*D
-
-
+*D
+
+
-
+
F
I
H
-
-ELF
+
+ELF
F
-  B FAF h
-
-
-K
-.
-
-
-
+  B FAF h
+
+
+K
+.
+
+
+

-
-
+
+

@@ -72,28 +76,27 @@ F
-
-
-
-
-
-9
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-f#>
+
+
+
+
+
+f#>
A 
-*D
- 
+*D
+ 
-
+
H
E
E
@@ -150,8 +153,8 @@ S
-
-ELF
+
+ELF
8A0F_z1F O  #F {O O
!F
@@ -177,13 +180,13 @@ S


o/Dyeڜ
-
-
-
-@
-#
-
-a
+
+
+
+@
+#
+
+a

O!Pv
@@ -199,23 +202,23 @@ O!Pv
-
+
-
-
+
+


-
-
-
+
+
+
-
+
-
+
@@ -240,26 +243,27 @@ O!Pv
-
-"a
-
-
-
-
-9
-
-
-
-
-
-
-
-thKhi!K=2%!/].t/hKKKLK~X4.$F%uK!< <
+
+(
+"a
+
+
+
+
+
+
+
+
+
+
+
+
+thKhi!K=2%!/].t/hKKKLK~X4.$F%uK!< <
A 
-*D
-
+*D
+
-
+
K
L
M
@@ -301,11 +305,11 @@ X
-
-ELF
-
-
-7
+
+ELF
+
+
+7

@@ -313,29 +317,27 @@ X
B 
-B
-
-
-
+B
+
+
-
-
-
-
-
-x
-
-E
-
-
-
-X
+
+
+
+
+
+x
+
+
+
+
+X
A 
-*D
+*D
-
-
-ELF
+
+
+ELF
D ;
O
   GYh
@@ -351,21 +353,21 @@ X
: ?
E ;
O
-DEмB
-
+DEмB
+

-V
-9
-
+V
+9
+

-
+
f
-
+
-
+
@@ -382,25 +384,25 @@ X

-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
+
-
+

@@ -415,26 +417,27 @@ X
-
-
-
-
-
-
-
-
-
-4
-
-
-
-
+
+
+
+
+
+
+9
+
+
+
+
+
+
+
+
A 
-*D
+*D

- 
+ 
-
+
D
G
E
@@ -492,20 +495,20 @@ V
-
-ELF
+
+ELF
*Fch
-
+

-@
-#
-
+@
+#
+

-
+
-
-
-
+
+
+
@@ -520,29 +523,27 @@ V


-
-
-
-
-
-
-
-,
-
-
-
-
-
-
--
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

-XgggLggdf!J!K!KZKKKKKKKC..r../KKL1!/9PzX f;j;[hg/[0r<JYKKK..4z 5$ggMZ//? !-!W
+XgggLggdf!J!K!KZKKKKKKKC..r../KKL1!/9PzX f;j;[hg/[0r<JYKKK..4z 5$ggMZ//? !-!W
A 
-*D
+*D
-
+
E
E
F
@@ -642,18 +643,18 @@ G
-
-ELF
-FHhFhR<R `R,FhS` i` HiG
-
-
+
+ELF
+FHhFhR<R `R,FhS` i` HiG
+
+

-a
-D
-
+a
+D
+
$
-
-
+
+

@@ -666,40 +667,39 @@ FHhFhR<R `R,FhS` i` HiG
B 
-
-
-
-!
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/
A 
-*D
-
+*D
-
+
N
-
-ELF
+
+ELF
R#F
-O 
-
+O 
+

-K
-.
-
-
-
-
-
+K
+.
+
+
+
+
+
@@ -710,29 +710,26 @@ N
B
-
-
-
-<
-
-
-
-
-
-#
-
-
-
-
-
-
-
--
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
A 
-*D
- 
+*D
+ 
-
+
F
F
D
@@ -748,11 +745,11 @@ K
L
-
-ELF
-ch"
-
-<
+
+ELF
+ch"
+
+<

@@ -761,42 +758,43 @@ L
B
-
-"Y
-
-
-,
-X
-
-
-
-
-
-
-.
-
-.$
+
+"
+
+|
+
+X
+<
+
+
+3
+
+
+
+
+
+.$
A 
-*D
- 
-
+*D
+ 
+

-
+
R
S
T
-R
-
-ELF
+R
+
+ELF
T!8
B
T!
  Bت
- gE5  T%
-
-
+ gE5  T%
+
+

@@ -805,64 +803,61 @@ T!8



-
-
-
-
-
-
-:
-
-
-
-1
-
-
-
->
-
-
-C
-
-.!; .x ; J!!!Yh!G<9.G:tF.;J0/DJ>.
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+>
+
+.!; .x ; J!!!Yh!G<9.G:tF.;J0/DJ>.
A 
-*D
- 
+*D
+ 
-
+
C
G
H
C
G
H
-
-ELF
+
+ELF
F
Y%:F5PFshB
Y'
&v
OD
- *F6MFW
+ *F6MFW

-K
-.
-
-
-
+K
+.
+
+
+

-
+

-
-
-
-
+
+
+
+
-
-
+
+

@@ -876,36 +871,37 @@ Y%:F5PFshB
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+I
+
+
+
+
+
+
+
+
+
fm !! 
<0!N/-!OgL\OgPK=NX5<
<Rx  w (MdM[
<//-!NNg]gk1Ir"@0NK=LX7< < !/
J<P!@=!3KMY=Z#0!
- =
+ =
A 
-*D
+*D


- 
+ 
-
+
G
I
E
@@ -962,52 +958,50 @@ N
-
-ELF
-@BF
-
+
+ELF
+@BF
+

B
-
-
-
-
-
-%
-
-
-
-
-
-^
-
-
-
-
-< y 5Y
+
+
+
+
+
+
+
+
+
+
+^
+
+
+
+< y 5Y
A 
-*D
-
-
-
+*D
+
+
+
-
+
B
B
B
-
-ELF
+
+ELF
FKFFF;F
-:/FF
-
-@
-#
-
-
+:/FF
+
+@
+#
+
+
@@ -1016,28 +1010,29 @@ FKFFF;F
B
-
-
-8
-
-
+
+
+!
+
+
-
-0
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+#
+
+
+
+
A 
-*D
-
-
+*D
+
+
-
+
D
D
D
@@ -1056,11 +1051,11 @@ F
J
J
J
-J
-ELF
-
-f
-Q2$9 Q0Pu
+J
+ELF
+
+f
+Q2$9 Q0Pu

@@ -1068,29 +1063,35 @@ J
B
-
-
-
-
-
-
-
-
-
-
-~
-
-
-
-(
+
+
+
+
+
+
+
+
+
+1
+E
+
+
+F
+
+~
+
+
+
+
+
A 
-*D
-
+*D
+
-
+
D
-
-ELF
+
+ELF
74
50_(
@@ -1102,20 +1103,19 @@ D
B
   0\>HFQ2F1)
1
-
-
-,
+
+
-
+
4
-
-
+
+

-
-C
-b
-
+
+C
+b
+
@@ -1125,11 +1125,11 @@ B
-0
-
+0
+
-
-
+
+
|
@@ -1156,39 +1156,36 @@ B



-
-
-<
-
-
-
-
-
-`
-
-
-
-1
-
-
-
-&
-
-
-%
+
+
+
+
+
+
+,
+9
+`
+
+
+
+
+;
+
+
+
./w.
-.
+.
A 
-*D
+*D


- 
-
+ 
+
-
+
_
`
_
@@ -1204,19 +1201,19 @@ g
-
-ELF
+
+ELF
FFF!F9FBF#F1F
FFF!F9FBF#F1F
-FFF!F9FBF#F1F
-
-
+FFF!F9FBF#F1F
+
+

-@
-#
-
-
-
+@
+#
+
+
+

@@ -1226,29 +1223,30 @@ g
-
-
-
-
-:
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+?
.M#>gvK
..M#>gvK
-..M#>gvK .Pz &z 4K\Y=Z"LZ=gMP)L
+..M#>gvK .Pz &z 4K\Y=Z"LZ=gMP)L
A 
-*D
+*D


- 
-
+ 
+
-
+
C
E
F
@@ -1273,4 +1271,4 @@ G
G
F
M
-
+
diff --git a/ta_export/lib/libpng.a b/ta_export/lib/libpng.a
index 43a82b9..70285a6 100644
--- a/ta_export/lib/libpng.a
+++ b/ta_export/lib/libpng.a
@@ -1,7 +1,7 @@
!<arch>
-/ 1495506546 0 0 0 8436 `
-
-ELF
+/ 1499930199 0 0 0 8436 `
+
+ELF
CiHiBۀB̿
 TT
KF!hF{D FiF
@@ -117,103 +117,104 @@ Copyright (c) 1996-1997 Andreas Dilger
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
-
-
-/
-
-
-
+
+;
+
+/
+
+
+
-
-
-
-
-
-
- k
-1
-y
+
+
+
+
+
+
+ k
+
+y
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-PS
-Q~
-Uf
-Vf
-W
-X$
-Zq
-[
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+PS
+Q~
+Uf
+Vf
+W
+X$
+Zq
+[
\$
-^e
-_
-aH
-bs
-c<
-e)
+^e
+_
+aH
+bs
+c<
+e)
f$
-g$
-
-)
+g$
+
+)
h
-j
-
-
+j
+
+
#Py
-
-
-
+
+
+

-
-
+
+
$#Py
$#Qy#Pu
-$#Q0#Py
+$#Q0#Py

#Q0#Pt
-
-
-
-
+
+
+
+
#Pu
#Q0
-
-
-
+
+
+
-
+
-
+
#Qt
#Qu
-
-
-
+
+
+
@@ -224,70 +225,70 @@ $#Q0#Py
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
-
-
-)
-Y
-
-z
-
+
+
+
+
+
+)
+Y
+
+z
+
)
-
-)
-)
-Y
-
-)
-
-
+
+)
+)
+Y
+
+)
+
+
-
-
-&
-
-
-
-
-
-
-
-
-
-
-
+
+
+&
+
+
+
+
+
+
+
+
+
+
+
$
-
-
-
+
+
+
-
-
-
-
-
-@$
-
-|)
-!$
-
-
+
+
+
+
+
+@$
+
+|)
+!$
+
+
&
@@ -415,26 +416,27 @@ $

R$
-
-
-
-
-
-)
-
-`
-
-
-
-
-
-
-
-:
-
-
-
-
+
+
+
+
+()
+
+
+
+p
+
+
+n
+
+2
+
+:
+
+
+
+
.v.=>+=>6u. u.0
!%.YKf
.(.O M9<s!M#j`q%11/G% f !/h1,%1##>xX .%J "
@@ -450,14 +452,14 @@ X!1u4z P!R fjj  f(Jc.
<mk73?<`y .g  n."=!,Y!,K4/y7
."
K#{. #+?.
- v.K ft %) 1E < ...
+ v.K ft %) 1E < ...
A 
-*D
+*D



- 
-
+ 
+
@@ -474,7 +476,7 @@ X!1u4z P!R fjj  f(Jc.
-
+



@@ -706,10 +708,10 @@ c
<
S
W
-
+

-
-ELF
+
+ELF
!QHF
!QDf
|,4F&HF
@@ -719,111 +721,104 @@ W
#\ *3+G
FF
FF
-F@
-
-
-
-
-
-%
-R
+F@
+
+
+
+
+

-
-
-R
-
-
-
-
-i
-
-
- 3
-
-
-`v
+
+
+
+
+
+i
+ 3
+
+wv
-
-
-
-
-
-
-
-
-
-
-
-
-
-{
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+{
+
+
+
+
+
+
+
+

-
+
P
-
-Q/
-U
-V
-W
-X
-Z"
-[
+
+Q/
+U
+V
+W
+X
+Z"
+[
\
-^n
-_E
-a
-b$
-c
-e)
+^n
+_E
+a
+b$
+c
+e)
f
g
-
-E
-)
-hF
-
-
-
-
-
-
-
-
+
+E
+)
+hF
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
%
-
-
+
+
%
-
-&
-
-
+
+&
+
+
&
@@ -849,47 +844,48 @@ hF



-
-
-
-
-\
-
-
-m'
-
-
-
-
-
-
-9
-@
-
-k
-g
-
-E
-,
-
-'
-
-
+
+
+
+
+
+'
+
+
+
+
+
+;
+
+
+Y
+T
+0
+k
+~
+
+E
+@
+
+
+'
+
+
1s./
z 0#
.J v.
q , Y  l.#*+  j.j  h<%
<vJ
.L0
-.5z4~. !-![
+.5z4~. !-![
A 
-*D
-
+*D
+

-
+
w
w
x
@@ -939,10 +935,10 @@ v
-
+

-
-ELF
+
+ELF
J0FF
@FOrF# F@FOrF# F@
@@ -954,119 +950,119 @@ m
Hl`
k`Kk;`k3` k+`, l#`F hIr
#h`
-
-
-
-
-
-
+
+
+
+
+
+

-
-
-
+
+
+
-
-
- 
-v
+
+
+ 
+w
-
-
-
-
-
-
-
-
-
-$
-RPt
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+$
+RPt
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Pt
-
-
-
+
+
+
Pt
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-$
-%
+
+
+$
+%
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-)
+
+
+
+
+
+
+
+
+
+
+
+)

-
+
+-
&
@@ -1091,33 +1087,39 @@ $



-
-
-
-M(
-
-
-
-
-
-Y
-
-H
-
-%:
-
-
-
-
-.Z5YA
+
+
+
+
+d(
+
+
+
+m
+
+
+
+p
+
+_
+<:
+
+
+
+Q
+
+
+.Z5YA
A 
-*D
- 
+*D
+ 
+k
-
+
c
c
p
@@ -1146,53 +1148,55 @@ s
#
(
*
-
+

-
-ELF
+
+ELF
GF@FpFF
I(FyDO0FB(Fp@
-
-#,
-
-
-
-
-#
-
-
-
-
-l
- 6
-r
+
+:,
+
+
+
+
+I
+
+
+I
+&
+
+
+l
+ 6
+r
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
$Qt
-$Q0Pt
-
-9
-
-
-#
+$Q0Pt
+
+9
+
+
+#
&
@@ -1207,38 +1211,35 @@ $Q0Pt
B 

-
-WN
-
+
+N
+
-
-
-C
-
-d%
-H
-
-
-
-
-
-
-
-
-qh
-
-
-C
-~
-q
-`
-
-
+
+=
+{%
+
+
+
+
+
+
+
+t
+
+h
+ 
+2
+C
+
+
+
+
J!001i!J
-<#/
+<#/
A 
-*D
-
+*D
+
@@ -1248,7 +1249,7 @@ J!001i!J

-
+
q
o
q
@@ -1287,10 +1288,10 @@ t
-
+

-
-ELF
+
+ELF
-!*-!* ؝-=$-
UIB
2B?t F)FOIB
@@ -1306,119 +1307,122 @@ t
2B? F)F$IB  "B? F)FFKB 2љB? F)FB?w F)F
ҚI FyDBЗI FyDh1
@ F1 F=єi1+:%i1+ F
-
-
-.
-
-
-
-
-
-
-
-T
- 
-x
+
+
+/
+
+
+
+
+
+
+
+
+T
+ 
+
+x
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
-
-
+
+
^r)
-
-
-
-
-
-Y*
-~*
-O*
-
+
+
+
+
+
+Y*
+~*
+O*
+
*
-
+
+
-
+
\)
-
+
Rb+
+
-
+
+
-
+
(+
-
+
-
+
79,
-
+
d,
-
+
2,
-
+
F,
-
+
,
-
+
-
-
+
#;-
-
+
f-
-
+
-
-
+
--
-
+
A-
-
+
<.
-
+
K=.
-
+
h.
-
-.
+
+.
e.
-.
-
+.
+
D/
)
}/
-
+
&
@@ -1484,44 +1488,41 @@ e.
-
-
-
-
-(
-
-
-
-&
-0
-Zm
-}
-&O
-4;
-
-
-
-
-h
-
-c
-m
+
+
+
+B
+
+
+(
+
+Y
+
+G
+qm
+
+RO
+K;
+
+
+
+
+
fi,!!=YZ
fgYY}fz &?/X !-$,5@F>0:>>
t,<-?M0-/M"K[YK0>u>K|!A!.u./3K% --0!-/ /i.. !/$M- n /Xs ^<" /gK0/>?0!!!?+3?=!!:3!=3!=y. t.  .3YKg=Y//k>0=^KL
X
XK9
?
-JM##6z.KA
+JM##6z.KA
A 
-*D
-
+*D
+
-
+
@@ -1660,10 +1661,10 @@ JM##6z.KA


"
-
+

-
-ELF
+
+ELF
O
ԧBѻ#
@@ -1760,77 +1761,75 @@ D)++
K F1FB
FI FyDIyD
#3SCB2Ӹ
-IyDF
--
-.
-
-
-
-
+IyDF
+/
+
+
+
-
-
+
+
-
-
-
- 
-{
+
+
+
+ 
+{
-
-
-
-
-
-
-
-
-
-%
-
-9
-
-
-
-
-
-
-
-
-9
-U
-P
-Q
-U
-V
-Wg
-Xs
-Z
-[g
+
+
+
+
+
+
+
+
+
+%
+
+9
+
+
+
+
+
+
+
+
+9
+U
+P
+Q
+U
+V
+Wg
+Xs
+Z
+[g
\s
-^
-_
-a
-b
-c
-e4
-fs
-gs
-
-4
+^
+_
+a
+b
+c
+e4
+fs
+gs
+
+4
h
-j 
-
-
-
-
+j 
+
+
+
+
-
-
+
+
-
-
-
+
+
+
" $ %z
"?%1$"
@@ -1840,80 +1839,82 @@ j 
" $ %#Q1#Pv
" $ %"<%1$"
" $ %
-x
+x
-
+
F
-
-F
-5
-i
+
+F
+5
+i

-F
-
-
-
-
-
+F
+
+
+
+
+
z
-8
-
-*
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+8
+
+*
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+u
U
U
-
-
-
-
+
+
+
+
U
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-4
-
+
+
+4
+
-
-
-
+
+
+
&
@@ -2001,27 +2002,30 @@ $
-
- 
-'
-
-
-
-h
-
-
-
-
-
-
-N
-;:
-
-
-k
-
-
-
+
+ E
+
+U
+'
+
+$
+
+
+"
+
+
+D
+
+
+
+N
+R:
+
+w
+
+
+
106=0=>!?." ^J" 2[+X !"!"!"!"
J? 3!z #"#t
J!"/C=S6QQ
@@ -2039,14 +2043,14 @@ J0
< /
<0
<0 <0=^0B0B0C0C0B0
-<BNg<Y#+B+o.[+?
+<BNg<Y#+B+o.[+?
A 
-*D
+*D



- 
-
+ 
+

@@ -2065,7 +2069,7 @@ J0
-
+
@@ -2303,40 +2307,32 @@ G
C
D
H
-
+

-
-ELF
-
-
-
-D
-d
-|
-
+
+ELF
+
+
+
+

-
-
-|
-
-&
-
-M
- 
-|
-tr
+
+
+
+M
+ 
+r
-
-
-
-
-
-
-
-
-
-j
-
+
+
+
+
+
+
+
+
+
+
&
@@ -2352,33 +2348,30 @@ j
-
-}
-{%
-
-
-
-
-
-
-
-
-+
-#
-,
- 
-=
-|7
-?
-
-
-
+
+x%
+
+
+
+
+
+
+ 
++
+
+
+d
+y7
+S
+
+
+
A 
-*D
+*D
-
+
d
f
@@ -2398,10 +2391,10 @@ f
-
+

-
-ELF
+
+ELF

Eђ
IyD
@@ -2524,58 +2517,53 @@ OH H H  O J
xAy8
-0+hҲ
-.
-
-
-
-y
-
-
-
-
-
- 
-w
+0+hҲ
+5.
+
+
+
+
+
+
+
+ 
+w
-
-
-
-
-
-
-
-
-
-2
-
-
-
-
-
-
-
-
-z
+
+
+
+
+
+
+
+
+
+2
+
+
+
+
+
+
+
+z
w
-w
+w
-
+
- &Pt
-
-0
+ &Pt
+
+0
-
-
-
-
-
- 
-
-
-:
+
+
+
+ 
+
+
+:


@@ -2587,16 +2575,16 @@ w


-
- 0
+
+ 0
o>

- 
-
+ 
+
-
-
-
+
+
+


@@ -2611,7 +2599,7 @@ w



- 
+ 
D
$
$
@@ -2626,32 +2614,31 @@ E
-S
+S
d-P
-
-
-
-
-
-
-
+
+
+
+
+
+
+
^Q
-
-0
-0
-
-.
-*
-WR
-2wR
-R
+
+0
+0
+
+.
+*
+WR
+2wR
+R
R
-R
-F
-R
+R
+R

-S
+S
 
&
@@ -2893,30 +2880,27 @@ $

.
-
-
-
-"
-
-3
-'
-
-
-O
-
-
-w
-
-
-.
-
-
-M
-U9
-
-
-
-
+
+
+
+;
+
+
+'
+
+
+
+
+
+
+E
+
+;M
+l9
+
+
+
w.&)=~.<"
26tuO<jgSf. $1Kd%$g^gd##_?-/N3#i,2/KL!M%t<[1[h
.zXL0
@@ -2935,12 +2919,12 @@ Xi)'#YAYv#[KL=!
.x..x  .u<x .x ]"0><z.#<$v22v22vJz <]"1?<z.#"v22v22vJz <y,": X,"v-G XrY//4I/Ihv5y.5yt"/1- <J{.HC],"v-GJv/0y
X}J }. X } !0e1=/<
.+"//KKz.<*"///KKK0,/Lu.<1>%y. .,#K*<*"////-0y.<kL>
-f="="[#
+f="="[#
A 
-*D
- 
+*D
+ 
-
+
@@ -3048,10 +3032,10 @@ f="="[#
&
6
<
-
+

-
-ELF
+
+ELF
K "{D FiF
0-PF*F"F2
AF Fo
@@ -3109,55 +3093,56 @@ v
M}D
M}DR4P$@FFFGp
.l1+@
-k!*( @ (* *0
-
-f
-
-
-
-
-
-
-
-
- 
-{
+k!*( @ (* *0
+
+}
+
+
+
+
+
+
+
+
+ 
+~
+{
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
)
-)
+)

-
-
-
-)
-%(
-
-
-
-
+
+
+
+)
+%(
+
+
+
+
-
+
-
+
-
+
-
+
@@ -3167,110 +3152,110 @@ M}DR4P$@FFFGp
-
-
-
-
-
+
+
+
+
+

-
-
+
+

-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+

-
-T
-I
-I
-
-
- 
-
-)
-
-
-
+
+T
+I
+I
+
+
+ 
+
+)
+
+
+

-
-
-
-K
-)
- 0
-
-
-WX
-
+
+
+
+K
+)
+ 0
+
+
+WX
+
x
-
-
-
-
- Y
-SY
-
+
+
+
+
+ Y
+SY
+
-
-
+
+
Z
;Z
-
+
-
+
)
)
-
+
)
-
+
=[
-
+
-
+
)
-
+
)
-
+
-
-
+
+
-
+
-
+
-
-)
+
+)
-
+
-
+
<)
-
+
^g^
-
-^
-n^
-
+
+^
+n^
+
&
@@ -3406,25 +3391,25 @@ $
+
+
-
-
-
-
-
-
-'
-!
-
-
-9
-r
-U
-9
-\
-
-
-
-
+
+
+
+
+
+'
+
+
+G
+&
+`
+
+|
+9
+p
+
+v
+
+
<
</?1![rJLJf@*.@2#/ .0=3!. .u.(1$%>w<Xw< .bf ?!2-4/Z![
X!-?
@@ -3441,15 +3426,15 @@ J003!(0L3$##=(0v1!!!
.Q>@*2/wX J
.Y0/+C(-4=
J22"0#>gh
- r.!/M/JKLf@"//6YZ
+ r.!/M/JKLf@"//6YZ
A 
-*D
+*D

- 
+ 
@@ -3473,7 +3458,7 @@ J22"0#>gh
-
+
@@ -3794,10 +3779,10 @@ O
$
2
S
-
+

-
-ELF
+
+ELF
"hC `0 FF jF#
, 
(FQF
@@ -3814,88 +3799,88 @@ S
zF C'F 8FIF"
IyD8@0B
F)
-74 .5F5F'FkN,,<;
-
-.
-
-
-
-
-
-
-
-
-
-
- 
-w
+74 .5F5F'FkN,,<;
+
+.
+
+
+
+
+
+
+
+
+
+ 
+w
-
-
-
-
-
-
-
-
-
-5
-
+
+
+
+
+
+
+
+
+
+
+5
+
-
+
5
-
+
-
+
-
+
-
+
-
+
-
+


-
-)
+
+)

-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
@@ -3903,63 +3888,63 @@ F)
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
^4
-
-
-5
+
+
+5
)
-
+
c5
-
+
)
-
+
5
-
+
-
+
-
+
6
-
-)
+
+)
&7
-
+
)
-
+
)
-
+
d7
-
-
+
+
n8
-
+
x
-
+

-
-
+
+

-
-^9
-8-9
+
+^9
+8-9
CW9
Gv9
@@ -4039,37 +4024,39 @@ Gv9

-
-
-
-
-(
-
-
-X
-
-b
-l
-
-
-:
-
-
-
-
+
+
+
+
+%(
+
+B
+
+
+y
+l
+
+*:
+
+
+
+
+
+A
XA
x !/////0LhK+. #
<v<v.
Xz[?!\,/0,"0 #
<.Qy '
-<?;!/
+<?;!/
A 
-*D
+*D



- 
+ 
@@ -4099,7 +4086,7 @@ Xz[?!\,/0,"0 #
-
+
@@ -4235,10 +4222,10 @@ Xz[?!\,/0,"0 #

)
-
+

-
-ELF
+
+ELF
xC+B@B Bh
x<Sx2<B+F"r"rz*<
@@ -4249,44 +4236,45 @@ hz@A[BSCJhi)f<eVeeeb% x:AO
P@IyD0@ 00
J*jZ:zF&fV6vN.n^>~A!aQ1q I)iY9yE%eU5u M-m]=}C#cS3s K+k[;{G'gW7wO/o_?
JZ*j:zN^.n>~CS#c3sGW'g7w K[+k;{O_/o?
-*:JZjz +;K[k{ ,<L\l| -=M]m}.>N^n~/?O_opng_set_filler is invalid for low bit depth gray output
-
-,
-
-
+*:JZjz +;K[k{ ,<L\l| -=M]m}.>N^n~/?O_opng_set_filler is invalid for low bit depth gray output
+
+,
+
+

-
-
-
-j
-
-
-j
-
-T
- 5
-b
-t
+
+
+
+&
+
+
+
+
+
+T
+ 5
+Q
+t
-
-
-
-
-
-
+
+
+
+
+
+

-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
d
&
@@ -4311,38 +4299,40 @@ d



-
-
-
-
-#&
-
-
-
-
-
-
-<
-$
-
-,
-%
-@
-P8
-N
-
-
-
-
-
+
+
+
+:&
+|
+K
+}
+
+
+
+
+I
+
+
+
+f
+
+,
+<
+g
+g8
+b
+
+
+^
+

J#K{##/K`
X0
-->-
+->-
A 
-*D
+*D
-
+
s
u
@@ -4365,33 +4355,34 @@ u


-
+

-
-ELF
-
-
-
-
+
+ELF
+
+
+
+

-
-
-|
-
-M
- 
-r
+
+
+
+M
+ 
+r
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+M
+
+
+
+b
&
@@ -4407,33 +4398,31 @@ u
-
-y%
-
-
-
-
-
-
-
-
-.
-+
-
-I
-7
-K
-
-O
-M
-
-
+
+
+v%
+
+
+
+
+
+
+m
++
++
+
+
+7
+_
+
+
+
A 
-*D
+*D
-
+
d
@@ -4452,10 +4441,10 @@ d
-
+

-
-ELF
+
+ELF
b~(F
(F0C
B(F6
@@ -4466,54 +4455,53 @@ D)++
F
-F* F F( Fi F F F1Fp@p
-3-
-
-
-
-
->
-
+F* F F( Fi F F F1Fp@p
+_-
+
+
+
+
+
-
-
+
+
-
-
- 
-ox
+
+
+ 
+x
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+

-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
0
-
-(
+
+(
)
-
+
-
+
-
-
+
+
@@ -4523,50 +4511,50 @@ F* F F( Fi F F F1Fp@p
-
+
-
-v+
-+
+
+v+
++
^+
-
- +
-+
- ,
-@,
-p,
-
-,
-!,
-& -
-A3-
-Fq-
-W-
-L-
-R-
-.
-69.
-1c.
-,.
-
-.
+
+ +
++
+ ,
+@,
+p,
+
+,
+!,
+& -
+A3-
+Fq-
+W-
+L-
+R-
+.
+69.
+1c.
+,.
+
+.

-
-`D/
-\_/
-/
-i/
-/
-/
-H0
-c0
-^0
-
-
-0
-
+
+`D/
+\_/
+/
+i/
+/
+/
+H0
+c0
+^0
+
+
+0
+
dA1
-
+
&
@@ -4647,47 +4635,44 @@ dA1
-
-
-
-a
-
-
-&
-
-
-
-
-
-
-|
-k
-
-
-l
-}
-vL
-(9
-H
-
-(
-
-
-
+
+
+
+
+
+
+
+'
+
+
+
+
+.
+
+ m
+
+L
+T9
+\
+
+H
+
+
+
. .c.PJ///!O/L`fe&.X #
<=j=j==&==>YkX.r.
<
<=P
-X /
+X /
A 
-*D
+*D


-
+
@@ -4708,7 +4693,7 @@ X /
-
+
@@ -4826,45 +4811,45 @@ X /


%
-
+

-
-ELF
+
+ELF
!iz6C,C jz*4ؔ1ih+* *+
Q ,Q
Q Q , ,
QB
-<,7E00TX*z@1*(jz)h*O
-
-
-
-
-
-
-
-
-
-H
-
-
- )
-r
+<,7E00TX*z@1*(jz)h*O
+
+
+
+
+
+
+
+
+
+H
+
+
+ )
+r
-
-
-
-
-
-
-
-
-
-
-
-
-;
+
+
+
+
+
+
+
+
+
+
+
+
+;


@@ -4872,11 +4857,11 @@ X /
-
-
-
-
-!
+
+
+
+
+!

&
@@ -4892,37 +4877,39 @@ X /



-
-
-
-C
-%
-v
-
-
-
-
-
-
-
-,
-K
-
-7
-
-\
-
-
-r
-
+
+
+x
+
+"
+
+%
+
+
+
+
+
+
+
+>
+
+,
+b
++
+7
+(
+,
+
+
.!=!Kk}X }.AL
.v !#*%$*$!50!%0h-BC,"Q*K+ .} .}<9.} 2$91z.&z< .o.X$*&?Q1d ~ >!?z.&z<v..m.<~ >N11c/"+.~.!?z.&z<6!n..o<.O~X ~. ~."Cy.
."!!/! ~ <#!!!///"!" ~ <0Cy. .,#/-+X#!!!!!
-.+#9Xy '/ <k 
+.+#9Xy '/ <k 
A 
-*D
+*D
+[
-
+
`
a
b
@@ -4965,10 +4952,10 @@ c
-
+

-
-ELF
+
+ELF
,m=
 +
@@ -5035,30 +5022,29 @@ F#A
FIF:F+FDa!ou FIF:F+FB H1DaD1HaF  F9F*FDa  F9F*FB H1DaD1HaF@ FIF:F+FDa @ FIF:F+FB H1DaD1HaF FIF:F+F
Da FIF:F+FBH1DaD1Ha

-
-,
-
-
-w
-
-
-^
-
-
-
- 
-bv
+
++-
+
+m
+
+
+
+
+
+
+ 
+yv
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -5066,51 +5052,53 @@ w
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
-
-$
-(
-)
-
-
-
-F
-F
- 
-
- 
-
+
+(
+
+$
+
+(
+)
+
+
+
+F
+F
+ 
+
+ 
+
-cI
+cI
0
-
-WJ
+
+WJ
x
-
-.K
-IK
-nK
-
-
-
-
+
+.K
+IK
+nK
+
+
+
+
^VL
-
-
+
+
&
@@ -5252,31 +5240,24 @@ x
-
-
-
-
-
-
-&
-
-
-2
-9
-
-
-d
-
-$
-K
-7
-
-
-
-
-;
-
+
+
+
+
+&
+
+
+8
+Q
+
+
+P
+K
+#8
+
+
+
+
Jv.#/4"/-5
.u.
.11u -
@@ -5288,16 +5269,16 @@ J
J
v 
</>>/Z1>,N,04z (
-.v
+.v
A 
-*D
+*D



- 
-
-
+ 
+
+
@@ -5314,7 +5295,7 @@ J
-
+
@@ -5467,6 +5448,6 @@ J
&
)
6
-
+


diff --git a/ta_export/lib/libutee.a b/ta_export/lib/libutee.a
index c55d21e..128cf3e 100644
--- a/ta_export/lib/libutee.a
+++ b/ta_export/lib/libutee.a
@@ -1,150 +1,58 @@
!<arch>
-/ 1495506546 0 0 0 7166 `
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+/ 1499930199 0 0 0 7270 `
+
tee_api_property.o/
tee_api_objects.o/
tee_api_operations.o/
tee_tcpudp_socket.o/
tee_socket_pta.o/
+tee_api_watermark.o/
utee_syscalls_a32.o/
default_regular.o/
-/0 1495506544 7574 7000 100644 80036 `
-ELF
+
+/0 1499930197 7574 7000 100644 80068 `
+ELF
##

H
K"
-H@{DxD
-S
+H@{DxD
+S
}
-l
-
-
+l
+
+


-0
-m
+0
+m
-}t

-7
+7
L}u
-Y
-
+Y
+
-g}u
+g}u
-
+
}u
-
+

}u
-
-}u
+
+}u
}t
-B
-}u
-B}u
-%)
+B
+}u
+B}u
+%)

@@ -166,28 +74,29 @@ B}u


-
-*
-
-
-j
-
-
-^
-
-
-
-\
-
-.##"3KL"2
+
+)*
+
+
+
+j
+<
+d
+
+
+M
+
+
+
+.##"3KL"2
A 
-*D
-
-
-
+*D
+
+
+
-
+
@@ -244,21 +153,21 @@ j
-
-
-ELF
+
+
+ELF

H xD
-
-len
-
+
+len
+
WP4}
-B}u
+B}u
Pw
Pw
Qw
-}u
-
+}u
+
@@ -266,13 +175,13 @@ B}u


-
+
Qu
-
-
-"#
+
+
+"#
!
@@ -286,28 +195,28 @@ B}u
B
-F
-o
-
-
+G
+
+
-
-
+
+
-
-
-
-{
-
-
-
-
-$K~.K=!.#m !-/J
+
+
+\
+
+
+{
+%
+
+
+
+$K~.K=!.#m !-/J
A 
-*D
-
+*D
-
+
|
|
|
@@ -347,54 +256,52 @@ o
-
-
-ELF
-
+
+
+ELF
+
-
+
B
-
-
+
+
+
-
-Q
-
-
-5
-
-_
-
-
-
-
-
-
-
+
+
+
+Y
+
+/
+
+
+
+
+
+
A 
-*D
-
+*D
+
-
+
C
D
-
-
-ELF
+
+
+ELF
-
-
-
-
+
+
+
N
\
p
-
+
4
1
B
@@ -403,32 +310,29 @@ p
-
-p
-
-X
-
-
-
-
-
-F
-
-
-$
-
-
-
-9
-
-!
+
+S
+
+5
+
+
+
+
+
+
+
+
+'
+
+
+
A 
-*D
-
+*D
+
-
+
B
F
A
@@ -437,109 +341,108 @@ H
E
I
J
-E
-
-ELF
-E
+E
+
+ELF
+F
B
.? : ; ' < 
-
-
-
-
-
-
-
-
-C
-
-
-r
-
-
-m
-
-$
-
+
+
+
+
+
+z
+
+
+
+
+
+
+
+
+
+
+$
+
A 
-*D
+*D
-
+
K
-M
-
-ELF
-
-q
-
+M
+
+ELF
+
+~
+
4
B
-
-
-
-
-
-
-
-
-
-
-
-
-.$#o  !/<!@J.i .>ef.n f!K!"!Z!0b  :#!"!Z!0X ) :#!"!Y!X
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.$#o  !/<!@J.i .>ef.n f!K!"!Z!0b  :#!"!Z!0X ) :#!"!Y!X
A 
-*D
-
+*D
+
-
+
-
+
)
*
-
-ELF
+
+ELF
K"
H!{DxD
F{D
FpF FF!F
H LxD K" HA!{D
-
-
-
-
+
+
+
+
-
-
-
-
-
-Y
-
-Y
-Y
-
-Y
-
+
+
+
+
+
+
+
+
-
+
-
-
+
+
-
-
+
+
I
@@ -560,37 +463,35 @@ Y
B 
-
-
-
-
-
-@
-
-
-
-9
-
-&
-j
-
-
-U
+
+
+:
+
+
+
+
+
+
+h
+
+Z
+
+
J/4= .%
<."?/$N"
.$
.
565#/P#/ ./R/Q6/Q=` .
-f'{<.>
+f'{<.>
A 
-*D
+*D
- 
+ 
-
+
@@ -702,9 +603,9 @@ f'{<.>
-
-
-ELF
+
+
+ELF
O
K"
@@ -716,24 +617,26 @@ K"
H@{DxD
KB K" H@{DxD
K"
-HOq{DxD
+HOq{DxD
a
-b
-buf
-x
-
-
-
+b
+`
+buf
+x
+
+
+
-}t
-
+}t
+

-}t
-$}t
-
-2}t
-<}t
-O
+}t
+$}t
+
+2}t
+<}t
+
+O
@@ -749,32 +652,34 @@ O
B
B 
B 
-
-~@
-
-
-
-
-a
-
-
-
-
-
-
+
+@
+
+
+
+a
+
+@
+(
+
+
+
+
+
+P
+
+1
o ./K"/pJJ20B+!"
-l  q<J! <.37%/"P!0"01!!0/:0m<O7%/#Z!"1
+l  q<J! <.37%/"P!0"01!!0/:0m<O7%/#Z!"1
A 
-*D
-
-
-
-
-
+*D
+
+
+
-
+
v
y
w
@@ -828,9 +733,9 @@ w
-
-
-ELF
+
+
+ELF
K"
H\!{DxD
K"
@@ -843,80 +748,79 @@ H@
K"
H@S!{DxD
K"
-HOq{DxD
-
-i
-
-
- R
-
+HOq{DxD
+
+i
+
+
+ R
+
-
+
-}t
+}t
}t
}t
-}t
+}t
$}u
(}u
,}u
-1}t
+1}t
9}t
-;}v
+;}v
E}t
-G}v
+G}v
r}t
u}t
x}t
-}t
-
-_}t
+}t
+
+_}t
-
-
-
+
+
+
-}t
+}t
-}t
+}t
}t
-}t
+}t
}t
-
+
-}t
-
+
-
+
D}t
-
-
+
+

-S}t
-`}t
+S}t
+`}t

-p}t
-}t
-}t
-}t
-}t
-}t
-U
+p}t
+}t
+}t
+}t
+}t
+}t
 : ; 
@@ -1005,26 +909,27 @@ U
-":
-
-
-
-n
-
-Q
-
-
-
-
+">
+
+
+i
+n
+
+_
+
+
+{
+
+
.
#0/K/!!!!"w#0
1
-.
+.
A 
-*D
+*D
-
+
@@ -1035,7 +940,7 @@ Q
-
+
@@ -1190,9 +1095,9 @@ Q
-
-
-ELF
+
+
+ELF
FFk˱gk1FjB4B(/F:Fkak8c
BDckk<[B D 
1[BD1F
@@ -1222,33 +1127,33 @@ LH"@^q{DxD
K"
H@q{DxD
K"
-H@q{DxD
-
-k
-o
-
+H@q{DxD
+
+k
+o
+
w$}v
$}w
-$}y
-
+$}y
+
$}u
-
+
-w$}t
+w$}t
b$}u
-
+
$}u
-$}t
-
-
-
+$}t
+
+
+
$}u
@@ -1258,9 +1163,9 @@ b$}u
$}u
$}t
-$}u
-
-
+$}u
+
+
@@ -1268,85 +1173,85 @@ b$}u
P$}u
-
-$}u
+
+$}u
$}v
$}v
$}v
$}v
$}w
-$}t
+$}t
$}u
- $}t
-@$}t
+ $}t
+@$}t
M$}t
P$}u
T$}u
-]$}u
-$}u
->$}t
-$}t
+]$}u
+$}u
+>$}t
+$}t
$}t
$}u
-$}u
+$}u
$}w
$}w
$}w
$}w
-$}t
+$}t
$}t
-
+
&$}t
-
+
]$}t
-
+
i$}w
l$}w
o$}w
-v$}t
-$}t
-$}t
-9$}t
-$}t
+v$}t
+$}t
+$}t
+9$}t
+$}t
$}{
$}x
$}{
$}{
$}{
-$}t
+$}t
$}{
$}x
.
$}{
$}{
$}{
-$}t
+$}t
$}y
$}v
$}y
$}y
$}y
-$}t
-
+$}t
+
$}x
$}v
$}x
$}x
$}x
-($}t
+($}t
:$}{
<$}v
>$}{
A$}{
C$}{
-L$}t
+L$}t
^$}z
`$}v
b$}z
e$}z
g$}z
-n$}t
+n$}t
~$}y
$}v
$}y
@@ -1357,29 +1262,29 @@ n$}t
$}y
$}y
$}y
-$}t
-$}t
-$}t
-$}t
-o
-l
-h
-k
-p
-r
-u
-v
-x
-
-
-
-
-
+$}t
+$}t
+$}t
+$}t
+o
+l
+h
+k
+p
+r
+u
+v
+x
+
+
+
+
+

-/
+/

|
-
+

 : ; 
@@ -1457,33 +1362,30 @@ x



-&
-؆
-
-u
-
-f
-
-
-
-(
-,
-
-P
-
-
+&
+7
+
+
+
+
+f
+
+P
+
+
+
+
+
X
.Z=!!#=%"1
<!!/"'Y0#=?1/=/-!!/#/""PJ7 J
-<!!/!!#=-/42;K2!L/"",A
+<!!/!!#=-/42;K2!L/"",A
A 
-*D
+*D
- 
-
-j
-j
+ 
+
@@ -1503,7 +1405,7 @@ j
-
+
@@ -1808,49 +1710,49 @@ j


-@
-
-ELF
+@
+
+ELF
3#  p$K"$HY!{DxD
h{"K
h{"K
-FFF'K"'H@{DxD
-
-D
-QJ
-
-
-
+FFF'K"'H@{DxD
+
+D
+PJ
+
+
+q
U
-
-
+
+
-<
-
-y
-L
-{
-
-
-
+b
+
+y
+w
+a
+e
+
+
}u
}t
-
+
}t
}u
-}t
+}t
#}t
-#}t
-
+#}t
+
.? : ; ' I@B 
@@ -1865,30 +1767,34 @@ j



-
-~7
-
-
-
-
-
-^
-
-H
-
-i
-
+
+7
+
+
+
+
+s
+
+,
+
+
+
+
+
+
+-
+
-
+
A 
-*D
- 
+*D
+ 
-
-
+
+
-
+
x
y
z
@@ -1994,38 +1900,39 @@ x
-
-
-ELF
-n
-PP
-PP
+
+
+ELF
+PP
+PP

B
-
-
-
-M
-
-
-
-
-
-
-
-H
-
-
-
+
+
+
+
+4
+i
+
+
+
+C
+
+
+
+
+f
+
+
A 
-*D
+*D
-
+
:
:
-
-
-ELF
+
+
+ELF

p
3
@@ -2034,20 +1941,20 @@ H
u


-
-x
-
-
-
-
+
+x
+
+
+
+

-
-
-
+
+
+
O
-z
-~@
+z
+~@

@@ -2058,29 +1965,31 @@ z

-m<
-
-
-
-
-
-$
-
-W
-
-
-
-u
-
-
+G<
+
+
+&
+
+
+
+!
+
+6
+V
+
+z
+
+
+
+
A 
-*D
+*D
-
+
n
o
n
@@ -2133,15 +2042,17 @@ o
-
-
-ELF
-F
+
+
+ELF
+F
+
+>
a
-b
-Q!P1
-QP3
-
+b
+Q!P1
+QP3
+
@@ -2149,23 +2060,24 @@ QP3
B
-
-
-
-
-
-
-
-
-
-
-'
-
-.0#!0,"" zJ&/!E'[.'[;!/2. <w< 4"E1#/03.Dx<(4"71#/02.R^"z<$"#/0
+
+
+
+
+
+a
+
+
+
+
+N
+
+
+.0#!0,"" zJ&/!E'[.'[;!/2. <w< 4"E1#/03.Dx<(4"71#/02.R^"z<$"#/0
A 
-*D
+*D
-
+
R
S
U
@@ -2174,13 +2086,13 @@ U
U
U
U
-
-
-ELF
-pa
-pa
-va
-pa
+
+
+ELF
+pa
+pa
+va
+pa
@@ -2189,87 +2101,80 @@ pa
B
-
-
-
-
-
-
-
-
-o
-G
-
-
-
-/
-
-
-8
-I
-v
-]
+
+
+
+
+
+:
+
+
+
+
+
+
+
+
+
+
+$
+
A 
-*D
+*D
-
+
C
C
C
C
-
-
-ELF
-P
-}
-rP
-tC
-P
-y
-rP
-tC
-P
-
+
+
+ELF
+P
+C
+nP
+z
+P
+C
+nP
+

B
-
-+
-
-
-n
-
-
-
-
-<
-?
-W
-
-
-
-
-
-
-B
+
++
+
+
+F
+
+
+
+5
+
+
+
+
+o
+
+
A 
-*D
+*D
-
+
C
C
-
-
-ELF
-??
-S
-r^
-??
-S
-r^
+
+
+ELF
+F?
+S
+^
+F?
+S
+^

@@ -2279,32 +2184,34 @@ r^
-
-9,
-
-
-
-
-
-
-
-_
-
-
-
-
-
-
+
+S,
+
+S
+V
+M
+[
+
+
+
+
+
+
+N
+
+
+
+
A 
-*D
+*D
-
+
C
C
-
-
-ELF
-
+
+
+ELF
+
4
@@ -2312,87 +2219,136 @@ C
B
-
-+
-
-
-
-M
-
-
-u
-P
-$
-
-
-
-
+
+,
+
+
+
+
+
+u
+k
+g
+
+
+
+
+
+@
A 
-*D
+*D
-
+
C
-
-
-ELF
-
-
+
+
+ELF
+
+
+
+
+
+
+!
+B
+B 
+
+B
+
+
+
+
+ &
+ %%
+!fU
+#^H
+
+!
+X
+
+
+d
+
+F
+
+b
+
+
+Q
+e
+
+
+s
+
+
+
+@
+
+A 
+*D
+
+
+E
+
+
+ELF
+
+
h
-&
+&
-4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+4
+
+
+
+
+
+
+
+
+
+
+
+
+
A 
-*D
-
+*D
+
-
-ELF
-hBhB
-e(
+
+ELF
+hBhB
+u(

B
-
-
-
-
-
-
-
-
-
-
-`
-
-E
-
-
-
-
+
+
+
+
+
+;
+
+A
+
+
+
+ 
+
+
+
+
+
A 
-*D
+*D
-
+
8
8
9
@@ -2404,12 +2360,13 @@ E
<

-
-ELF
+
+ELF
K"(F3!{D
-
-s6
-
+
+o
+h6
+

@@ -2417,22 +2374,22 @@ K"(F3!{D
-
-O
+
+O
-
+
-
+
-
+
-
+
-
-
-
+
+
+
&
@@ -2444,34 +2401,37 @@ O

-
-
-n
-
-C-
-
-
-
-1
-
-
-Q
-
-s9
-
-
-^
-
-
-F
-2
-
-
+
+
+}
+
+
+S
+G-
+
+O
+:
+
+
+
+
+
+
+h9
+
+
+^
+#
+
+|
+
+
+
A 
-*D
+*D

-
+
g
h
@@ -2515,10 +2475,10 @@ s
-
+

-
-ELF
+
+ELF
H"IKxDyD{D\B bF@F  
hB4 B0FJ
@@ -2526,14 +2486,14 @@ s
hIh h
SXFF
!F0 B
-
-b
-
-=
+
+b
+
+=
W
-h
-
-)
+h
+
+)
#p
@@ -2548,31 +2508,30 @@ h
-B
-
-
-
-
-
-
-
-&
-
-
-
-
-
-
-
-A
+B
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
<L//+$<<@!'x !]0kK-!""/$3!&0u"/
- u  J
+ u  J
A 
-*D
- 
+*D
+ 

-
+
^
_
`
@@ -2581,25 +2540,25 @@ c
e
c
e
-
-ELF
+
+ELF
` HxDA`hF
` JzDh;`3@h
-
-^
-H-
-
+
+^
+H-
+
-
-[9.
-E
-
+
+[9.
+E
+


-
+
-
+
@@ -2611,31 +2570,30 @@ E
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
->
-
-
-J>1< /.?fi#xX #/~.f<(.=
+
+x
+
+
+
+
+f
+y
+
+J>1< /.?fi#xX #/~.f<(.=
A 
-*D
-
+*D
+
-
+
h
l
m
@@ -2655,56 +2613,55 @@ x
y
-
-
-ELF
-B
-C
-PP
+
+
+ELF
+PP
QQ
-PP
+PP
QP
-PQ
-PP
+PQ
+PP
QQ
-PP
+PP
B
B 

B
-B 
- $
-;
-
-
-
-!
-
-
-
-
-1
-
-
-
+B 
+$
+^
+
+
+N
+;
+
+
+
+
+
+
+
+
+
A 
-*D
-
+*D
+
-
-
-
+
+
+
ELF
p
A 
*D
-gprof_a32.o/ 1495506544 7574 7000 100644 618 `
+gprof_a32.o/ 1499930197 7574 7000 100644 618 `
ELF
A 
-*D
-ELF
+*D
+ELF
@@ -2719,75 +2676,71 @@ gprof_a32.o/ 1495506544 7574 7000 100644 618 `
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+

-*
-,*
-
-+,
-<
-F
-P
-Z
-d
-?(
-
-
-r
-2
-
-
-
-
-
-
-
-
++*
+@*
+"
+?,
+I
+S
+]
+g
+q
+\(
+
+
+
+&2
+
+
+
+
+
+
+
+
4
-
-
-
-
-
-
-
-
-
-5
-
-
-
-
-
-5
-
+
+
+
+
+
+
+
+
+
+5
+
+
+
A 
-*D
+*D
-
-
-ELF
+
+
+ELF
@@ -2806,65 +2759,63 @@ r
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-s
+
+
+
+
+
+
+
+
+
+
+"
+,
+
+
+

- *
- *
-6
-,
-]
-g
-q
-{
-
-3(
-
-
-
-2
-
-
-
-
-
-
-
-
+*
+4*
+C
+%,
+j
+t
+~
+
+
+P(
+
+
+
+(2
+
+
+
+
+
+
+
+
4
-
-
-
-
-
-
-
-
-1
-5
-
-
-9
-
-
+
+
+
+
+
+
+
+
+5
+
+
+
+,
A 
-*D
+*D

@@ -2872,5 +2823,5 @@ q
-
-
+
+
diff --git a/ta_export/lib/libutils.a b/ta_export/lib/libutils.a
index 2e4ac47..385efd8 100644
--- a/ta_export/lib/libutils.a
+++ b/ta_export/lib/libutils.a
@@ -1,18 +1,18 @@
!<arch>
-/ 1495506547 0 0 0 3136 `
-
-W
-W
-Z
-Z
-Z
-Z
-Z
-Z
-d
-d
-
-
+/ 1499930199 0 0 0 3136 `
+
+Z
+Z
+]
+]
+]
+]
+]
+]
+
+
+
+
arm32_aeabi_divmod_a32.o/
arm32_aeabi_divmod.o/
arm32_aeabi_ldivmod_a32.o/
@@ -49,8 +49,8 @@ s_propagateNaNF64UI.o/
s_commonNaNToF32UI.o/
buf_compare_ct.o/
-bget_malloc.o/ 1495506546 7574 7000 100644 66348 `
-ELF
+bget_malloc.o/ 1499930199 7574 7000 100644 66384 `
+ELF
[h
l2
d@VH@E2UIVKxDyD{D P,
@@ -59,39 +59,39 @@ BIKxDyD{D`O
B lH@kIlKxDyD{DB3&.gHOrfIgKxDyD{DS,8S<AhB`H@`I`KxDyD{DC`D<D,1FD,MWK{Dh
"*I*KxDyD{DN3A F)FF
V5p
-تBؑBبB3B
-
-
+تBؑBبB3B
+
+
-/
-
-(
-4
- 
-
-
+/
+
+(
+W4
+ 
+
+
2
-
-5
-
-
-
-
-
-
+
+5
+
+
+
+
+
+
-
+
-
-
+
+
 : ;
@@ -376,36 +376,36 @@ BIKxDyD{D`O
-
-"
-9
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+"
+
+%
+
+
+
+
+
+
+7
+
+
+
+
+$
+
 / <?"
.=
X#",0!=//=!
  <<n.{.J=f y  /v. .10
-. 
+. 
A 
-*D
-
+*D
+
-
+
@@ -475,28 +475,26 @@ BIKxDyD{D`O
-
-ELF
-
-
-
-!
-
-
-
-1
-
-
-
-
-
-
-
-
-A 
-*D
-
-
+
+ELF
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
+
+
@@ -963,6 +961,7 @@ BIKxDyD{D`O
+
@@ -1135,121 +1134,120 @@ BIKxDyD{D`O
-
-ELF
+
+ELF
D
-"F8F
+"F8F
Pv
Rx
-Pw
+Pw

B
-
-
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
-
+
7
8
9
-
-ELF
+
+ELF
-( ( (а XBXApG pGa+A8(
-
+( ( (а XBXApG pGa+A8(
+o
B 
.? : ; ' I@B 
B
B 
-B
-
-&
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
-
+B
+(
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
+

-
-ELF
-
-
-
+
+ELF
+
+
+
4

B
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
+
+
"
"
-
-ELF
-
+
+ELF
+
B
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
-
-ELF
+
+
+
+
+
+
+
+
+
+*
+
+
+
+A 
+*D
+
+ELF
ڰG
Z6:h
8X'O (F OI  
@@ -1260,10 +1258,10 @@ h `:`9F"F3F""?GE
 BEBF
3FE !FXF"FF(FE@F!F
F
-
+
t
i
- t
+ t


B
@@ -1277,27 +1275,29 @@ h `:`9F"F3F""?GE
-
-
-
-
-
-
-
-
-
-"
-
-
-
-
+
+-
+
+
+
+
+
+
+
+
+
+
+
+
+
+!
-
+
A 
-*D
-
+*D
+
-
+
3
4
3
@@ -1343,441 +1343,444 @@ h `:`9F"F3F""?GE
-
-ELF
+
+ELF
Pv
Pt
Rt
Qv
-Pu
+Pu

B
-
-?'
-
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
+
+y'
+
+
+
+
+
+
+
+
+
+
+A 
+*D
-
+
4
5
6
-
-ELF
-
+
+ELF
+
B
1
-
-'
-
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
+
+I'
+
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
-
+
4
5
6
-
-ELF
- 
+
+ELF
+ 
B 
-
-
-
-
-
-"
-
-
-
-
-
-
-
-
-
-
-A 
-*D
-
+
+
+
+2
+
+
+'
+
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
+
-
-
-ELF
- 
+
+
+ELF
+ 
-&
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
-
-
-ELF
- 
+&
+
+
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
+
+
+ELF
+ 
-
-
-
-
-&
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
-
-
-ELF
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
+
+
+ELF

-
+

-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- v  .!
-A 
-*D
-
-
-
-ELF
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+/
+ v  .!
+A 
+*D
+
+
+
+ELF
+
B 
-
-*
-
-
-
-
-
-\
-
-
-
-
-
-A 
-*D
-
-
-
-
-ELF
-Fx1Bx
-
-
-
-
-
-
-
-
-v
-
-
-
-
-
-A 
-*D
-
-
+
+
+*
+
+
+
+
+
+
+K
+
+)
+
+
+
+A 
+*D
+
+
+
+
+ELF
+Fx1Bx
+
+
+0
+
+
+
+
+v
+
+
+
+
+A 
+*D
+
+
-
-
-ELF
-
-
-
-
-
-
-e
-
-
-
-
-
-
-A 
-*D
-
-
-
-ELF
-B 
-
-
-
-
-
-
-
-
-
-"
-
-
-
-
-A 
-*D
-
-
+
+
+ELF
+
+
+
+
+
+e
+
+
+
+
+A 
+*D
+
+
+
+ELF
+B 
+
+
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
+
+
-
-
-ELF
-
-
-
-
-
-
-
-
-
-?
-
-
-
-
-A 
-*D
-
-
-ELF
-B
-'
-
-
-
-&
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
-
+
+
+ELF
+
+
+
+
+
+
+"
+
+
+
+?
+
+
+
+
+A 
+*D
+
+
+ELF
+B
+'
+
+
+
+
++
+
+
+*
+$
+
+
+:
+,
+
+
+A 
+*D
+
-
-
-ELF
+
+
+ELF
B 
-
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
-
+
+
+,
+
+
+
+
+
+
+
+#
+
+
+
+"
+A 
+*D
+
-
-
-ELF
-
+
+
+ELF
+
B 
-
-
-
-
-&
-
-
-
-
-X
-
-
-
-
-
-A 
-*D
-
-
+
+'
+
+
+
+$
+
+
+
+X
+
+.
+
+
+
+
+A 
+*D
+
+
-
-
-ELF
+
+
+ELF
-&
-
-
-
-
-
-W
-
-#
-
-
-
-A 
-*D
-
-
-
-
-ELF
-
-
-
-
--
-
-
-f
-
-#
-
-
-
-
-
-A 
-*D
-
-
+&
+
+
+
+
+
+
+W
+
+
+
+
+A 
+*D
+
+
+
+
+ELF
+
+
+
+
+
+
+
+
+
+S
+
+
+
+
+
+
+
+A 
+*D
+
+
-
-
-ELF
+
+
+ELF
JO O;K?
-&PF
+&PF
v
-L
+L
&
B
-
-"
-
-
-
-
-
-
-
-
-
-
-A 
-*D
- 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
+ 
-
+
6
3
4
7
8
9
-
+
ELF
A 
*D
-/26 1495506546 7574 7000 100644 24732 `
-ELF
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+/26 1499930199 7574 7000 100644 24768 `
+ELF
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

@@ -1786,31 +1789,31 @@ L
B

-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-.! /=/N./Z[?./Z[?./ZZK1./Z
+
+
+
+.! /=/N./Z[?./Z[?./ZZK1./Z
A 
-*D
+*D



-
-E
-E
-
+
+



@@ -1819,15 +1822,15 @@ E


!
-
+
ELF
A 
-*D
-ELF
-
-
+*D
+ELF
+
+
i
-q
+q
4
@@ -1839,79 +1842,79 @@ q
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
<=0#/>
-./u//tKK
+./u//tKK
A 
-*D
-
+*D
+
-
-
-
+
+
+


-
-ELF
-
-)
-)
-4
-
-
-
-
-
-
-
-
-
-
-!
-
-
-A 
-*D
-
-
-
+
+ELF
+
+)
+)
+4
+
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
+
+
+
ELF
A 
*D
-/119 1495506546 7574 7000 100644 41292 `
-ELF
-
-V
-V
-V
-V
-
-
+/119 1499930199 7574 7000 100644 41328 `
+ELF
+
+v
+v
+v
+v
+
+
-
+
-
+
-
+
-
+
B
@@ -1923,25 +1926,23 @@ V



-
-
-
-
-
-
-
-
-(
-
-$
-
-
-
-
-
-
-A 
-*D
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+A 
+*D

@@ -1950,7 +1951,7 @@ $
-
+
@@ -1959,7 +1960,7 @@ $
-
+
%
'
)
@@ -2023,169 +2024,164 @@ i
-
-ELF
-
-
+
+ELF
+
+
a
-b
+b
-
-/r
-
-
-
-
-
-
-s
-
-
-
-
-6
-
-A 
-*D
-
-
-ELF
+
+/
+
+
+
+
+
+
+s
+
+
+
+
+A 
+*D
+
+
+ELF
~ SED <]RF F)F
-EE 2FFXF  HO{ @Op
-
-Oe
-
+EE 2FFXF  HO{ @Op
+Oe
+
 : ; 
B
-
-&<
-
-
-
-
-
-
-
-
-
-
-.u  .Y  2//1!//A/A!!/="x!/{/,2@!//00!
-A 
-*D
-
-
-
+
+&<
+
+
+
+9
+#
+
+
+
+
+
+
+
+
+
+.u  .Y  2//1!//A/A!!/="x!/{/,2@!//00!
+A 
+*D
+
+
+
-
.
.
+
/
0
--
-ELF
- 
+-
+ELF
+

-a
+n
%
-6
+6
(
B
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
-
+
+
+
+
+-
+
+
+
+
+
+
+
+
+
+A 
+*D
+
,
-
-ELF
-
+
+ELF
+

-5
+B
%
-2
+2
(
B
-
-
-
-
-
-
-
-
-4
-
-
-
-
-1
-
-
-A 
-*D
+
+
+
+
+
+
+
+&
+)
+
+
+
+
+
+
+
+
+A 
+*D
-
+
(
-
-ELF
-
-
-I
+
+ELF
+
+A

-
+
%
-2
+2
(
B
-
-
-
-
-
-
-
-
-
-
-
-
-
-!
-
-A 
-*D
+
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
-
+
(
-
-ELF
-Oe
-
-
+
+ELF
+Oe
+
+
 : ; 
@@ -2193,56 +2189,58 @@ I
B
-
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
-
-
-
+
+
+&
+
+
+
+
+
+
+
+
+
+
+2
+A 
+*D
+
+
+
,
,
-
.
/
-0
-ELF
-
-
+0
+ELF
+
+
a
-b
+b
-
-/r
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
-
-
-ELF
+
+/
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
+
+
+ELF
FI
-FhF
-
+FhF
+
@@ -2250,193 +2248,195 @@ FhF
B
-
-
-
-
-
-
-
-
-
-
-
-t
-
-
-
-A 
-*D
+
+
+"
+
+
+
+
+
+
+
+
+
+t
+
+
+
+
+A 
+*D
,
-
-.
-ELF
-
-L
+.
+ELF
+-
+D
-
+
%
- 3
+!3
(
B
-
-
-
-
-,
-
-$
-
-
-
-
-
-
-
-A 
-*D
-
-)
-ELF
+
+
+
+
+
+
+3
+
+
+
+
+'
+
+
+
+A 
+*D
+
+)
+ELF
- KXxBpg@BaA
-
-
+ KXxBpg@BaA
+
+
+
0
-
+
A
-3
+3

-
-
+
+
(
B
-
-
-
-
-
-'
-#
-
-
-
-
-
-
-A 
-*D
-
+
+
+
+
+
+#
+
+
+
+
+
+
+A 
+*D
+
*
-(
-ELF
-
+(
+ELF
+
-
+

-|
+

-2
+2
(
B
-
-
-
-
-"
-
-7
-
-
-
-
-
-
-
- v. :u. !
-A 
-*D
-
-)
-ELF
-KXxBp O0O1
-
+
+
+
+
+
+
+
+
+
+2
+
+1
+
+
+ v. :u. !
+A 
+*D
+
+)
+ELF
+KXxBp O0O1
+
-
+

-J
+W
-2
+2
(
B
-
-
-
-
-*
-
-
-
-
-
-
-
-
-
-
- 0t  .,0s  !
-A 
-*D
-
+
+
+
+
+0
+
+
+
+/
+
+
+
+
+
+ 0t  .,0s  !
+A 
+*D
+
(
-*
-ELF
-yDO
-
-a
+*
+ELF
+yDO
+
+a

B
-
-/ 
-
-
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
-
-
-ELF
+
+/-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
+
+ELF

#O
#e OyOxIi
-#i O sOrCc
-OZ
-
+#i O sOrCc
+OZ
+
 : ; 
@@ -2446,134 +2446,131 @@ a
B
-
-&<
-
-
-,
-
-
-
-
-
-
-
-"
-
-
-
-
-
-
-
-
-
-A 
-*D
+
+&<
+
+
+
+
+
+-
+
+
+
+
+
+
+
+
+
+A 
+*D
-
.
.
+
/
0
--
-ELF
-
+-
+ELF
+

-%
+2
A
-5
+5
(
B
-
-
-0
-
-
-
-
-
-
-
-
-
-
-.
-A 
-*D
-
+
+
+
+
+
+
+
+
+$
+
+
+
+
+
++
+.
+A 
+*D
+
,
-
-ELF
-
+
+ELF
+
+

-
+
A
-E2
+Y2
(
B
-
-
-
-/
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
-
-)
-ELF
-
+
+)
+ELF
+
+

-
+
A
-K2
+_2
(
B
-
-
-
-
-
-
-(
-
-
-
-
-5
-
-
-
-A 
-*D
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
-
-)
-ELF
+
+)
+ELF

C #
CO
:C
I
-IOs
-
-Ow
+IOs
+
+Ow
 : ; 
@@ -2584,475 +2581,473 @@ IOs
B
-
-4
-
-
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
-
-
-
+
+
+
+
+
+%
+
+
+
+
+
+
+
+6
+
+
+A 
+*D
+
+
+
,
,
-
.
/
-0
-ELF
-yDO
+0
+ELF
+yDO
+
+
-a
+a

B
-
-/
-
-
-
-
-
-#
-
-
-
-
-
-
-
-A 
-*D
-
-
-ELF
-
-H
+
+/+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
+
+ELF
+
+U
B
-
-
-"
-
-
-
-
-
-#
-
-
-
-
-
-A 
-*D
-
+
+
+
+
+
+
+
+
+.
+
+
+
+A 
+*D
+
,
-
.
/
-
-ELF
+
+ELF

O4D;@4
-KY0xBp6
-
-e
+KY0xBp6
+
+
+]

-
+
&
-r
+
(
B
-
-
-
-
-
-
-$
-
-
-
-
-
-
-
-A 
-*D
- 
-
+
+
+
+
+
+
+
+
+
+
+
+'
+
+
+
+A 
+*D
+ 
+
+
+
(
-)
-ELF
+)
+ELF
@t
4K
-dBeEO4o
-
-
-
+dBeEO4o
+
+
+
D
-
+
A
-2
+2
(
B

-
-
-
-
-
-7
-*
-
-
-
-
-
-.
-A 
-*D
- 
-
+
+
+
+
+
+
+7
+
+
+
+
+.
+A 
+*D
+ 
+
+
(
)
-(
-ELF
- K[0xBpTF
-
-
+(
+ELF
+ K[0xBpTF
+
+

-J
+W
-2
+2
(
B
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+*
+
+
+
+
+
+
.!-vJ
.!/I0s. .+/0!
-
+
A 
-*D
- 
-
+*D
+ 
+
+
(
-)
-ELF
- @t
-|
+)
+ELF
+ @t
+#
+t

-<
+I

-2
+2
(
B
-
-
-
-
-
-
-
-
-
-5
-
-
-
-
- ht. .,#,>s. L!
-A 
-*D
-
+
+
+
+
+
+
+
+
+
+
+
+
+ ht. .,#,>s. L!
+A 
+*D
+
(
)
(
-+
-ELF
-
-
-a
++
+ELF
+
+
+a

B
-
-/
-
-
-
-2
-
-
-
-
-
-
-
-
-A 
-*D
-
+
+/
+
+
+-
+
+
+
+
+
+8
+
+
+
+
+
+
+A 
+*D
+
(
-
-ELF
-
-
-a
+
+ELF
+
+
+a

B
-
-/
-
-
-
-
-
-
-b
-6
-
-
-
-
-
-.0
-A 
-*D
-
+
+/
+
+
+
+
+b
+
+
+
+
+
+.0
+A 
+*D
+
)
'
-
-ELF
-
-
-a
+
+ELF
+
+
+a

B
-
-/
-
-
-
-
-(
-4
-
-
-
-
-
-
-A 
-*D
-
+
+/
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
+
(
)
*
-
-ELF
+
+ELF
K"F+F
-RBcC
-a
-<Pv
+RBcC
+a
+<Pv

B
-
-/
-
-
-
-
-
-
-
-
-
-0
-
-
-
-A 
-*D
-
-)
-ELF
-
-
-a
+
+/
+
+
+
+
+
+
+8
+
+
+
+1
+&
+
+
+A 
+*D
+
+)
+ELF
+
+
+a

B
-
-/
-
-
-
-
-
-
-
-
-
-
-A 
-*D
-
+
+/
+
+
+"
+
+
+
+
+.
+
+
+
+
+A 
+*D
+
(
)
-
-ELF
-
-
-a
+
+ELF
+
+
+a

B
-
-/C
-
-
-
-
-
-
-
-
-
-
-A 
-*D
-
+
+/P
+
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
+
)
'
-
-ELF
-TМ@
-
-
-
-a
-
+
+ELF
+TМ@
+
+
+
+a
+

B
-
-/-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
-
+
+/:
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
+
(
)
*
-
-ELF
+
+ELF
+
a
= Q0 Pt
-< Q0 }
+< Q0 }

B
-
-/
-
-
-
-3
-
-4
-
-
-
-
-
-
-
-
-A 
-*D
-M
-M
-
+
+/
+
+
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
+
(
)
*
-
-ELF
-
-
-V(
-8&
-'
-v
+
+ELF
+
+
+s(
+E&
+2'
+n
s
-n
+{

-"
-
-Pu
+"
+Pu
(
@@ -3060,48 +3055,50 @@ n
B
-
-
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
+
+
+
+
+
+
+
+5
+
+
+
+
+
+
+:
+
+A 
+*D
,
-
-
.
-/
-ELF
+/
+ELF

 TOPO:@ 
E T @
e F"BZ %.
-F FK k2
-*
-
-
-U(
-/&
-'
-
+F FK k2
+
+
+R(
+&
+'
+p
e
-y
+f
u
-|"
+i"
@$@&
-@$@&
+@$@&
(
@@ -3125,30 +3122,31 @@ u


-
-
-
-
-
-
-
-
- 
-
-
-
-A 
-*D
+
+
+
+
+
+
+
+ 
+
+
+
+
+
+A 
+*D
,
-
-
.
-/
-ELF
+/
+ELF
uiA
-uiB
+uiB
Pv
-0)(
+0)(

@@ -3162,41 +3160,38 @@ uiB
-
-
-
--
-
-#
-
-
-
-
-
-
-3
-
-
-
-
-
-A 
-*D
-
+
+
+
+
+
+
+
+'
+
+
+
+
+
+
+A 
+*D
+
+
+
,
-
-
-ELF
+
+ELF
0 \oGWOV 
O8Pf

E @ @Oq
A o
C S
-PFYF#FF
-uiA
+PFYF#FF
+
+uiA

@@ -3209,144 +3204,138 @@ uiA

-
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
+
+
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
,
,
-
-.
-ELF
-
+.
+ELF
+
+
z
-4
-
-
-
-
-#
-
-
-
-
-
-
-7
-
-
-A 
-*D
+4
+
+5
+
+$
+
+
+
+
+
+
+
+
+
+A 
+*D
+
-
+
)
'
-
-ELF
-
-
-
-z
+
+ELF
+
+
+
+z
4
B
-
-
-
-
-
-)
-_
-'
-
-
-
-
-7
-
-%
-
-A 
-*D
-
+
+
+
+
+
+_
+
+
+
+
+
+A 
+*D
-
+
(
-
-ELF
+
+ELF
8O
+
-dCOx!FDD`
-
-;
-
-
-
-
-P$
-%
-
+dCOx!FDD`
+
+H
+
+
+
+
+]$
+7%
+
)
-W
+d
A
-
-Pt
+
+Pt
(
B
-
-
-
-
-
-
-
-/
-
-
-
-
-
-
-
-
-A 
-*D
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
+
)
*
-*
-ELF
+*
+ELF
-@P_
-
-
-I
-4
-E
-
- $
-$
-~
+@P_
+
+
+V
+A
+R
+
+$
+$
+
)
-
+
A
-e
+r
(
@@ -3354,446 +3343,446 @@ e
B
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
- 
-
+
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
+ 
+
)
*
-*
-ELF
--
+*
+ELF
-
-
-
-
-
-
-
-
-O
-
-
-
-
-A 
-*D
-
+
+
+
+
+
+
+
+
+
+O
+
+
+
+/
+
+A 
+*D
+


-
-ELF
-KB @
-
+
+ELF
+KB @
B
-
-
-
-
-
-
-
-
-!
-
-
-
-
-A 
-*D
-
-
-
-ELF
-
-
-
+
+
+
+
+
+
+
+
+
+
+!
+
+
+
+
+A 
+*D
+
+
+
+ELF
+
+
+

B
-
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
-
+
+
+
+%
+
+
+
+
+
+
+
+
+A 
+*D
+
(
)
-
-ELF
-:
-
-
+
+ELF
+:
+
+

B
-
-
-
-
-"
-
-
-
-
-
-
-,
-
-
-
-A 
-*D
- 
-
-
+
+
+
+
+
+
+
+1
+
+
+4
+
+
+A 
+*D
+ 
+
+
)
'
'
*
-
-ELF
-
-
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
+
+ELF
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D


-
-ELF
-
-
-&
-
-
-
-
-D
-
-
-
-
-A 
-*D
+
+ELF
+'
+
+
+
+
+
+
+
+
+
+D
+
+
+
+
+A 
+*D
-
+
-
-ELF
-
-*
+
+ELF
+
+*
B 
4
-
-
-
-
-
-
-
-
-_
-
-
-
-A 
-*D
+
+%
+
+
+
+
+
+
+
+_
+
+
+
+,
+
+
+A 
+*D
-
-ELF
-
-
-
+
+ELF
+
+
+
B 
!
-
-
-
-
-
--
-
-
-
-
-
-
-
-!
-
-
-
-A 
-*D
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
-
-ELF
+
+ELF
5DO
-D EE
-
-
+D EE
+
a32
a0
-z
+z
mid
4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
- 
-
-ELF
-
-&
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
-
+
+
+,
+
+
+
+
+
+)
+
+
+.
+
+
+
+/
+
+A 
+*D
+ 
+
+ELF
+
+&
+
+
+
+
+
+
+
+
+
+
+
+
+:
+,
+A 
+*D
+
-
+
-
-ELF
-B 
-
-
-*
-
-
-
-
-
--
-
-
-
-
-
-A 
-*D
-
-
-
-ELF
-
-6
+
+ELF
+B 
+
+
+
+
+
+
+0
+-
+
+
+
+
+
+A 
+*D
+
+
+
+ELF
+
+6
1
B
-
-&
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
-
-,
-ELF
-N!
+
+& 
+
+
+
+
+
+
+
+(
+0
+
+
+A 
+*D
+
+,
+ELF
+$
+[!
.? : ; ' @B 
B
-
-
-
-
-
-
-
-
-
-^
-
-
-
-A 
-*D
-
+
+
+
+
+
+
+
+
+^
+
+
+
+A 
+*D
+
+
&
-
-ELF
+
+ELF

-
-
-
-
-
-
-
-
-
-H
-
-
-
-
-
-A 
-*D
-
-
-ELF
- IO0 @)@P 
-
-
+
+
+
+
+
+
+
+
+
+H
+
+1
+
+
+
+A 
+*D
+
+
+ELF
+ IO0 @)@P 
+
+
.? : ; ' @B 
B
-
-
-
-
-5
-*
-
-
-
-_
-
-
-
-
-A 
-*D
-
-
-&
-ELF
+
++
+.
+
+
+
+
+
+
+_
+
+
+
+
+A 
+*D
+
+&
+ELF
O
O
FO
-
-
-
+
+
+
1
B
-
-&
-
-
-
-9
-
-8
-
-
-
-
-
-
-A 
-*D
- 
-,
-ELF
-@p@@@
+
+&
+
+
+
+
+
+
+
+
+
+
+A 
+*D
+ 
+,
+ELF
+@p@@@

B 
-
-
-
-
-/
-
-
-
-
-
-.
-0
-
-
-
-A 
-*D
-
-
-
-ELF
+
+
+
+
+
+
+
+
+
+.
+
+
+
+A 
+*D
+
+
+
+ELF
; 
ܸ#fи*fи @X.jи0и-@_U
3h6C{j
@@ -3814,18 +3803,18 @@ O
8
 1YE{ #
-;:
-
-
-
+;:
+
+
+
@
-H
+X

-
+
4

@@ -3845,23 +3834,27 @@ H



-
-"
-
-
-
-
-
-
-
-
-p
-
-
-
-A 
-*D
-
+
+"
+
+
+
+
+
+"
+
+
+
+
+p
+
+
+
+
+
+A 
+*D
+
2
3
4
@@ -3873,100 +3866,94 @@ p
1
5
-
-ELF
-F
-
-
-PQ
+
+ELF
+F
+
+
+PQ

B
-
-
-!
-
-)
-
-
-
-
-
-
-
-
-
-
-
-5
-
-
-A 
-*D
-
+
+
+!
+
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
+
-
+
.
-
-ELF
-
+
+ELF
+
-&
-
-!g
-
-
-
-
-&
-0
-
-
-
-
-
-
-(
-
-
-A 
-*D
+&
+
+!t
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
+
-
-
-ELF
- 
+
+
+ELF
+ 
-&
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
-
-
-ELF
+&
+$
+
+
+
+
+
+
+
+
+
+
+
+
+
+A 
+*D
+
+
+ELF
q1JzD
ȿ$,($+U
-+,
-
-
++,
+
+

@@ -3976,7 +3963,7 @@ p
 }

-
+
4
B 
@@ -3987,22 +3974,22 @@ p
B
-
-
-
-
-
-
-
-
-
-
-
-
-A 
-*D
+
+
+
+
+(
+
+
+
+
+
+
+
+A 
+*D
-
+
P
Q
P
@@ -4010,7 +3997,7 @@ P
P
P
R
-S
+S
ELF
A 
*D
diff --git a/ta_export/lib/libzlib.a b/ta_export/lib/libzlib.a
index 1a8b00b..d7c2af6 100644
--- a/ta_export/lib/libzlib.a
+++ b/ta_export/lib/libzlib.a
@@ -1,12 +1,15 @@
!<arch>
-/ 1495506546 0 0 0 1050 `
-
-ELF
-DD{DwDD8wDA8A3B FOqF(F FOq FARB;F
-
-
-rem
-
+/ 1499930199 0 0 0 1050 `
+
+ELF
+DD{DwDD8wDA8A3B FOqF(F FOq FARB;F
+
+
+
+rem
+
+
+
4
B 
@@ -21,25 +24,23 @@ rem
4
"

-[
-
-
-
-
-
-
-
-
-
-
-
-
-
-/
-
+[
+
+
+
+
+
+
+
+
+
+
+
+
+
A 
-*D
-
+*D
+
'
(
(
@@ -47,17 +48,16 @@ rem
(
(
(
-
-
-ELF
+
+
+ELF
5lBɻ@l2u\E Y=ѫ0&:
| <qPA' %hWo fa^)"а=Y .;\l ұt9Gwҝ&s c;d>jm Zjz  '
}Dңhi]Wbgeq6lknv+ӉZzJgo߹ホCՎ`~ѡ8ROggW?K6H+ L
J6`zA`Ugn1yiFafo%6hRw G "/&U;( Z+j\1е,[d&c윣ju
m ?6grW
- TN³9a&g`MGiIwn>JjѮZf @;7SŞϲG0򽽊º0S$6к)WTg#.zfJah]+o*7 Z-
-@
-
+ TN³9a&g`MGiIwn>JjѮZf @;7SŞϲG0򽽊º0S$6к)WTg#.zfJah]+o*7 Z-
+-
B 
.: ;' @B 
B
@@ -66,23 +66,23 @@ rem
B
B 
-
-
-
-
-
-
-
-
-|
-
-
-
+
+
+
+
+
+
+
+|
+
+
+
+
A 
-*D
-
-
-ELF
+*D
+
+
+ELF
T\h3UCa-Opnjko|oeE
< Pi T
l `l 0o9g
@@ -113,27 +113,28 @@ Taa 
F F.l
ThhPT3
ThhPTz3hPTca F F)(Fi`i
-O c `!ZbBce d:Be
-
-{
-
-
-
-
-
+O c `!ZbBce d:Be
+#
+
+{
+
+
+
+
+
-
-
+
+
-
+
-
-
-
+
+
+
@@ -141,16 +142,16 @@ F F.l
-
-
+
+
-
+
-
-+Q1
+
++Q1
+Q1
-+Qv
++Qv
' 
@@ -203,19 +204,19 @@ F F.l



-
->2
-)
-
-
-
-4
-
-
-
-
-n
-
+
+R2
+'
+
+
+9
+
+
+
+
+N
+;
+
!
.B)3
f?5w/?O#[KBy. ""=!K"Y=====!<. <.b   <;v.=
@@ -224,16 +225,16 @@ f XuJ=
."hE!$
J-/wJ=Y0A==!-!"$FYKYKYKh>^[$>L/=@//>=!/u
-<M02"-V...
+<M02"-V...
A 
-*D
+*D



- 
+ 
-
+
?
?
@
@@ -322,9 +323,9 @@ W
-
-
-ELF
+
+
+ELF
C3f(82$nmB C
" d5{DIfcmO l ;;@[E5GF
lL
@@ -341,22 +342,24 @@ W
-
-
-j&
-
- B#
-
+
+
+g&
+
+
+
+ /#
+
{
-
-!Q1
-
-t
+
+!Q1
+
+t
' 
@@ -377,49 +380,50 @@ W

-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+9
+
+
+*
+
+
+
+
+
+
. < o .
-<!!+/0v!@":!/!A2
+<!!+/0v!@":!/!A2
A 
-*D
-
+*D
+
?
@
@
@
A
-
-
-ELF
+
+
+ELF
&hmj 
8>P*
`xx4@2 
->D
-
-
-
-
-
-
- [
+>D
+
+
+
+
+
+"
+ H

-
+

-
-)
-
+
+
' 
@@ -429,27 +433,26 @@ A
-
-
-*
-
-
-
-
-
-
-
-
-
-"
-
-
+
+
+
+
+$
+
+
+
+
+
+
+
+%
+
A 
-*D
-
-
-
-ELF
+*D
+
+
+
+ELF
@-c0o
cbB:={D
"
@@ -490,25 +493,25 @@ DOs+
-
-
-#(
-
- #
+
+
+ (
+
+ #
$
-
-$Q1
-
-
-
+
+$Q1
+
+
+
$Q1

-$Qu
+$Qu
' 
@@ -614,30 +617,29 @@ $
-
-;
-
-
-
-
-
-
-;
-
-
-
-
-
-
-
+
+
+6
+
+
+
+
+
+
+;
+
+
+
+
+
 $!!!u/#:#
w "!!!*&=/Lo .$
.4 //-5#
X0KK>!/K<>-2/?!M!\=
-< .%
+< .%
A 
-*D
-
+*D
+
I
I
I
@@ -676,18 +678,20 @@ I



-
-
-ELF
+
+
+ELF
<O6
\FFO 
N7 
E p6` 
q7YE8 E,
-
+
-
-
+
+
+
+
.? : ; ' I@B 
@@ -695,27 +699,28 @@ I

-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-.
+
+
+.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
A 
-*D
-
-
-ELF
+*D
+
+
+ELF
,ܰJ4JJ4J}BO
GahL
@@ -774,29 +779,27 @@ CaizTO1hO.iaa :A@21CaSi
   
-
-
-
-
-
-
-|
-(
-
+
+
+
+
+
+|
+
+




-
-
-
-
-
+
+
+
+
-
+
-
+
' 
@@ -887,19 +890,22 @@ CaizTO1hO.iaa :A@21CaSi
3%

-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+(
+
+
+
+
+
+
+
+
+
+=
+
.G600n .!
.@ `XCy '\JX!
q.!=g=
@@ -907,13 +913,13 @@ CaizTO1hO.iaa :A@21CaSi
X!@
X>!'y<5
<-!Kg"v"&x C=e/;=-/XO
-
+
A 
-*D
- 
-
-
-
+*D
+ 
+
+
+
G


@@ -946,66 +952,69 @@ G
-
-
-ELF
-
-
-
+
+
+ELF
+#
+
+
' 
B
-
-
-
-
-
-
-
-
-
-b
-
-
+
+
+
+
+
+
+
+
+
+
+
+b
+
+
A 
-*D
-
-
+*D
+
+
"
#
$
$
-
-
-ELF
-err
-len
-s1
-len
+
+
+ELF
+err
+len
+s1
+len
B
B 

B 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+,
+
+
+
+
+
+
+
+
+
A 
-*D
-
+*D
+

diff --git a/ta_export/scripts/gen_aes_iv.py b/ta_export/scripts/gen_aes_iv.py
new file mode 100755
index 0000000..fb00a4e
--- a/dev/null
+++ b/ta_export/scripts/gen_aes_iv.py
@@ -0,0 +1,55 @@
+#!/usr/bin/env python
+#
+# Copyright (c) 2015, Linaro Limited
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+
+def get_args():
+ from argparse import ArgumentParser
+
+ parser = ArgumentParser()
+ parser.add_argument('--out', required=True, help='Name of out file')
+ return parser.parse_args()
+
+def main():
+ import uuid
+ import md5
+
+ args = get_args()
+
+ uuid = uuid.uuid4()
+
+ h = md5.new()
+ h.update(uuid.bytes_le)
+
+ f = open(args.out, 'wb')
+ f.write(h.digest())
+ f.close()
+
+ print 'Generate Custom Key...'
+ print ' Output: ta aes iv = ' + args.out
+
+if __name__ == "__main__":
+ main()
diff --git a/ta_export/scripts/gen_aes_key.py b/ta_export/scripts/gen_aes_key.py
index 18dfe4e..0159dd0 100755
--- a/ta_export/scripts/gen_aes_key.py
+++ b/ta_export/scripts/gen_aes_key.py
@@ -48,5 +48,8 @@ def main():
f.write(h.digest())
f.close()
+ print 'Generate Custom Key...'
+ print ' Output: ta aes key = ' + args.out
+
if __name__ == "__main__":
main()
diff --git a/ta_export/scripts/gen_cert_key.py b/ta_export/scripts/gen_cert_key.py
index 57b2fbe..443ca50 100755
--- a/ta_export/scripts/gen_cert_key.py
+++ b/ta_export/scripts/gen_cert_key.py
@@ -23,29 +23,39 @@ def get_args():
parser.add_argument('--ta_rsa_key_sig', type=str, default='null', help='Name of TA key signature file')
parser.add_argument('--root_aes_key', type=str, default='null', help='Name of root aes file')
- parser.add_argument('--ta_aes_key', type=str, default='null', help='Name of ta aes file')
- parser.add_argument('--ta_aes_key_enc', type=str, default='null', help='Name of encrypted ta aes key file')
+ parser.add_argument('--ta_aes_key', type=str, default='null', help='Name of ta aes key file')
+ parser.add_argument('--ta_aes_iv', type=str, default='null', help='Name of ta aes iv file')
+ parser.add_argument('--ta_aes_key_iv_enc', type=str, default='null', help='Name of encrypted ta aes key iv file')
return parser.parse_args()
-def aes256_cbc_enc(key, text):
+def aes256_cbc_enc(key, iv, text):
import struct
from Crypto.Cipher import AES
- iv = struct.pack('<IIII', \
- 0x0, 0x0, 0x0, 0x0)
-
cipher = AES.new(key, AES.MODE_CBC, iv)
#if text is not a multiple of 16, return
x = len(text) % 16
if x != 0:
- return 'null'
+ text_pad = text + '0'*(16 - x)
+ else:
+ text_pad = text
msg = cipher.encrypt(text)
return msg
+def gen_aes256_iv():
+ import md5
+ import uuid
+
+ uuid = uuid.uuid4()
+
+ h = md5.new()
+ h.update(uuid.bytes_le)
+ return h.digest()
+
def main():
import struct
import array
@@ -67,12 +77,24 @@ def main():
ta_aes_key = f.read()
f.close()
- ta_aes_key_enc = aes256_cbc_enc(root_aes_key, ta_aes_key)
+ f = open(args.ta_aes_iv, 'rb')
+ ta_aes_iv = f.read()
+ f.close()
+
+ root_aes_iv = gen_aes256_iv()
+
+ ta_aes_key_enc = aes256_cbc_enc(root_aes_key, root_aes_iv, ta_aes_key)
if (ta_aes_key_enc == 'null'):
sys.exit(1)
- f = open(args.ta_aes_key_enc, 'wb')
+ ta_aes_iv_enc = aes256_cbc_enc(root_aes_key, root_aes_iv, ta_aes_iv)
+ if (ta_aes_iv_enc == 'null'):
+ sys.exit(1)
+
+ f = open(args.ta_aes_key_iv_enc, 'wb')
+ f.write(root_aes_iv)
f.write(ta_aes_key_enc)
+ f.write(ta_aes_iv_enc)
f.close()
f = open(args.root_rsa_key, 'rb')
@@ -91,8 +113,9 @@ def main():
print ' uuid = ' + args.uuid
print ' root_aes_key = ' + args.root_aes_key
print ' ta_aes_key = ' + args.ta_aes_key
+ print ' ta_aes_iv = ' + args.ta_aes_key
print ' Output: ta_rsa_key.sig = ' + args.ta_rsa_key_sig
- print ' ta_aes_key_enc = ' + args.ta_aes_key_enc
+ print ' ta_aes_key_enc = ' + args.ta_aes_key_iv_enc
h_key = SHA256.new()
for x in array.array("B", long_to_bytes(key_ta.publickey().n)):
diff --git a/ta_export/scripts/nosign.py b/ta_export/scripts/nosign.py
index 7a2b5f9..dcdfc39 100755
--- a/ta_export/scripts/nosign.py
+++ b/ta_export/scripts/nosign.py
@@ -58,6 +58,8 @@ def main():
magic, version, 0, algo, 0, img_type, img_size, 0,\
0, 0, 0, 0, 0, 0, 0, 0)
+ nonce = struct.pack('<IIII', \
+ 0, 0, 0, 0)
aes_key = struct.pack('<IIIIIIII', \
0, 0, 0, 0, 0, 0, 0, 0)
aes_iv = struct.pack('<IIII', \
@@ -66,6 +68,7 @@ def main():
f = open(args.out, 'wb')
f.write(shdr)
+ f.write(nonce)
f.write(aes_key)
f.write(aes_iv)
f.write(h.digest())
diff --git a/ta_export/scripts/pack_kpub.py b/ta_export/scripts/pack_kpub.py
index f848ab9..ea02256 100755
--- a/ta_export/scripts/pack_kpub.py
+++ b/ta_export/scripts/pack_kpub.py
@@ -17,7 +17,8 @@ def get_args():
from argparse import ArgumentParser
parser = ArgumentParser()
- parser.add_argument('--key', required=True, help='root public key')
+ parser.add_argument('--rsk', required=True, help='root signing key')
+ parser.add_argument('--rek', required=True, help='root encrypt key')
parser.add_argument('--in', required=True, dest='inf', help='input Secure OS image file')
parser.add_argument('--out', type=str, default='null', help='output Secure OS image file')
return parser.parse_args()
@@ -28,23 +29,43 @@ def main():
from Crypto.PublicKey import RSA
from Crypto.Util.number import long_to_bytes
+ key_size_max = 1024
+
args = get_args()
if args.out == 'null':
args.out = args.inf
- kf = open(args.key, 'rb+')
- key = RSA.importKey(kf.read())
+ kf = open(args.rsk, 'rb+')
+ rsk = RSA.importKey(kf.read())
+ kf.close
+
+ kf = open(args.rek, 'rb+')
+ rek = kf.read()
kf.close
- key_count = 1
- key_magic = 0x534F5441 # KEY_MAGIC
- key_type = 0x70004830 # KEY_TYPE
- key_size = (key.size() + 1) / 8
+ # key count
+ key_count = 2
+
+ key_hdr = struct.pack('<I', key_count)
+ key_hdr_len = len(key_hdr)
- bl32_hdr = struct.pack('<IIII', \
- key_count, key_magic, key_type, key_size)
+ # root sign key
+ rsk_magic = 0x534F5441 # KEY_MAGIC
+ rsk_type = 0x70004830 # KEY_TYPE
+ rsk_size = (rsk.size() + 1) / 8
- bl32_hdr_len = len(bl32_hdr)
+ rsk_hdr = struct.pack('<III', \
+ rsk_magic, rsk_type, rsk_size)
+ rsk_hdr_len = len(rsk_hdr)
+
+ # root encrypt key
+ rek_magic = 0x534F5441 # KEY_MAGIC
+ rek_type = 0x70004830 # KEY_TYPE
+ rek_size = len(rek)
+
+ rek_hdr = struct.pack('<III', \
+ rek_magic, rek_type, rek_size)
+ rek_hdr_len = len(rek_hdr)
inf = open(args.inf, 'rb+')
raw = inf.read()
@@ -59,20 +80,27 @@ def main():
outf = open(args.out, 'wb+')
outf.write(raw)
outf.seek(key_offset, 0)
- outf.write(bl32_hdr)
+ outf.write(key_hdr)
+ outf.write(rsk_hdr)
- print 'Packing root public key ...'
- print ' Input: key.name = ' + args.key
- print ' key.size = {}'.format(8 * key_size)
- print ' Input: image.name = ' + args.inf
- print ' Output: image.name = ' + args.out
-
- outf.seek(key_offset+bl32_hdr_len)
- for x in array.array("B", long_to_bytes(key.publickey().n)):
+ outf.seek(key_offset + key_hdr_len + rsk_hdr_len)
+ for x in array.array("B", long_to_bytes(rsk.publickey().n)):
pub_n_root = struct.pack("B", x)
outf.write(pub_n_root)
+ outf.seek(key_offset + key_hdr_len + rsk_hdr_len + key_size_max)
+ outf.write(rek_hdr)
+ outf.write(rek)
+
outf.close()
+ print 'Packing root public key ...'
+ print ' Input: rsk.name = ' + args.rsk
+ print ' rsk.size = {}'.format(8 * rsk_size)
+ print ' rek.name = ' + args.rek
+ print ' rek.size = ' + str(len(rek))
+ print ' Input: image.name = ' + args.inf
+ print ' Output: image.name = ' + args.out
+
if __name__ == "__main__":
main()
diff --git a/ta_export/scripts/sign_ta.py b/ta_export/scripts/sign_ta.py
index cf1719f..c52c223 100755
--- a/ta_export/scripts/sign_ta.py
+++ b/ta_export/scripts/sign_ta.py
@@ -20,7 +20,8 @@ def get_args():
parser.add_argument('--ta_rsa_key', required=True, help='Name of TA rsa private key file')
parser.add_argument('--ta_rsa_key_sig', required=True, help='Name of TA rsa public key signature file')
parser.add_argument('--ta_aes_key', type=str, default='null', help='Name of aes key file')
- parser.add_argument('--ta_aes_key_enc', type=str, default='null', help='Name of encryped aes key file')
+ parser.add_argument('--ta_aes_iv', type=str, default='null', help='Name of aes iv file')
+ parser.add_argument('--ta_aes_key_iv_enc', type=str, default='null', help='Name of encryped aes key iv file')
parser.add_argument('--in', required=True, dest='inf', help='Name of input file')
parser.add_argument('--out', type=str, default='null', help='Name of output file')
@@ -72,23 +73,17 @@ def main():
0x0, 0x0, 0x0, 0x0)
enc_aes_key = aes_key
else:
- h = md5.new()
- h.update(uuid.uuid4().bytes_le)
- aes_iv = h.digest()
- if args.ta_aes_key_enc == "null":
- aes_key_type = 1
- f = open(args.ta_aes_key, 'rb')
- aes_key = f.read()
- f.close()
- enc_aes_key = aes_key
- else:
- aes_key_type = 2
- f = open(args.ta_aes_key, 'rb')
- aes_key = f.read()
- f.close()
- f = open(args.ta_aes_key_enc, 'rb')
- enc_aes_key = f.read()
- f.close()
+ aes_key_type = 2
+ f = open(args.ta_aes_key, 'rb')
+ aes_key = f.read()
+ f.close()
+ f = open(args.ta_aes_iv, 'rb')
+ aes_iv = f.read()
+ f.close()
+ f = open(args.ta_aes_key_iv_enc, 'rb')
+ enc_aes_key = f.read()
+ f.close()
+ enc_aes_key_len = len(enc_aes_key)
# ta private key
f = open(args.ta_rsa_key, 'rb')
@@ -109,15 +104,13 @@ def main():
f = open(args.inf, 'rb+')
shdr_len = struct.calcsize('<IIIIIIIIIIIIIIII')
- aes_key_len = struct.calcsize('<IIIIIIII')
- aes_iv_len = struct.calcsize('<IIII')
shdr_check = f.read(shdr_len)
magic_check, version, flags, algo_check, arb_cvn, img_type_check,\
img_size_check,rsv0_check, rsv1_check, rsv2_check, rsv3_check, rsv4_check,\
rsv5_check, rsv6_check, rsv7_check, rsv8_check = struct.unpack('<IIIIIIIIIIIIIIII', shdr_check)
if img_type_check == 1:
- skip_len = shdr_len+digest_len+aes_key_len+aes_iv_len
+ skip_len = shdr_len+digest_len+enc_aes_key_len
elif img_type_check == 2:
print 'TA has been signed, exit.'
sys.exit(0)
@@ -145,7 +138,6 @@ def main():
h_elf.update(img)
h_hdr.update(shdr)
h_hdr.update(enc_aes_key)
- h_hdr.update(aes_iv)
h_hdr.update(h_elf.digest())
sig_ta = signer_ta.sign(h_hdr)
shdr_len = struct.calcsize('<IIIIIIIIIIIIIIII')
@@ -155,18 +147,18 @@ def main():
print ' ta_rsa_key.size = {}'.format(ta_key.size() + 1)
print ' ta_rsa_key.sig = ' + args.ta_rsa_key_sig
print ' ta_aes_key.name = ' + args.ta_aes_key
- print ' ta_aes_key_enc.name = ' + args.ta_aes_key_enc
+ print ' ta_aes_iv.name = ' + args.ta_aes_iv
+ print ' ta_aes_key_iv_enc.name = ' + args.ta_aes_key_iv_enc
print ' ta.name = ' + args.inf
print ' Output: ta.name = ' + args.out
f = open(args.out, 'wb')
f.write(shdr)
f.write(enc_aes_key)
- f.write(aes_iv)
f.write(h_elf.digest())
f.write(sig_ta)
- skip_len = shdr_len + aes_key_len + aes_iv_len + digest_len + sig_len
+ skip_len = shdr_len + enc_aes_key_len + digest_len + sig_len
f.seek(skip_len)
for x in array.array("B", long_to_bytes(ta_key.publickey().n)):
pub_n_ta = struct.pack("B", x)
@@ -177,13 +169,13 @@ def main():
uuid = uuid.UUID(uuidStr)
h_key.update(uuid.bytes_le)
- skip_len = shdr_len + aes_key_len + aes_iv_len + digest_len + sig_len + key_len
+ skip_len = shdr_len + enc_aes_key_len + digest_len + sig_len + key_len
f.seek(skip_len, 0)
f.write(ta_key_sig)
- skip_len = shdr_len + aes_key_len + aes_iv_len + digest_len + sig_len + key_len + sig_key_len
+ skip_len = shdr_len + enc_aes_key_len + digest_len + sig_len + key_len + sig_key_len
f.seek(skip_len, 0)
- if aes_key_type == 1 or aes_key_type == 2:
+ if aes_key_type == 2:
f.write(aes256_cbc_enc(aes_key, aes_iv, img))
else:
f.write(img)