From cbf34c6e4ee9e748c304147cbbc6204b5b75573e Mon Sep 17 00:00:00 2001 From: Sihyung Woo Date: Thu, 26 Oct 2023 13:50:41 -0500 Subject: [PATCH] Fix linter errors with FCL --- .../SecureROM_BL_Host/bootloader/bootloader.h | 56 +- .../test_images/MAX32520-KIT/blinkled_P1_6.c | 2750 ++++++++-------- Examples/MAX32665/Display/test_screen.h | 44 +- .../SecureROM_BL_Host/bootloader/bootloader.h | 8 +- .../MAX32651-EVKIT/blinkled_P2_25.c | 2924 ++++++++--------- .../test_images/test_images.h | 44 +- Examples/MAX32672/Display/lv_conf.h | 121 +- Libraries/FCL/Makefile_x86 | 14 +- Libraries/FCL/doc/Doxyfile | 120 +- Libraries/FCL/doc/Makefile | 4 +- Libraries/FCL/doc/html/_formulas.tex | 2 +- .../FCL/doc/html/_p_c_i_g_u_i_d_a_n_c_e.html | 16 +- .../FCL/doc/html/_r_e_f_e_r_e_n_c_e_s.html | 10 +- .../doc/html/_r_e_l_e_a_s_e__n_o_t_e_s.html | 10 +- Libraries/FCL/doc/html/annotated.html | 10 +- Libraries/FCL/doc/html/classes.html | 10 +- .../dir_68267d1309a1af8e8297ef4c3efbcdba.html | 10 +- .../dir_9a29ba0da82fedb5b32f280ade68783f.html | 10 +- .../dir_b0856f6b0d80ccb263b2f415c91f9e17.html | 10 +- .../dir_b70bfd746afac09928c9c01feb72ccc3.html | 10 +- .../dir_d44c64559bbebec7f509842c48db8b23.html | 10 +- Libraries/FCL/doc/html/doxygen.css | 926 +++--- Libraries/FCL/doc/html/dynsections.js | 14 +- Libraries/FCL/doc/html/files.html | 10 +- Libraries/FCL/doc/html/functions.html | 10 +- Libraries/FCL/doc/html/functions_vars.html | 10 +- Libraries/FCL/doc/html/globals.html | 10 +- Libraries/FCL/doc/html/globals_defs.html | 10 +- Libraries/FCL/doc/html/globals_func.html | 10 +- Libraries/FCL/doc/html/globals_type.html | 10 +- .../html/group___u_c_l___d_e_f_i_n_e_s.html | 10 +- ...group___u_c_l___d_e_f_i_n_i_t_i_o_n_s.html | 10 +- .../doc/html/group___u_c_l___r_e_t_u_r_n.html | 10 +- .../doc/html/group___u_c_l___s_i_a256.html | 16 +- .../doc/html/group___u_c_l___t_y_p_e_s.html | 12 +- Libraries/FCL/doc/html/group__appbx.html | 10 +- Libraries/FCL/doc/html/group__hypervisor.html | 10 +- Libraries/FCL/doc/html/group__os.html | 10 +- Libraries/FCL/doc/html/group__pcibx.html | 10 +- .../FCL/doc/html/group__pcibx___m_s_r.html | 10 +- .../FCL/doc/html/group__pcibx___p_i_n.html | 10 +- Libraries/FCL/doc/html/group__pcibx__sc.html | 10 +- Libraries/FCL/doc/html/group__ssbx.html | 10 +- .../FCL/doc/html/group__ssbx___crypto.html | 10 +- Libraries/FCL/doc/html/group__ssbx___i_o.html | 10 +- .../html/group__ssbx___key_management.html | 10 +- .../FCL/doc/html/group__ssbx___main.html | 10 +- Libraries/FCL/doc/html/group__ssbx___mem.html | 10 +- Libraries/FCL/doc/html/index.html | 14 +- Libraries/FCL/doc/html/jquery.js | 22 +- Libraries/FCL/doc/html/menu.js | 10 +- Libraries/FCL/doc/html/menudata.js | 32 +- Libraries/FCL/doc/html/modules.html | 10 +- Libraries/FCL/doc/html/navtree.css | 4 +- Libraries/FCL/doc/html/navtree.js | 116 +- Libraries/FCL/doc/html/navtreeindex0.js | 496 +-- Libraries/FCL/doc/html/pages.html | 10 +- Libraries/FCL/doc/html/resize.js | 4 +- Libraries/FCL/doc/html/search/all_0.js | 10 +- Libraries/FCL/doc/html/search/all_1.js | 10 +- Libraries/FCL/doc/html/search/all_10.js | 4 +- Libraries/FCL/doc/html/search/all_11.js | 2 +- Libraries/FCL/doc/html/search/all_12.js | 4 +- Libraries/FCL/doc/html/search/all_13.js | 2 +- Libraries/FCL/doc/html/search/all_2.js | 10 +- Libraries/FCL/doc/html/search/all_3.js | 8 +- Libraries/FCL/doc/html/search/all_4.js | 6 +- Libraries/FCL/doc/html/search/all_5.js | 12 +- Libraries/FCL/doc/html/search/all_6.js | 4 +- Libraries/FCL/doc/html/search/all_7.js | 2 +- Libraries/FCL/doc/html/search/all_8.js | 4 +- Libraries/FCL/doc/html/search/all_9.js | 2 +- Libraries/FCL/doc/html/search/all_a.js | 2 +- Libraries/FCL/doc/html/search/all_b.js | 8 +- Libraries/FCL/doc/html/search/all_c.js | 6 +- Libraries/FCL/doc/html/search/all_d.js | 30 +- Libraries/FCL/doc/html/search/all_e.js | 250 +- Libraries/FCL/doc/html/search/all_f.js | 4 +- Libraries/FCL/doc/html/search/classes_0.js | 10 +- Libraries/FCL/doc/html/search/classes_1.js | 6 +- Libraries/FCL/doc/html/search/files_0.js | 2 +- Libraries/FCL/doc/html/search/functions_0.js | 6 +- Libraries/FCL/doc/html/search/groups_0.js | 8 +- Libraries/FCL/doc/html/search/groups_1.js | 6 +- Libraries/FCL/doc/html/search/groups_2.js | 2 +- Libraries/FCL/doc/html/search/groups_3.js | 10 +- Libraries/FCL/doc/html/search/groups_4.js | 2 +- Libraries/FCL/doc/html/search/groups_5.js | 2 +- Libraries/FCL/doc/html/search/groups_6.js | 2 +- Libraries/FCL/doc/html/search/groups_7.js | 4 +- Libraries/FCL/doc/html/search/groups_8.js | 2 +- Libraries/FCL/doc/html/search/groups_9.js | 4 +- Libraries/FCL/doc/html/search/groups_a.js | 4 +- Libraries/FCL/doc/html/search/groups_b.js | 2 +- Libraries/FCL/doc/html/search/groups_c.js | 2 +- Libraries/FCL/doc/html/search/pages_0.js | 4 +- Libraries/FCL/doc/html/search/pages_1.js | 2 +- Libraries/FCL/doc/html/search/search.css | 12 +- Libraries/FCL/doc/html/search/search.js | 56 +- Libraries/FCL/doc/html/search/typedefs_0.js | 2 +- Libraries/FCL/doc/html/search/variables_0.js | 2 +- Libraries/FCL/doc/html/search/variables_1.js | 10 +- Libraries/FCL/doc/html/search/variables_2.js | 8 +- Libraries/FCL/doc/html/search/variables_3.js | 4 +- Libraries/FCL/doc/html/search/variables_4.js | 2 +- Libraries/FCL/doc/html/search/variables_5.js | 4 +- Libraries/FCL/doc/html/search/variables_6.js | 2 +- Libraries/FCL/doc/html/search/variables_7.js | 2 +- Libraries/FCL/doc/html/search/variables_8.js | 8 +- Libraries/FCL/doc/html/search/variables_9.js | 6 +- Libraries/FCL/doc/html/search/variables_a.js | 12 +- Libraries/FCL/doc/html/struct__t__curve.html | 12 +- .../html/struct__t__digit__affine__point.html | 12 +- .../doc/html/struct__t__ecdsa__signature.html | 12 +- .../doc/html/struct__t__jacobian__point.html | 12 +- .../html/struct__t__u8__affine__point.html | 12 +- Libraries/FCL/doc/html/tabs.css | 2 +- Libraries/FCL/doc/html/ucl__retdefs_8h.html | 10 +- Libraries/FCL/doc/html/ucl__sia256_8h.html | 10 +- Libraries/FCL/doc/html/ucl__types_8h.html | 12 +- Libraries/FCL/doc/latex/Makefile | 26 +- .../FCL/doc/latex/_p_c_i_g_u_i_d_a_n_c_e.tex | 12 +- .../doc/latex/_r_e_l_e_a_s_e__n_o_t_e_s.tex | 2 +- .../dir_9a29ba0da82fedb5b32f280ade68783f.tex | 22 +- Libraries/FCL/doc/latex/doxygen.sty | 42 +- .../group___u_c_l___d_e_f_i_n_i_t_i_o_n_s.tex | 4 +- .../doc/latex/group___u_c_l___r_e_t_u_r_n.tex | 180 +- .../doc/latex/group___u_c_l___s_i_a256.tex | 56 +- .../doc/latex/group___u_c_l___t_y_p_e_s.tex | 6 +- Libraries/FCL/doc/latex/group__appbx.tex | 2 +- Libraries/FCL/doc/latex/group__os.tex | 4 +- Libraries/FCL/doc/latex/group__pcibx.tex | 8 +- Libraries/FCL/doc/latex/group__ssbx.tex | 12 +- Libraries/FCL/doc/latex/index.tex | 6 +- Libraries/FCL/doc/latex/refman.tex | 24 +- Libraries/FCL/doc/latex/struct__t__curve.tex | 28 +- .../latex/struct__t__digit__affine__point.tex | 6 +- .../doc/latex/struct__t__ecdsa__signature.tex | 6 +- .../doc/latex/struct__t__jacobian__point.tex | 8 +- .../latex/struct__t__u8__affine__point.tex | 6 +- Libraries/FCL/doc/latex/ucl__retdefs_8h.tex | 88 +- Libraries/FCL/doc/latex/ucl__sia256_8h.tex | 22 +- Libraries/FCL/doc/latex/ucl__types_8h.tex | 6 +- .../output/html/_p_c_i_g_u_i_d_a_n_c_e.html | 16 +- .../doc/output/html/_r_e_f_e_r_e_n_c_e_s.html | 10 +- .../html/_r_e_l_e_a_s_e__n_o_t_e_s.html | 10 +- Libraries/FCL/doc/output/html/annotated.html | 10 +- Libraries/FCL/doc/output/html/classes.html | 10 +- .../dir_bfccd401955b95cf8c75461437045ac0.html | 10 +- Libraries/FCL/doc/output/html/doxygen.css | 876 ++--- Libraries/FCL/doc/output/html/dynsections.js | 14 +- .../FCL/doc/output/html/group__appbx.html | 10 +- .../doc/output/html/group__hypervisor.html | 18 +- Libraries/FCL/doc/output/html/group__os.html | 10 +- .../FCL/doc/output/html/group__pcibx.html | 10 +- .../doc/output/html/group__pcibx___m_s_r.html | 10 +- .../doc/output/html/group__pcibx___p_i_n.html | 10 +- .../FCL/doc/output/html/group__pcibx__sc.html | 10 +- .../FCL/doc/output/html/group__smbx.html | 10 +- .../FCL/doc/output/html/group__ssbx.html | 10 +- .../doc/output/html/group__ssbx___crypto.html | 10 +- .../doc/output/html/group__ssbx___i_o.html | 12 +- .../html/group__ssbx___key_management.html | 10 +- .../doc/output/html/group__ssbx___main.html | 10 +- .../doc/output/html/group__ssbx___mem.html | 10 +- Libraries/FCL/doc/output/html/index.html | 12 +- Libraries/FCL/doc/output/html/jquery.js | 22 +- Libraries/FCL/doc/output/html/menu.js | 10 +- Libraries/FCL/doc/output/html/menudata.js | 6 +- Libraries/FCL/doc/output/html/modules.html | 10 +- Libraries/FCL/doc/output/html/navtree.css | 4 +- Libraries/FCL/doc/output/html/navtree.js | 116 +- .../FCL/doc/output/html/navtreeindex0.js | 236 +- Libraries/FCL/doc/output/html/pages.html | 10 +- Libraries/FCL/doc/output/html/resize.js | 4 +- Libraries/FCL/doc/output/html/search/all_0.js | 2 +- Libraries/FCL/doc/output/html/search/all_1.js | 2 +- .../FCL/doc/output/html/search/all_10.js | 20 +- Libraries/FCL/doc/output/html/search/all_2.js | 6 +- Libraries/FCL/doc/output/html/search/all_3.js | 2 +- Libraries/FCL/doc/output/html/search/all_4.js | 2 +- Libraries/FCL/doc/output/html/search/all_5.js | 2 +- Libraries/FCL/doc/output/html/search/all_6.js | 2 +- Libraries/FCL/doc/output/html/search/all_7.js | 2 +- Libraries/FCL/doc/output/html/search/all_8.js | 6 +- Libraries/FCL/doc/output/html/search/all_9.js | 2 +- Libraries/FCL/doc/output/html/search/all_a.js | 20 +- Libraries/FCL/doc/output/html/search/all_b.js | 6 +- Libraries/FCL/doc/output/html/search/all_c.js | 26 +- Libraries/FCL/doc/output/html/search/all_d.js | 4 +- Libraries/FCL/doc/output/html/search/all_e.js | 18 +- Libraries/FCL/doc/output/html/search/all_f.js | 20 +- .../FCL/doc/output/html/search/classes_0.js | 2 +- .../FCL/doc/output/html/search/classes_1.js | 2 +- .../FCL/doc/output/html/search/classes_2.js | 2 +- .../FCL/doc/output/html/search/classes_3.js | 2 +- .../FCL/doc/output/html/search/classes_4.js | 4 +- .../FCL/doc/output/html/search/classes_5.js | 2 +- .../FCL/doc/output/html/search/classes_6.js | 2 +- .../FCL/doc/output/html/search/functions_0.js | 2 +- .../FCL/doc/output/html/search/functions_1.js | 16 +- .../FCL/doc/output/html/search/functions_2.js | 2 +- .../FCL/doc/output/html/search/functions_3.js | 22 +- .../FCL/doc/output/html/search/functions_4.js | 6 +- .../FCL/doc/output/html/search/functions_5.js | 20 +- .../FCL/doc/output/html/search/functions_6.js | 20 +- .../FCL/doc/output/html/search/groups_0.js | 2 +- .../FCL/doc/output/html/search/groups_1.js | 2 +- .../FCL/doc/output/html/search/groups_2.js | 2 +- .../FCL/doc/output/html/search/groups_3.js | 2 +- .../FCL/doc/output/html/search/groups_4.js | 2 +- .../FCL/doc/output/html/search/groups_5.js | 2 +- .../FCL/doc/output/html/search/groups_6.js | 4 +- .../FCL/doc/output/html/search/groups_7.js | 2 +- .../FCL/doc/output/html/search/groups_8.js | 4 +- .../FCL/doc/output/html/search/groups_9.js | 2 +- .../FCL/doc/output/html/search/groups_a.js | 2 +- .../FCL/doc/output/html/search/pages_0.js | 4 +- .../FCL/doc/output/html/search/pages_1.js | 2 +- .../FCL/doc/output/html/search/search.css | 12 +- .../FCL/doc/output/html/search/search.js | 56 +- .../FCL/doc/output/html/search/typedefs_0.js | 2 +- .../FCL/doc/output/html/struct__msg__lcd.html | 10 +- .../struct_certification_authorities.html | 10 +- .../struct_m_e_m_s_e_c___h_a_n_d_l_e.html | 10 +- .../html/struct_t_r_a_c_e__log__display.html | 10 +- .../html/struct_tracehandlers_config.html | 10 +- .../doc/output/html/structbox__context.html | 10 +- Libraries/FCL/doc/output/html/structdata.html | 10 +- Libraries/FCL/doc/output/html/tabs.css | 2 +- Libraries/FCL/doc/output/latex/Makefile | 26 +- .../latex/_r_e_l_e_a_s_e__n_o_t_e_s.tex | 2 +- Libraries/FCL/doc/output/latex/doxygen.sty | 42 +- .../FCL/doc/output/latex/group__appbx.aux | 2 +- .../FCL/doc/output/latex/group__appbx.tex | 2 +- .../doc/output/latex/group__hypervisor.aux | 118 +- .../doc/output/latex/group__hypervisor.tex | 182 +- Libraries/FCL/doc/output/latex/group__os.aux | 2 +- Libraries/FCL/doc/output/latex/group__os.tex | 4 +- .../FCL/doc/output/latex/group__pcibx.aux | 2 +- .../FCL/doc/output/latex/group__pcibx.tex | 8 +- .../doc/output/latex/group__pcibx___m_s_r.aux | 2 +- .../FCL/doc/output/latex/group__pcibx__sc.aux | 26 +- .../FCL/doc/output/latex/group__pcibx__sc.tex | 38 +- .../FCL/doc/output/latex/group__smbx.aux | 2 +- .../FCL/doc/output/latex/group__smbx.tex | 2 +- .../FCL/doc/output/latex/group__ssbx.aux | 2 +- .../FCL/doc/output/latex/group__ssbx.tex | 12 +- .../doc/output/latex/group__ssbx___crypto.aux | 2 +- .../doc/output/latex/group__ssbx___i_o.aux | 26 +- .../doc/output/latex/group__ssbx___i_o.tex | 40 +- .../latex/group__ssbx___key_management.aux | 2 +- .../doc/output/latex/group__ssbx___main.aux | 14 +- .../doc/output/latex/group__ssbx___main.tex | 28 +- .../doc/output/latex/group__ssbx___mem.aux | 24 +- .../doc/output/latex/group__ssbx___mem.tex | 40 +- Libraries/FCL/doc/output/latex/refman.ind | 52 +- Libraries/FCL/doc/output/latex/refman.out | 14 +- Libraries/FCL/doc/output/latex/refman.tex | 24 +- .../FCL/doc/output/latex/struct__msg__lcd.tex | 24 +- .../struct_certification_authorities.tex | 54 +- .../struct_m_e_m_s_e_c___h_a_n_d_l_e.tex | 12 +- .../latex/struct_t_r_a_c_e__log__display.tex | 12 +- .../latex/struct_tracehandlers_config.tex | 8 +- Libraries/FCL/doc/output/latex/structdata.tex | 12 +- Libraries/FCL/doc/res/doxygen.sty | 42 +- Libraries/FCL/doc/res/doxygen_old.sty | 24 +- Libraries/FCL/doc/res/header.tex | 24 +- Libraries/FCL/doc/res/layout.xml | 4 +- Libraries/FCL/doc/res/main.dox | 4 +- Libraries/FCL/fcl.mk | 10 +- Libraries/FCL/fcl_files.mk | 6 +- Libraries/FCL/include/hash/sha256.h | 46 +- .../include/ucl/bignum_ecdsa_generic_api.h | 100 +- Libraries/FCL/include/ucl/defs.h | 42 +- Libraries/FCL/include/ucl/ecdsa_generic_api.h | 201 +- Libraries/FCL/include/ucl/info.h | 42 +- Libraries/FCL/include/ucl/types.h | 42 +- Libraries/FCL/include/ucl/ucl.h | 42 +- Libraries/FCL/include/ucl/ucl_aes.h | 42 +- Libraries/FCL/include/ucl/ucl_aes_cbc.h | 54 +- Libraries/FCL/include/ucl/ucl_aes_cbc_mac.h | 52 +- Libraries/FCL/include/ucl/ucl_aes_ecb.h | 50 +- Libraries/FCL/include/ucl/ucl_config.h | 42 +- Libraries/FCL/include/ucl/ucl_defs.h | 54 +- Libraries/FCL/include/ucl/ucl_hash.h | 42 +- Libraries/FCL/include/ucl/ucl_retdefs.h | 42 +- Libraries/FCL/include/ucl/ucl_rng.h | 46 +- Libraries/FCL/include/ucl/ucl_sha256.h | 50 +- Libraries/FCL/include/ucl/ucl_sha3.h | 49 +- Libraries/FCL/include/ucl/ucl_sha384.h | 51 +- Libraries/FCL/include/ucl/ucl_sha512.h | 53 +- Libraries/FCL/include/ucl/ucl_sia256.h | 17 +- Libraries/FCL/include/ucl/ucl_sys.h | 44 +- Libraries/FCL/include/ucl/ucl_types.h | 43 +- Libraries/FCL/libfcl.mk | 4 +- Libraries/FCL/readme.txt | 4 +- Libraries/FCL/src/aes.c | 230 +- Libraries/FCL/src/ecdsa_generic_api.c | 380 +-- Libraries/FCL/src/ecdsatest.c | 190 +- Libraries/FCL/src/include/aestest.h | 44 +- Libraries/FCL/src/include/ecdsatest.h | 44 +- Libraries/FCL/src/include/shatest.h | 44 +- .../FCL/src/include/ucl_testing_config.h | 44 +- Libraries/FCL/src/main.c | 46 +- Libraries/FCL/src/sha512_stone.c | 102 +- Libraries/FCL/src/shatest.c | 442 +-- Libraries/FCL/src/ucl_aes_cbc.c | 74 +- Libraries/FCL/src/ucl_aes_cbc_mac.c | 46 +- Libraries/FCL/src/ucl_rng.c | 4 +- Libraries/FCL/src/ucl_sha256.c | 96 +- Libraries/FCL/src/ucl_sha3.c | 8 +- Libraries/FCL/src/ucl_sha384.c | 2 +- Libraries/FCL/src/ucl_sia256.c | 206 +- 314 files changed, 7955 insertions(+), 7602 deletions(-) diff --git a/Examples/MAX32660/SecureROM_BL_Host/bootloader/bootloader.h b/Examples/MAX32660/SecureROM_BL_Host/bootloader/bootloader.h index b80cffc0e1b..64a640862bc 100644 --- a/Examples/MAX32660/SecureROM_BL_Host/bootloader/bootloader.h +++ b/Examples/MAX32660/SecureROM_BL_Host/bootloader/bootloader.h @@ -1,49 +1,49 @@ /****************************************************************************** * - * Copyright 2023 Analog Devices, Inc. + * Copyright 2023 Analog Devices,Inc. * - * Licensed under the Apache License, Version 2.0 (the "License"); + * Licensed under the Apache License,Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software + * Unless required by applicable law or agreed to in writing,software * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** * - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * Copyright (C) 2023 Maxim Integrated Products,Inc.,All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a + * Permission is hereby granted,free of charge,to any person obtaining a * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: + * to deal in the Software without restriction,including without limitation + * the rights to use,copy,modify,merge,publish,distribute,sublicense, + * and/or sell copies of the Software,and to permit persons to whom the + * Software is furnished to do so,subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * THE SOFTWARE IS PROVIDED "AS IS",WITHOUT WARRANTY OF ANY KIND,EXPRESS + * OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM,DAMAGES + * OR OTHER LIABILITY,WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE, + * ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. + * Except as contained in this notice,the name of Maxim Integrated + * Products,Inc. shall not be used except as stated in the Maxim Integrated + * Products,Inc. Branding Policy. * * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all + * of trade secrets,proprietary technology,copyrights,patents, + * trademarks,maskwork rights,or any other form of intellectual + * property whatsoever. Maxim Integrated Products,Inc. retains all * ownership rights. * ******************************************************************************/ @@ -75,20 +75,20 @@ #define PACKET_WAIT_WRITE_MEM_RSP 5000 // ms /******************************* Type Definitions ****************************/ -typedef int (*comm_read_t)(unsigned char *dst, unsigned int len, unsigned int to); -typedef int (*comm_write_t)(const unsigned char *src, unsigned int len, unsigned int to); +typedef int (*comm_read_t)(unsigned char *dst,unsigned int len,unsigned int to); +typedef int (*comm_write_t)(const unsigned char *src,unsigned int len,unsigned int to); typedef struct { comm_read_t read; comm_write_t write; - void (*gpio_set)(unsigned int idx, int state); + void (*gpio_set)(unsigned int idx,int state); void (*delay_ms)(unsigned int ms); - int (*printf)(const char *pcFmt, ...); + int (*printf)(const char *pcFmt,...); } bl_conf_struct_t; typedef struct { - unsigned char type; // 1:hello_reply, 2:erase/del_mem - unsigned char is_tx; // 1: From host to target, 0: From target to host + unsigned char type; // 1:hello_reply,2:erase/del_mem + unsigned char is_tx; // 1: From host to target,0: From target to host uint16_t len; const unsigned char *data; } scp_packet_struct; diff --git a/Examples/MAX32660/SecureROM_BL_Host/test_images/MAX32520-KIT/blinkled_P1_6.c b/Examples/MAX32660/SecureROM_BL_Host/test_images/MAX32520-KIT/blinkled_P1_6.c index bfa19b1f0b8..764d1f940b5 100644 --- a/Examples/MAX32660/SecureROM_BL_Host/test_images/MAX32520-KIT/blinkled_P1_6.c +++ b/Examples/MAX32660/SecureROM_BL_Host/test_images/MAX32520-KIT/blinkled_P1_6.c @@ -1,1436 +1,1436 @@ /****************************************************************************** * - * Copyright 2023 Analog Devices, Inc. + * Copyright 2023 Analog Devices,Inc. * - * Licensed under the Apache License, Version 2.0 (the "License"); + * Licensed under the Apache License,Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software + * Unless required by applicable law or agreed to in writing,software * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** * - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * Copyright (C) 2023 Maxim Integrated Products,Inc.,All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a + * Permission is hereby granted,free of charge,to any person obtaining a * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: + * to deal in the Software without restriction,including without limitation + * the rights to use,copy,modify,merge,publish,distribute,sublicense, + * and/or sell copies of the Software,and to permit persons to whom the + * Software is furnished to do so,subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * THE SOFTWARE IS PROVIDED "AS IS",WITHOUT WARRANTY OF ANY KIND,EXPRESS + * OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM,DAMAGES + * OR OTHER LIABILITY,WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE, + * ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. + * Except as contained in this notice,the name of Maxim Integrated + * Products,Inc. shall not be used except as stated in the Maxim Integrated + * Products,Inc. Branding Policy. * * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all + * of trade secrets,proprietary technology,copyrights,patents, + * trademarks,maskwork rights,or any other form of intellectual + * property whatsoever. Maxim Integrated Products,Inc. retains all * ownership rights. * ******************************************************************************/ #include -static const unsigned char scp_0000001_connection_request[] = { 0xbe, 0xef, 0xed, 0x01, - 0x00, 0x00, 0x90, 0xf3 }; +static const unsigned char scp_0000001_connection_request[] = { 0xbe,0xef,0xed,0x01, + 0x00,0x00,0x90,0xf3 }; -static const unsigned char scp_0000002_connection_reply[] = { 0xbe, 0xef, 0xed, 0x02, - 0x00, 0x00, 0x90, 0x01 }; +static const unsigned char scp_0000002_connection_reply[] = { 0xbe,0xef,0xed,0x02, + 0x00,0x00,0x90,0x01 }; -static const unsigned char scp_0000003_ack[] = { 0xbe, 0xef, 0xed, 0x06, 0x00, 0x00, 0x90, 0xc7 }; +static const unsigned char scp_0000003_ack[] = { 0xbe,0xef,0xed,0x06,0x00,0x00,0x90,0xc7 }; -static const unsigned char scp_0000004_hello_request[] = { 0xbe, 0xef, 0xed, 0x05, 0x00, 0x0e, 0x90, - 0xc3, 0x10, 0x00, 0x00, 0x0a, 0x48, 0x45, - 0x4c, 0x4c, 0x4f, 0x20, 0x42, 0x4c, 0x03, - 0x02, 0x36, 0x92, 0x07, 0x31 }; +static const unsigned char scp_0000004_hello_request[] = { 0xbe,0xef,0xed,0x05,0x00,0x0e,0x90, + 0xc3,0x10,0x00,0x00,0x0a,0x48,0x45, + 0x4c,0x4c,0x4f,0x20,0x42,0x4c,0x03, + 0x02,0x36,0x92,0x07,0x31 }; -static const unsigned char scp_0000005_ack[] = { 0xbe, 0xef, 0xed, 0x06, 0x00, 0x00, 0x90, 0xc7 }; +static const unsigned char scp_0000005_ack[] = { 0xbe,0xef,0xed,0x06,0x00,0x00,0x90,0xc7 }; static const unsigned char scp_0000006_hello_reply[] = { - 0xbe, 0xef, 0xed, 0x05, 0x00, 0x36, 0x91, 0x62, 0x20, 0x00, 0x00, 0x32, 0x48, 0x45, - 0x4c, 0x4c, 0x4f, 0x20, 0x48, 0x4f, 0x53, 0x54, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xc0, 0x04, 0x00, 0x43, 0x47, 0x1f, 0xd2, 0x03, 0x08, 0x0c, 0x07, 0x00, 0x00, - 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x3e, 0xd2, 0x87 + 0xbe,0xef,0xed,0x05,0x00,0x36,0x91,0x62,0x20,0x00,0x00,0x32,0x48,0x45, + 0x4c,0x4c,0x4f,0x20,0x48,0x4f,0x53,0x54,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0xc0,0x04,0x00,0x43,0x47,0x1f,0xd2,0x03,0x08,0x0c,0x07,0x00,0x00, + 0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0xa7,0x3e,0xd2,0x87 }; -static const unsigned char scp_0000007_ack[] = { 0xbe, 0xef, 0xed, 0x06, 0x00, 0x00, 0x91, 0xa3 }; +static const unsigned char scp_0000007_ack[] = { 0xbe,0xef,0xed,0x06,0x00,0x00,0x91,0xa3 }; static const unsigned char scp_0000008_del_mem[] = { - 0xbe, 0xef, 0xed, 0x05, 0x00, 0x4e, 0x92, 0x64, 0x5a, 0x00, 0x00, 0x0a, 0x44, 0x01, 0x10, - 0x00, 0xc0, 0x00, 0x00, 0x00, 0x84, 0x00, 0x5b, 0x5c, 0x55, 0x3b, 0x64, 0x05, 0xa3, 0xbb, - 0x43, 0x2d, 0x76, 0x56, 0x6e, 0x9e, 0x48, 0x07, 0x98, 0xb2, 0x7d, 0xcd, 0xa0, 0xd6, 0x9a, - 0xf2, 0x2c, 0xc2, 0x30, 0xdf, 0x89, 0xcf, 0x54, 0x83, 0x5c, 0x3a, 0xdf, 0x7b, 0x2e, 0x7e, - 0x2a, 0xf2, 0xf7, 0x73, 0x85, 0x44, 0x0c, 0xcd, 0x9e, 0x85, 0x83, 0xee, 0x2e, 0xf8, 0xc9, - 0x11, 0x16, 0xb9, 0x3c, 0x88, 0x73, 0x94, 0x9a, 0xb7, 0xb5, 0xd6, 0x4e, 0x59, 0xe5, 0x4e + 0xbe,0xef,0xed,0x05,0x00,0x4e,0x92,0x64,0x5a,0x00,0x00,0x0a,0x44,0x01,0x10, + 0x00,0xc0,0x00,0x00,0x00,0x84,0x00,0x5b,0x5c,0x55,0x3b,0x64,0x05,0xa3,0xbb, + 0x43,0x2d,0x76,0x56,0x6e,0x9e,0x48,0x07,0x98,0xb2,0x7d,0xcd,0xa0,0xd6,0x9a, + 0xf2,0x2c,0xc2,0x30,0xdf,0x89,0xcf,0x54,0x83,0x5c,0x3a,0xdf,0x7b,0x2e,0x7e, + 0x2a,0xf2,0xf7,0x73,0x85,0x44,0x0c,0xcd,0x9e,0x85,0x83,0xee,0x2e,0xf8,0xc9, + 0x11,0x16,0xb9,0x3c,0x88,0x73,0x94,0x9a,0xb7,0xb5,0xd6,0x4e,0x59,0xe5,0x4e }; -static const unsigned char scp_0000009_ack[] = { 0xbe, 0xef, 0xed, 0x06, 0x00, 0x00, 0x92, 0x40 }; +static const unsigned char scp_0000009_ack[] = { 0xbe,0xef,0xed,0x06,0x00,0x00,0x92,0x40 }; -static const unsigned char scp_0000010_del_mem_response[] = { 0xbe, 0xef, 0xed, 0x05, 0x00, - 0x08, 0x93, 0xbd, 0x5a, 0x00, - 0x00, 0x04, 0x00, 0x00, 0x00, - 0x00, 0xfc, 0x66, 0x46, 0x24 }; +static const unsigned char scp_0000010_del_mem_response[] = { 0xbe,0xef,0xed,0x05,0x00, + 0x08,0x93,0xbd,0x5a,0x00, + 0x00,0x04,0x00,0x00,0x00, + 0x00,0xfc,0x66,0x46,0x24 }; -static const unsigned char scp_0000011_ack[] = { 0xbe, 0xef, 0xed, 0x06, 0x00, 0x00, 0x93, 0x02 }; +static const unsigned char scp_0000011_ack[] = { 0xbe,0xef,0xed,0x06,0x00,0x00,0x93,0x02 }; static const unsigned char scp_0000012_write_mem[] = { - 0xbe, 0xef, 0xed, 0x05, 0x20, 0x2e, 0x94, 0x68, 0x5a, 0x01, 0x1f, 0xea, 0x24, 0x02, 0x10, 0x00, - 0xc0, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x48, 0x49, 0x53, 0x57, 0x45, 0x44, 0x47, 0x44, 0x01, 0x00, - 0x00, 0x00, 0x10, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x83, 0xa0, 0x10, 0x00, 0xc5, 0x54, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x20, 0x02, 0x20, 0x55, 0xc5, 0x00, 0x10, 0xa5, 0xc3, - 0x00, 0x10, 0x93, 0xc5, 0x00, 0x10, 0x95, 0xc5, 0x00, 0x10, 0x97, 0xc5, 0x00, 0x10, 0x99, 0xc5, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x9b, 0xc5, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0xc5, - 0x00, 0x10, 0x89, 0xc7, 0x00, 0x10, 0xa1, 0xc5, 0x00, 0x10, 0xa3, 0xc5, 0x00, 0x10, 0xa5, 0xc5, - 0x00, 0x10, 0xa7, 0xc5, 0x00, 0x10, 0xa9, 0xc5, 0x00, 0x10, 0xab, 0xc5, 0x00, 0x10, 0xad, 0xc5, - 0x00, 0x10, 0xaf, 0xc5, 0x00, 0x10, 0xb1, 0xc5, 0x00, 0x10, 0xb3, 0xc5, 0x00, 0x10, 0xb5, 0xc5, - 0x00, 0x10, 0xb7, 0xc5, 0x00, 0x10, 0xb9, 0xc5, 0x00, 0x10, 0xbb, 0xc5, 0x00, 0x10, 0xbd, 0xc5, - 0x00, 0x10, 0xbf, 0xc5, 0x00, 0x10, 0xc1, 0xc5, 0x00, 0x10, 0xc3, 0xc5, 0x00, 0x10, 0xc5, 0xc5, - 0x00, 0x10, 0xc7, 0xc5, 0x00, 0x10, 0xc9, 0xc5, 0x00, 0x10, 0xcb, 0xc5, 0x00, 0x10, 0xcd, 0xc5, - 0x00, 0x10, 0xcf, 0xc5, 0x00, 0x10, 0x49, 0xc5, 0x00, 0x10, 0x4f, 0xc5, 0x00, 0x10, 0xd5, 0xc5, - 0x00, 0x10, 0xd7, 0xc5, 0x00, 0x10, 0xd9, 0xc5, 0x00, 0x10, 0xdb, 0xc5, 0x00, 0x10, 0xdd, 0xc5, - 0x00, 0x10, 0xdf, 0xc5, 0x00, 0x10, 0xe1, 0xc5, 0x00, 0x10, 0xe3, 0xc5, 0x00, 0x10, 0xe5, 0xc5, - 0x00, 0x10, 0xe7, 0xc5, 0x00, 0x10, 0xe9, 0xc5, 0x00, 0x10, 0xeb, 0xc5, 0x00, 0x10, 0xed, 0xc5, - 0x00, 0x10, 0xef, 0xc5, 0x00, 0x10, 0xf1, 0xc5, 0x00, 0x10, 0xf3, 0xc5, 0x00, 0x10, 0xf5, 0xc5, - 0x00, 0x10, 0xf7, 0xc5, 0x00, 0x10, 0xf9, 0xc5, 0x00, 0x10, 0xfb, 0xc5, 0x00, 0x10, 0xfd, 0xc5, - 0x00, 0x10, 0xff, 0xc5, 0x00, 0x10, 0x01, 0xc6, 0x00, 0x10, 0x03, 0xc6, 0x00, 0x10, 0x05, 0xc6, - 0x00, 0x10, 0x07, 0xc6, 0x00, 0x10, 0x09, 0xc6, 0x00, 0x10, 0x0b, 0xc6, 0x00, 0x10, 0x0d, 0xc6, - 0x00, 0x10, 0x0f, 0xc6, 0x00, 0x10, 0x11, 0xc6, 0x00, 0x10, 0x13, 0xc6, 0x00, 0x10, 0x15, 0xc6, - 0x00, 0x10, 0x17, 0xc6, 0x00, 0x10, 0x19, 0xc6, 0x00, 0x10, 0x1b, 0xc6, 0x00, 0x10, 0x1d, 0xc6, - 0x00, 0x10, 0x1f, 0xc6, 0x00, 0x10, 0x21, 0xc6, 0x00, 0x10, 0x23, 0xc6, 0x00, 0x10, 0x25, 0xc6, - 0x00, 0x10, 0x27, 0xc6, 0x00, 0x10, 0x29, 0xc6, 0x00, 0x10, 0x2b, 0xc6, 0x00, 0x10, 0x2d, 0xc6, - 0x00, 0x10, 0x2f, 0xc6, 0x00, 0x10, 0x31, 0xc6, 0x00, 0x10, 0x33, 0xc6, 0x00, 0x10, 0x35, 0xc6, - 0x00, 0x10, 0x37, 0xc6, 0x00, 0x10, 0x39, 0xc6, 0x00, 0x10, 0x3b, 0xc6, 0x00, 0x10, 0x3d, 0xc6, - 0x00, 0x10, 0x3f, 0xc6, 0x00, 0x10, 0x41, 0xc6, 0x00, 0x10, 0x43, 0xc6, 0x00, 0x10, 0x45, 0xc6, - 0x00, 0x10, 0x47, 0xc6, 0x00, 0x10, 0x49, 0xc6, 0x00, 0x10, 0x4b, 0xc6, 0x00, 0x10, 0x4d, 0xc6, - 0x00, 0x10, 0x4f, 0xc6, 0x00, 0x10, 0x51, 0xc6, 0x00, 0x10, 0x53, 0xc6, 0x00, 0x10, 0x55, 0xc6, - 0x00, 0x10, 0x57, 0xc6, 0x00, 0x10, 0x59, 0xc6, 0x00, 0x10, 0x5b, 0xc6, 0x00, 0x10, 0x5d, 0xc6, - 0x00, 0x10, 0x5f, 0xc6, 0x00, 0x10, 0x61, 0xc6, 0x00, 0x10, 0x10, 0xb5, 0x05, 0x4c, 0x23, 0x78, - 0x33, 0xb9, 0x04, 0x4b, 0x13, 0xb1, 0x04, 0x48, 0xaf, 0xf3, 0x00, 0x80, 0x01, 0x23, 0x23, 0x70, - 0x10, 0xbd, 0xc4, 0x09, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x39, 0x01, 0x10, 0x08, 0xb5, - 0x03, 0x4b, 0x1b, 0xb1, 0x03, 0x49, 0x03, 0x48, 0xaf, 0xf3, 0x00, 0x80, 0x08, 0xbd, 0x00, 0x00, - 0x00, 0x00, 0xc8, 0x09, 0x00, 0x20, 0xe0, 0x39, 0x01, 0x10, 0xf8, 0xb5, 0x0e, 0x48, 0x0e, 0x4d, - 0x0f, 0x4f, 0x01, 0xf0, 0x44, 0xfb, 0x0e, 0x48, 0x01, 0xf0, 0x41, 0xfb, 0x00, 0x24, 0x00, 0x20, - 0x00, 0xf0, 0x9d, 0xf8, 0x28, 0x46, 0x00, 0xf0, 0x5e, 0xfb, 0x00, 0x20, 0x00, 0xf0, 0xb5, 0xf8, - 0x28, 0x46, 0x00, 0xf0, 0x58, 0xfb, 0x66, 0x1c, 0x21, 0x46, 0x38, 0x46, 0x01, 0xf0, 0xcd, 0xfa, - 0x34, 0x46, 0xec, 0xe7, 0x00, 0xbf, 0x00, 0x36, 0x01, 0x10, 0x20, 0xa1, 0x07, 0x00, 0x47, 0x36, - 0x01, 0x10, 0x24, 0x36, 0x01, 0x10, 0x08, 0xb5, 0x03, 0x46, 0x01, 0x48, 0x01, 0xf0, 0xbd, 0xfa, - 0xfe, 0xe7, 0x53, 0x36, 0x01, 0x10, 0x02, 0x4b, 0x4f, 0xf4, 0xe1, 0x31, 0x18, 0x68, 0x00, 0xf0, - 0x46, 0xbe, 0x00, 0x00, 0x00, 0x20, 0x08, 0xb5, 0xff, 0xf7, 0xf5, 0xff, 0x00, 0x28, 0x04, 0xda, - 0x4f, 0x22, 0x07, 0x49, 0x08, 0x48, 0xff, 0xf7, 0xe6, 0xff, 0x00, 0xf0, 0xc4, 0xf8, 0x08, 0xb1, - 0x54, 0x22, 0xf6, 0xe7, 0x00, 0xf0, 0x9f, 0xf8, 0x08, 0xb1, 0x59, 0x22, 0xf1, 0xe7, 0x08, 0xbd, - 0x00, 0xbf, 0x6c, 0x36, 0x01, 0x10, 0xaa, 0x36, 0x01, 0x10, 0x00, 0xbf, 0x70, 0x47, 0x4f, 0xf0, - 0xff, 0x30, 0x70, 0x47, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, - 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x2d, 0xe9, 0xf0, 0x41, 0x16, 0x46, 0x04, 0x46, 0xc0, 0xb9, - 0x10, 0x4f, 0x0d, 0x46, 0xb4, 0x42, 0xa8, 0x46, 0x10, 0xda, 0x38, 0x46, 0x00, 0xf0, 0xc3, 0xfe, - 0xc1, 0xb2, 0x29, 0x70, 0x38, 0x46, 0x00, 0xf0, 0xca, 0xfe, 0x15, 0xf8, 0x01, 0x3b, 0x0d, 0x2b, - 0x04, 0xf1, 0x01, 0x04, 0xee, 0xd1, 0x0a, 0x23, 0x88, 0xf8, 0x00, 0x30, 0x20, 0x46, 0xbd, 0xe8, - 0xf0, 0x81, 0x01, 0xf0, 0x56, 0xf9, 0x09, 0x23, 0x03, 0x60, 0x4f, 0xf0, 0xff, 0x34, 0xf5, 0xe7, - 0x00, 0xbf, 0x00, 0x00, 0x02, 0x40, 0x01, 0x38, 0x01, 0x28, 0x38, 0xb5, 0x18, 0xd9, 0x01, 0xf0, - 0x48, 0xf9, 0x09, 0x23, 0x03, 0x60, 0x4f, 0xf0, 0xff, 0x32, 0x0f, 0xe0, 0x1c, 0x78, 0x0a, 0x2c, - 0x03, 0xd1, 0x44, 0x68, 0x24, 0x06, 0xfc, 0xd4, 0x05, 0x62, 0x44, 0x68, 0x24, 0x06, 0xfc, 0xd4, - 0x13, 0xf8, 0x01, 0x4b, 0x04, 0x62, 0x5c, 0x1a, 0x94, 0x42, 0xef, 0xdb, 0x10, 0x46, 0x38, 0xbd, - 0x02, 0x48, 0x0b, 0x46, 0x0d, 0x25, 0xf6, 0xe7, 0x00, 0xbf, 0x00, 0x00, 0x02, 0x40, 0x0a, 0x4b, - 0x1b, 0x68, 0x83, 0x42, 0x10, 0xb5, 0x04, 0x46, 0x04, 0xd8, 0x08, 0x49, 0x09, 0x48, 0x3d, 0x22, - 0xff, 0xf7, 0x71, 0xff, 0x08, 0x4a, 0x0c, 0x23, 0x03, 0xfb, 0x04, 0xf0, 0x13, 0x18, 0xbd, 0xe8, - 0x10, 0x40, 0x59, 0x68, 0x10, 0x58, 0x00, 0xf0, 0x1a, 0xbc, 0xc8, 0x36, 0x01, 0x10, 0xdc, 0x36, - 0x01, 0x10, 0x1b, 0x37, 0x01, 0x10, 0xb0, 0x36, 0x01, 0x10, 0x0a, 0x4b, 0x1b, 0x68, 0x83, 0x42, - 0x10, 0xb5, 0x04, 0x46, 0x04, 0xd8, 0x08, 0x49, 0x09, 0x48, 0x4b, 0x22, 0xff, 0xf7, 0x53, 0xff, - 0x08, 0x4a, 0x0c, 0x23, 0x03, 0xfb, 0x04, 0xf0, 0x13, 0x18, 0xbd, 0xe8, 0x10, 0x40, 0x59, 0x68, - 0x10, 0x58, 0x00, 0xf0, 0xef, 0xbb, 0xc8, 0x36, 0x01, 0x10, 0xdc, 0x36, 0x01, 0x10, 0x1b, 0x37, - 0x01, 0x10, 0xb0, 0x36, 0x01, 0x10, 0xf7, 0xb5, 0x0d, 0x4b, 0x0d, 0x4e, 0x1b, 0x68, 0x01, 0x93, - 0x00, 0x24, 0x25, 0x46, 0x0c, 0x27, 0x01, 0x9b, 0xa3, 0x42, 0x02, 0xd8, 0x28, 0x46, 0x03, 0xb0, - 0xf0, 0xbd, 0x20, 0x46, 0xff, 0xf7, 0xd1, 0xff, 0x07, 0xfb, 0x04, 0x60, 0x00, 0xf0, 0xc5, 0xfb, - 0x00, 0x28, 0x18, 0xbf, 0x6f, 0xf0, 0x07, 0x05, 0x01, 0x34, 0xec, 0xe7, 0x00, 0xbf, 0xc8, 0x36, - 0x01, 0x10, 0xb0, 0x36, 0x01, 0x10, 0xf7, 0xb5, 0x0b, 0x4b, 0x0b, 0x4e, 0x1b, 0x68, 0x01, 0x93, - 0x00, 0x24, 0x25, 0x46, 0x0c, 0x27, 0x01, 0x9b, 0xa3, 0x42, 0x02, 0xd8, 0x28, 0x46, 0x03, 0xb0, - 0xf0, 0xbd, 0x07, 0xfb, 0x04, 0x60, 0x00, 0xf0, 0xa8, 0xfb, 0x00, 0x28, 0x18, 0xbf, 0x6f, 0xf0, - 0x07, 0x05, 0x01, 0x34, 0xef, 0xe7, 0xcc, 0x36, 0x01, 0x10, 0xd0, 0x36, 0x01, 0x10, 0x00, 0x20, - 0x00, 0xf0, 0xc2, 0xbb, 0x01, 0x20, 0x00, 0xf0, 0xbf, 0xbb, 0x43, 0x48, 0x85, 0x46, 0x43, 0x48, - 0x80, 0x47, 0x80, 0xb9, 0x43, 0x49, 0x43, 0x4a, 0x44, 0x4b, 0x9b, 0x1a, 0x03, 0xdd, 0x04, 0x3b, - 0xc8, 0x58, 0xd0, 0x50, 0xfb, 0xdc, 0x41, 0x49, 0x42, 0x4a, 0x00, 0x20, 0x91, 0x42, 0xbc, 0xbf, - 0x41, 0xf8, 0x04, 0x0b, 0xfa, 0xe7, 0x3f, 0x48, 0x80, 0x47, 0x3f, 0x48, 0x80, 0x47, 0x3f, 0x48, - 0x80, 0x47, 0xff, 0xf7, 0xfe, 0xff, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, - 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, - 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, - 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, - 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, - 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, - 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, - 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, - 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, - 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, - 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, - 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, - 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, - 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0x00, 0x00, 0x00, 0x20, 0x02, 0x20, 0x01, 0xc7, - 0x00, 0x10, 0xec, 0x39, 0x01, 0x10, 0x00, 0x00, 0x00, 0x20, 0xc4, 0x09, 0x00, 0x20, 0xc4, 0x09, - 0x00, 0x20, 0x4c, 0x0b, 0x00, 0x20, 0x05, 0xc7, 0x00, 0x10, 0xb9, 0xd6, 0x00, 0x10, 0x05, 0xc3, - 0x00, 0x10, 0x08, 0xb5, 0x0a, 0x4b, 0x19, 0x68, 0x02, 0x46, 0x09, 0xb9, 0x09, 0x49, 0x19, 0x60, - 0x18, 0x68, 0x08, 0x49, 0x02, 0x44, 0x8a, 0x42, 0x06, 0xd9, 0x01, 0xf0, 0x02, 0xf8, 0x0c, 0x23, - 0x03, 0x60, 0x4f, 0xf0, 0xff, 0x30, 0x08, 0xbd, 0x1a, 0x60, 0xfc, 0xe7, 0x00, 0xbf, 0xe0, 0x09, - 0x00, 0x20, 0x50, 0x0b, 0x00, 0x20, 0x00, 0x10, 0x02, 0x20, 0x4f, 0xf0, 0x80, 0x43, 0x1a, 0x46, - 0x99, 0x68, 0x01, 0xf4, 0x60, 0x61, 0xb1, 0xf5, 0xc0, 0x6f, 0x0c, 0xd0, 0xb1, 0xf5, 0x20, 0x6f, - 0x07, 0x4b, 0x08, 0xbf, 0x4f, 0xf4, 0xe1, 0x03, 0x92, 0x68, 0xc2, 0xf3, 0x82, 0x12, 0xd3, 0x40, - 0x04, 0x4a, 0x13, 0x60, 0x70, 0x47, 0x4f, 0xf4, 0xfa, 0x53, 0xf5, 0xe7, 0x00, 0xbf, 0x00, 0x0e, - 0x27, 0x07, 0x04, 0x00, 0x00, 0x20, 0x00, 0x20, 0x70, 0x47, 0x08, 0xb5, 0x1d, 0x4b, 0x1d, 0x4a, - 0x9a, 0x60, 0x62, 0xb6, 0xd3, 0xf8, 0x88, 0x20, 0x42, 0xf4, 0x70, 0x02, 0xc3, 0xf8, 0x88, 0x20, - 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0x00, 0x20, 0x00, 0xf0, 0x0a, 0xfa, 0xff, 0xf7, - 0xcc, 0xff, 0x00, 0x20, 0x00, 0xf0, 0xb9, 0xf9, 0x01, 0x20, 0x00, 0xf0, 0xb6, 0xf9, 0x12, 0x4b, - 0xd3, 0xf8, 0xc0, 0x20, 0x4f, 0xf0, 0xff, 0x32, 0xc3, 0xf8, 0xc0, 0x20, 0xd3, 0xf8, 0xb8, 0x10, - 0xc3, 0xf8, 0xb8, 0x20, 0x19, 0x6e, 0x1a, 0x66, 0x59, 0x6e, 0x00, 0x21, 0x59, 0x66, 0x03, 0xf5, - 0x80, 0x53, 0xd3, 0xf8, 0xc0, 0x00, 0xc3, 0xf8, 0xc0, 0x20, 0xd3, 0xf8, 0xb8, 0x00, 0xc3, 0xf8, - 0xb8, 0x20, 0x18, 0x6e, 0x1a, 0x66, 0x5a, 0x6e, 0x59, 0x66, 0xff, 0xf7, 0xfc, 0xfd, 0x08, 0xbd, - 0x00, 0xbf, 0x00, 0xed, 0x00, 0xe0, 0x00, 0xc1, 0x00, 0x10, 0x00, 0x80, 0x00, 0x40, 0x80, 0xb5, - 0x00, 0xaf, 0x00, 0xf0, 0x02, 0xf8, 0x00, 0xbf, 0x80, 0xbd, 0x80, 0xb5, 0x00, 0xaf, 0x0f, 0x4b, - 0x1b, 0x68, 0x03, 0xf4, 0x80, 0x33, 0x00, 0x2b, 0x16, 0xd0, 0x0d, 0x4b, 0x1b, 0x68, 0x00, 0x2b, - 0x05, 0xdd, 0x0b, 0x4b, 0x1b, 0x68, 0x01, 0x3b, 0x0a, 0x4a, 0x13, 0x60, 0x0c, 0xe0, 0x00, 0xf0, - 0xf2, 0xf8, 0x08, 0x4b, 0x1b, 0x68, 0x00, 0x2b, 0x06, 0xd0, 0x06, 0x4b, 0x1b, 0x68, 0x00, 0x20, - 0x98, 0x47, 0x04, 0x4b, 0x00, 0x22, 0x1a, 0x60, 0x00, 0xbf, 0x80, 0xbd, 0x00, 0xbf, 0x10, 0xe0, - 0x00, 0xe0, 0x08, 0x00, 0x00, 0x20, 0xec, 0x09, 0x00, 0x20, 0xb0, 0xb5, 0x86, 0xb0, 0x00, 0xaf, - 0x78, 0x60, 0x34, 0x4b, 0x9b, 0x68, 0x7b, 0x61, 0x33, 0x4b, 0x1b, 0x68, 0x23, 0xf4, 0x80, 0x33, - 0x32, 0x4a, 0x13, 0x60, 0x30, 0x4b, 0x1b, 0x68, 0x03, 0xf0, 0x01, 0x03, 0x00, 0x2b, 0x11, 0xd1, - 0x2d, 0x4b, 0x6f, 0xf0, 0x7f, 0x42, 0x5a, 0x60, 0x2b, 0x4b, 0x6f, 0xf0, 0x7f, 0x42, 0x9a, 0x60, - 0x29, 0x4b, 0x05, 0x22, 0x1a, 0x60, 0x6f, 0xf0, 0x7f, 0x43, 0x7b, 0x61, 0x4f, 0xf0, 0x80, 0x73, - 0x3b, 0x61, 0x03, 0xe0, 0x24, 0x4b, 0x5b, 0x68, 0x01, 0x33, 0x3b, 0x61, 0x7b, 0x68, 0x18, 0x46, - 0x4f, 0xf0, 0x00, 0x01, 0x22, 0x4b, 0x1b, 0x68, 0x1a, 0x46, 0x4f, 0xf0, 0x00, 0x03, 0x02, 0xfb, - 0x01, 0xf5, 0x00, 0xfb, 0x03, 0xf4, 0x2c, 0x44, 0xa0, 0xfb, 0x02, 0x01, 0x63, 0x18, 0x19, 0x46, - 0x1c, 0x4a, 0x4f, 0xf0, 0x00, 0x03, 0x06, 0xf0, 0x52, 0xfd, 0x02, 0x46, 0x0b, 0x46, 0x13, 0x46, - 0xfb, 0x60, 0xfa, 0x68, 0x3b, 0x69, 0xb2, 0xfb, 0xf3, 0xf3, 0x1a, 0x46, 0x16, 0x4b, 0x1a, 0x60, - 0xfb, 0x68, 0x3a, 0x69, 0xb3, 0xfb, 0xf2, 0xf2, 0x39, 0x69, 0x01, 0xfb, 0x02, 0xf2, 0x9b, 0x1a, - 0xbb, 0x60, 0xba, 0x68, 0x7b, 0x69, 0x9a, 0x42, 0x0c, 0xd3, 0x0e, 0x4b, 0x1b, 0x68, 0x01, 0x33, - 0x0d, 0x4a, 0x13, 0x60, 0x7a, 0x69, 0xbb, 0x68, 0xd2, 0x1a, 0x3b, 0x69, 0x13, 0x44, 0x0a, 0x4a, - 0x13, 0x60, 0x04, 0xe0, 0x7a, 0x69, 0xbb, 0x68, 0xd3, 0x1a, 0x07, 0x4a, 0x13, 0x60, 0x00, 0xbf, - 0x18, 0x37, 0xbd, 0x46, 0xb0, 0xbd, 0x10, 0xe0, 0x00, 0xe0, 0xe8, 0x09, 0x00, 0x20, 0x04, 0x00, - 0x00, 0x20, 0x40, 0x42, 0x0f, 0x00, 0x08, 0x00, 0x00, 0x20, 0xe4, 0x09, 0x00, 0x20, 0x80, 0xb5, - 0x82, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x39, 0x60, 0x10, 0x4a, 0x3b, 0x68, 0x13, 0x60, 0x0f, 0x4b, - 0x1b, 0x68, 0x00, 0x2b, 0x02, 0xdd, 0x6f, 0xf0, 0x05, 0x03, 0x12, 0xe0, 0x7b, 0x68, 0x00, 0x2b, - 0x01, 0xd1, 0x00, 0x23, 0x0d, 0xe0, 0x78, 0x68, 0xff, 0xf7, 0x6f, 0xff, 0x08, 0x4b, 0x1b, 0x68, - 0x00, 0x2b, 0x05, 0xdd, 0x07, 0x4b, 0x1b, 0x68, 0x06, 0x4a, 0x43, 0xf0, 0x02, 0x03, 0x13, 0x60, - 0x00, 0x23, 0x18, 0x46, 0x08, 0x37, 0xbd, 0x46, 0x80, 0xbd, 0xec, 0x09, 0x00, 0x20, 0x08, 0x00, - 0x00, 0x20, 0x10, 0xe0, 0x00, 0xe0, 0x80, 0xb5, 0x00, 0xaf, 0x16, 0x4b, 0x1b, 0x68, 0x00, 0x2b, - 0x0c, 0xda, 0x15, 0x4b, 0x1b, 0x68, 0x00, 0x2b, 0x06, 0xd0, 0x13, 0x4b, 0x1b, 0x68, 0x00, 0x20, - 0x98, 0x47, 0x11, 0x4b, 0x00, 0x22, 0x1a, 0x60, 0x00, 0x23, 0x1a, 0xe0, 0x0e, 0x4b, 0x1b, 0x68, - 0x00, 0x2b, 0x14, 0xd1, 0x0e, 0x4b, 0x9a, 0x68, 0x0e, 0x4b, 0x1b, 0x68, 0x9a, 0x42, 0x0e, 0xd8, - 0x00, 0xf0, 0x19, 0xf8, 0x09, 0x4b, 0x1b, 0x68, 0x00, 0x2b, 0x06, 0xd0, 0x07, 0x4b, 0x1b, 0x68, - 0x00, 0x20, 0x98, 0x47, 0x05, 0x4b, 0x00, 0x22, 0x1a, 0x60, 0x00, 0x23, 0x01, 0xe0, 0x6f, 0xf0, - 0x05, 0x03, 0x18, 0x46, 0x80, 0xbd, 0x08, 0x00, 0x00, 0x20, 0xec, 0x09, 0x00, 0x20, 0x10, 0xe0, - 0x00, 0xe0, 0xe4, 0x09, 0x00, 0x20, 0x80, 0xb5, 0x00, 0xaf, 0x0a, 0x4b, 0x1b, 0x68, 0x00, 0x2b, - 0x07, 0xd0, 0x08, 0x4b, 0x1b, 0x68, 0x6f, 0xf0, 0x0f, 0x00, 0x98, 0x47, 0x06, 0x4b, 0x00, 0x22, - 0x1a, 0x60, 0x05, 0x4a, 0x06, 0x4b, 0x1b, 0x68, 0x13, 0x60, 0x05, 0x4b, 0x4f, 0xf0, 0xff, 0x32, - 0x1a, 0x60, 0x00, 0xbf, 0x80, 0xbd, 0xec, 0x09, 0x00, 0x20, 0x10, 0xe0, 0x00, 0xe0, 0xe8, 0x09, - 0x00, 0x20, 0x08, 0x00, 0x00, 0x20, 0x80, 0xb5, 0x82, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x16, 0x4b, - 0x1b, 0x68, 0x00, 0x2b, 0x02, 0xdd, 0x6f, 0xf0, 0x05, 0x03, 0x21, 0xe0, 0x7b, 0x68, 0x00, 0x2b, - 0x01, 0xd1, 0x00, 0x23, 0x1c, 0xe0, 0x78, 0x68, 0xff, 0xf7, 0xef, 0xfe, 0x0a, 0xe0, 0x0f, 0x4b, - 0x1b, 0x68, 0x03, 0xf4, 0x80, 0x33, 0x00, 0x2b, 0x04, 0xd0, 0x0b, 0x4b, 0x1b, 0x68, 0x01, 0x3b, - 0x0a, 0x4a, 0x13, 0x60, 0x09, 0x4b, 0x1b, 0x68, 0x00, 0x2b, 0xf0, 0xdc, 0x00, 0xbf, 0x07, 0x4b, - 0x9a, 0x68, 0x07, 0x4b, 0x1b, 0x68, 0x9a, 0x42, 0xf9, 0xd8, 0xff, 0xf7, 0xb4, 0xff, 0x00, 0x23, - 0x18, 0x46, 0x08, 0x37, 0xbd, 0x46, 0x80, 0xbd, 0x00, 0xbf, 0x08, 0x00, 0x00, 0x20, 0x10, 0xe0, - 0x00, 0xe0, 0xe4, 0x09, 0x00, 0x20, 0x80, 0xb4, 0x83, 0xb0, 0x00, 0xaf, 0x03, 0x46, 0xfb, 0x71, - 0xfb, 0x79, 0x1f, 0x2b, 0x0f, 0xd9, 0xfb, 0x79, 0x20, 0x3b, 0xfb, 0x71, 0x4f, 0xf0, 0x80, 0x43, - 0x9b, 0x6c, 0xfa, 0x79, 0x01, 0x21, 0x01, 0xfa, 0x02, 0xf2, 0x11, 0x46, 0x4f, 0xf0, 0x80, 0x42, - 0x0b, 0x43, 0x93, 0x64, 0x0b, 0xe0, 0x4f, 0xf0, 0x80, 0x43, 0x5b, 0x6a, 0xfa, 0x79, 0x01, 0x21, - 0x01, 0xfa, 0x02, 0xf2, 0x11, 0x46, 0x4f, 0xf0, 0x80, 0x42, 0x0b, 0x43, 0x53, 0x62, 0x00, 0xbf, - 0x0c, 0x37, 0xbd, 0x46, 0x5d, 0xf8, 0x04, 0x7b, 0x70, 0x47, 0x80, 0xb4, 0x83, 0xb0, 0x00, 0xaf, - 0x03, 0x46, 0xfb, 0x71, 0xfb, 0x79, 0x1f, 0x2b, 0x10, 0xd9, 0xfb, 0x79, 0x20, 0x3b, 0xfb, 0x71, - 0x4f, 0xf0, 0x80, 0x43, 0x9b, 0x6c, 0xfa, 0x79, 0x01, 0x21, 0x01, 0xfa, 0x02, 0xf2, 0xd2, 0x43, - 0x11, 0x46, 0x4f, 0xf0, 0x80, 0x42, 0x0b, 0x40, 0x93, 0x64, 0x0c, 0xe0, 0x4f, 0xf0, 0x80, 0x43, - 0x5b, 0x6a, 0xfa, 0x79, 0x01, 0x21, 0x01, 0xfa, 0x02, 0xf2, 0xd2, 0x43, 0x11, 0x46, 0x4f, 0xf0, - 0x80, 0x42, 0x0b, 0x40, 0x53, 0x62, 0x00, 0xbf, 0x0c, 0x37, 0xbd, 0x46, 0x5d, 0xf8, 0x04, 0x7b, - 0x70, 0x47, 0x80, 0xb5, 0x82, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x00, 0x21, 0x4f, 0xf4, 0x7a, 0x70, - 0xff, 0xf7, 0xe5, 0xfe, 0x4f, 0xf0, 0x80, 0x43, 0x9a, 0x68, 0x7b, 0x68, 0x13, 0x40, 0x00, 0x2b, - 0x03, 0xd0, 0xff, 0xf7, 0x40, 0xff, 0x00, 0x23, 0x07, 0xe0, 0xff, 0xf7, 0x04, 0xff, 0x03, 0x46, - 0x13, 0xf1, 0x06, 0x0f, 0xee, 0xd0, 0x6f, 0xf0, 0x09, 0x03, 0x18, 0x46, 0x08, 0x37, 0xbd, 0x46, - 0x80, 0xbd, 0x80, 0xb5, 0x84, 0xb0, 0x00, 0xaf, 0x03, 0x46, 0xfb, 0x71, 0x4f, 0xf0, 0x80, 0x43, - 0x9b, 0x68, 0x03, 0xf4, 0x60, 0x63, 0xfb, 0x60, 0xfb, 0x79, 0x05, 0x2b, 0x28, 0xd0, 0x05, 0x2b, - 0x55, 0xdc, 0x00, 0x2b, 0x02, 0xd0, 0x03, 0x2b, 0x46, 0xd0, 0x50, 0xe0, 0x4f, 0xf0, 0x80, 0x43, - 0x9b, 0x68, 0x03, 0xf4, 0x80, 0x23, 0x00, 0x2b, 0x11, 0xd1, 0x4f, 0xf0, 0x80, 0x43, 0x9b, 0x68, - 0x4f, 0xf0, 0x80, 0x42, 0x43, 0xf4, 0x80, 0x23, 0x93, 0x60, 0x4f, 0xf0, 0x80, 0x60, 0xff, 0xf7, - 0xb8, 0xff, 0x03, 0x46, 0x00, 0x2b, 0x02, 0xd0, 0x6f, 0xf0, 0x09, 0x03, 0x53, 0xe0, 0x4f, 0xf0, - 0x80, 0x43, 0x9b, 0x68, 0x4f, 0xf0, 0x80, 0x42, 0x23, 0xf4, 0x60, 0x63, 0x93, 0x60, 0x31, 0xe0, - 0x4f, 0xf0, 0x80, 0x43, 0x9b, 0x68, 0x03, 0xf4, 0x80, 0x13, 0x00, 0x2b, 0x11, 0xd1, 0x4f, 0xf0, - 0x80, 0x43, 0x9b, 0x68, 0x4f, 0xf0, 0x80, 0x42, 0x43, 0xf4, 0x80, 0x13, 0x93, 0x60, 0x4f, 0xf0, - 0x80, 0x50, 0xff, 0xf7, 0x96, 0xff, 0x03, 0x46, 0x00, 0x2b, 0x02, 0xd0, 0x6f, 0xf0, 0x09, 0x03, - 0x31, 0xe0, 0x4f, 0xf0, 0x80, 0x43, 0x9b, 0x68, 0x23, 0xf4, 0x60, 0x63, 0x4f, 0xf0, 0x80, 0x42, - 0x43, 0xf4, 0x20, 0x63, 0x93, 0x60, 0x0d, 0xe0, 0x4f, 0xf0, 0x80, 0x43, 0x9b, 0x68, 0x23, 0xf4, - 0x60, 0x63, 0x4f, 0xf0, 0x80, 0x42, 0x43, 0xf4, 0xc0, 0x63, 0x93, 0x60, 0x02, 0xe0, 0x6f, 0xf0, - 0x02, 0x03, 0x18, 0xe0, 0x4f, 0xf4, 0x00, 0x50, 0xff, 0xf7, 0x73, 0xff, 0x03, 0x46, 0x00, 0x2b, - 0x0e, 0xd0, 0x4f, 0xf0, 0x80, 0x43, 0x9b, 0x68, 0x23, 0xf4, 0x60, 0x62, 0xfb, 0x68, 0x03, 0xf4, - 0x60, 0x63, 0x4f, 0xf0, 0x80, 0x41, 0x13, 0x43, 0x8b, 0x60, 0x6f, 0xf0, 0x09, 0x03, 0x02, 0xe0, - 0xff, 0xf7, 0x43, 0xfd, 0x00, 0x23, 0x18, 0x46, 0x10, 0x37, 0xbd, 0x46, 0x80, 0xbd, 0x80, 0xb4, - 0x83, 0xb0, 0x00, 0xaf, 0x03, 0x46, 0xfb, 0x71, 0xfb, 0x79, 0x1f, 0x2b, 0x09, 0xd9, 0xfb, 0x79, - 0x20, 0x3b, 0xfb, 0x71, 0xfb, 0x79, 0x01, 0x22, 0x9a, 0x40, 0x4f, 0xf0, 0x80, 0x43, 0x5a, 0x64, - 0x05, 0xe0, 0xfb, 0x79, 0x01, 0x22, 0x9a, 0x40, 0x4f, 0xf0, 0x80, 0x43, 0x5a, 0x60, 0x00, 0xbf, - 0x0c, 0x37, 0xbd, 0x46, 0x5d, 0xf8, 0x04, 0x7b, 0x70, 0x47, 0x80, 0xb5, 0x82, 0xb0, 0x00, 0xaf, - 0x78, 0x60, 0x00, 0x21, 0x78, 0x68, 0x00, 0xf0, 0x56, 0xf8, 0x03, 0x46, 0x18, 0x46, 0x08, 0x37, - 0xbd, 0x46, 0x80, 0xbd, 0x80, 0xb5, 0x82, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x39, 0x60, 0x39, 0x68, - 0x78, 0x68, 0x00, 0xf0, 0x44, 0xf9, 0x00, 0xbf, 0x08, 0x37, 0xbd, 0x46, 0x80, 0xbd, 0x80, 0xb5, - 0x82, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x39, 0x60, 0x39, 0x68, 0x78, 0x68, 0x00, 0xf0, 0x45, 0xf9, - 0x00, 0xbf, 0x08, 0x37, 0xbd, 0x46, 0x80, 0xbd, 0x80, 0xb5, 0x82, 0xb0, 0x00, 0xaf, 0x78, 0x60, - 0x78, 0x68, 0x00, 0xf0, 0x6c, 0xfc, 0x00, 0xbf, 0x08, 0x37, 0xbd, 0x46, 0x80, 0xbd, 0x80, 0xb5, - 0x82, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x39, 0x60, 0x39, 0x68, 0x78, 0x68, 0x00, 0xf0, 0x3b, 0xf9, - 0x00, 0xbf, 0x08, 0x37, 0xbd, 0x46, 0x80, 0xbd, 0x80, 0xb5, 0x82, 0xb0, 0x00, 0xaf, 0x78, 0x60, - 0x78, 0x68, 0x00, 0xf0, 0x3e, 0xf9, 0x03, 0x46, 0x18, 0x46, 0x08, 0x37, 0xbd, 0x46, 0x80, 0xbd, - 0x80, 0xb5, 0x84, 0xb0, 0x00, 0xaf, 0xf8, 0x60, 0x0b, 0x46, 0x7a, 0x60, 0xfb, 0x72, 0xfb, 0x7a, - 0x7a, 0x68, 0x19, 0x46, 0xf8, 0x68, 0x00, 0xf0, 0x38, 0xf9, 0x03, 0x46, 0x18, 0x46, 0x10, 0x37, - 0xbd, 0x46, 0x80, 0xbd, 0x00, 0x00, 0x80, 0xb5, 0x84, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x0b, 0x46, - 0xfb, 0x70, 0x7b, 0x68, 0x1b, 0x68, 0xfb, 0x60, 0x7b, 0x68, 0x1b, 0x7a, 0x05, 0x2b, 0x74, 0xd8, - 0x01, 0xa2, 0x52, 0xf8, 0x23, 0xf0, 0x79, 0xcd, 0x00, 0x10, 0x9b, 0xcd, 0x00, 0x10, 0xbd, 0xcd, - 0x00, 0x10, 0xd7, 0xcd, 0x00, 0x10, 0xf1, 0xcd, 0x00, 0x10, 0x2b, 0xce, 0x00, 0x10, 0x7b, 0x68, - 0x5a, 0x68, 0xfb, 0x68, 0x5a, 0x61, 0x7b, 0x68, 0x5a, 0x68, 0xfb, 0x68, 0x5a, 0x60, 0x7b, 0x68, - 0x5a, 0x68, 0xfb, 0x68, 0x1a, 0x67, 0x7b, 0x68, 0x5a, 0x68, 0xfb, 0x68, 0xda, 0x67, 0x57, 0xe0, - 0x7b, 0x68, 0x5a, 0x68, 0xfb, 0x68, 0x1a, 0x61, 0x7b, 0x68, 0x5a, 0x68, 0xfb, 0x68, 0x5a, 0x60, - 0x7b, 0x68, 0x5a, 0x68, 0xfb, 0x68, 0x1a, 0x67, 0x7b, 0x68, 0x5a, 0x68, 0xfb, 0x68, 0xda, 0x67, - 0x46, 0xe0, 0x7b, 0x68, 0x5a, 0x68, 0xfb, 0x68, 0x9a, 0x60, 0x7b, 0x68, 0x5a, 0x68, 0xfb, 0x68, - 0x1a, 0x67, 0x7b, 0x68, 0x5a, 0x68, 0xfb, 0x68, 0xda, 0x67, 0x39, 0xe0, 0x7b, 0x68, 0x5a, 0x68, - 0xfb, 0x68, 0x9a, 0x60, 0x7b, 0x68, 0x5a, 0x68, 0xfb, 0x68, 0xda, 0x66, 0x7b, 0x68, 0x5a, 0x68, - 0xfb, 0x68, 0xda, 0x67, 0x2c, 0xe0, 0xfb, 0x78, 0x01, 0x2b, 0x0c, 0xd1, 0x7b, 0x68, 0x5a, 0x68, - 0xfb, 0x68, 0x5a, 0x60, 0x7b, 0x68, 0x5a, 0x68, 0xfb, 0x68, 0xda, 0x66, 0x7b, 0x68, 0x5a, 0x68, - 0xfb, 0x68, 0xda, 0x67, 0x1c, 0xe0, 0x7b, 0x68, 0x5a, 0x68, 0xfb, 0x68, 0x9a, 0x60, 0x7b, 0x68, - 0x5a, 0x68, 0xfb, 0x68, 0x1a, 0x67, 0x7b, 0x68, 0x5a, 0x68, 0xfb, 0x68, 0x9a, 0x67, 0x0f, 0xe0, - 0x7b, 0x68, 0x5a, 0x68, 0xfb, 0x68, 0x9a, 0x60, 0x7b, 0x68, 0x5a, 0x68, 0xfb, 0x68, 0xda, 0x66, - 0x7b, 0x68, 0x5a, 0x68, 0xfb, 0x68, 0x9a, 0x67, 0x02, 0xe0, 0x6f, 0xf0, 0x02, 0x03, 0x72, 0xe0, - 0x7b, 0x68, 0x5b, 0x7a, 0x02, 0x2b, 0x40, 0xd0, 0x02, 0x2b, 0x5b, 0xdc, 0x00, 0x2b, 0x02, 0xd0, - 0x01, 0x2b, 0x1e, 0xd0, 0x56, 0xe0, 0xfb, 0x68, 0x1a, 0x6e, 0x7b, 0x68, 0x5b, 0x68, 0xdb, 0x43, - 0x1a, 0x40, 0xfb, 0x68, 0x1a, 0x66, 0xfb, 0x68, 0x5a, 0x6e, 0x7b, 0x68, 0x5b, 0x68, 0xdb, 0x43, - 0x1a, 0x40, 0xfb, 0x68, 0x5a, 0x66, 0xfb, 0x78, 0x01, 0x2b, 0x46, 0xd1, 0xfb, 0x68, 0xd3, 0xf8, - 0xb8, 0x20, 0x7b, 0x68, 0x5b, 0x68, 0xdb, 0x43, 0x1a, 0x40, 0xfb, 0x68, 0xc3, 0xf8, 0xb8, 0x20, - 0x3b, 0xe0, 0xfb, 0x68, 0x1a, 0x6e, 0x7b, 0x68, 0x5b, 0x68, 0x1a, 0x43, 0xfb, 0x68, 0x1a, 0x66, - 0xfb, 0x68, 0x5a, 0x6e, 0x7b, 0x68, 0x5b, 0x68, 0xdb, 0x43, 0x1a, 0x40, 0xfb, 0x68, 0x5a, 0x66, - 0xfb, 0x78, 0x01, 0x2b, 0x2b, 0xd1, 0xfb, 0x68, 0xd3, 0xf8, 0xb8, 0x20, 0x7b, 0x68, 0x5b, 0x68, - 0x1a, 0x43, 0xfb, 0x68, 0xc3, 0xf8, 0xb8, 0x20, 0x21, 0xe0, 0xfb, 0x68, 0x1a, 0x6e, 0x7b, 0x68, - 0x5b, 0x68, 0xdb, 0x43, 0x1a, 0x40, 0xfb, 0x68, 0x1a, 0x66, 0xfb, 0x68, 0x5a, 0x6e, 0x7b, 0x68, - 0x5b, 0x68, 0x1a, 0x43, 0xfb, 0x68, 0x5a, 0x66, 0xfb, 0x78, 0x01, 0x2b, 0x11, 0xd1, 0xfb, 0x68, - 0xd3, 0xf8, 0xb8, 0x20, 0x7b, 0x68, 0x5b, 0x68, 0xdb, 0x43, 0x1a, 0x40, 0xfb, 0x68, 0xc3, 0xf8, - 0xb8, 0x20, 0x06, 0xe0, 0x6f, 0xf0, 0x02, 0x03, 0x0d, 0xe0, 0x00, 0xbf, 0x02, 0xe0, 0x00, 0xbf, - 0x00, 0xe0, 0x00, 0xbf, 0x7b, 0x68, 0x99, 0x7a, 0x7b, 0x68, 0x5b, 0x68, 0x1a, 0x46, 0xf8, 0x68, - 0xff, 0xf7, 0xf6, 0xfe, 0x00, 0x23, 0x18, 0x46, 0x10, 0x37, 0xbd, 0x46, 0x80, 0xbd, 0x80, 0xb4, - 0x83, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x39, 0x60, 0x7b, 0x68, 0x3a, 0x68, 0xda, 0x61, 0x00, 0xbf, - 0x0c, 0x37, 0xbd, 0x46, 0x5d, 0xf8, 0x04, 0x7b, 0x70, 0x47, 0x80, 0xb4, 0x83, 0xb0, 0x00, 0xaf, - 0x78, 0x60, 0x39, 0x60, 0x7b, 0x68, 0x3a, 0x68, 0x1a, 0x62, 0x00, 0xbf, 0x0c, 0x37, 0xbd, 0x46, - 0x5d, 0xf8, 0x04, 0x7b, 0x70, 0x47, 0x80, 0xb4, 0x83, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x39, 0x60, - 0x7b, 0x68, 0x3a, 0x68, 0x9a, 0x64, 0x00, 0xbf, 0x0c, 0x37, 0xbd, 0x46, 0x5d, 0xf8, 0x04, 0x7b, - 0x70, 0x47, 0x80, 0xb4, 0x83, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x7b, 0x68, 0x1b, 0x6c, 0x18, 0x46, - 0x0c, 0x37, 0xbd, 0x46, 0x5d, 0xf8, 0x04, 0x7b, 0x70, 0x47, 0x80, 0xb4, 0x85, 0xb0, 0x00, 0xaf, - 0xf8, 0x60, 0x0b, 0x46, 0x7a, 0x60, 0xfb, 0x72, 0xfb, 0x7a, 0x00, 0x2b, 0x02, 0xd0, 0x01, 0x2b, - 0x0a, 0xd0, 0x12, 0xe0, 0xfb, 0x68, 0xd3, 0xf8, 0xc0, 0x20, 0x7b, 0x68, 0xdb, 0x43, 0x1a, 0x40, - 0xfb, 0x68, 0xc3, 0xf8, 0xc0, 0x20, 0x0b, 0xe0, 0xfb, 0x68, 0xd3, 0xf8, 0xc0, 0x20, 0x7b, 0x68, - 0x1a, 0x43, 0xfb, 0x68, 0xc3, 0xf8, 0xc0, 0x20, 0x02, 0xe0, 0x6f, 0xf0, 0x02, 0x03, 0x00, 0xe0, - 0x00, 0x23, 0x18, 0x46, 0x14, 0x37, 0xbd, 0x46, 0x5d, 0xf8, 0x04, 0x7b, 0x70, 0x47, 0x80, 0xb5, - 0x84, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x39, 0x60, 0x78, 0x68, 0x00, 0xf0, 0x28, 0xf8, 0xf8, 0x60, - 0xfb, 0x68, 0x00, 0x2b, 0x01, 0xd0, 0xfb, 0x68, 0x18, 0xe0, 0x7b, 0x68, 0x0e, 0x4a, 0x93, 0x42, - 0x01, 0xd1, 0x00, 0x23, 0x01, 0xe0, 0x4f, 0xf0, 0xff, 0x33, 0x00, 0x2b, 0x0c, 0xd1, 0x09, 0x20, - 0xff, 0xf7, 0x3b, 0xfd, 0x09, 0x48, 0xff, 0xf7, 0x28, 0xfe, 0x00, 0xbf, 0x39, 0x68, 0x78, 0x68, - 0x00, 0xf0, 0xd3, 0xf8, 0x03, 0x46, 0x01, 0xe0, 0x6f, 0xf0, 0x02, 0x03, 0x18, 0x46, 0x10, 0x37, - 0xbd, 0x46, 0x80, 0xbd, 0x00, 0xbf, 0x00, 0x00, 0x02, 0x40, 0x2c, 0x37, 0x01, 0x10, 0x80, 0xb5, - 0x82, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x7b, 0x68, 0x0c, 0x4a, 0x93, 0x42, 0x01, 0xd1, 0x00, 0x23, - 0x01, 0xe0, 0x4f, 0xf0, 0xff, 0x33, 0x00, 0x2b, 0x08, 0xd1, 0x0b, 0x20, 0xff, 0xf7, 0xe7, 0xfd, - 0x09, 0x20, 0xff, 0xf7, 0xe8, 0xfc, 0x00, 0xbf, 0x00, 0x23, 0x01, 0xe0, 0x6f, 0xf0, 0x02, 0x03, - 0x18, 0x46, 0x08, 0x37, 0xbd, 0x46, 0x80, 0xbd, 0x00, 0xbf, 0x00, 0x00, 0x02, 0x40, 0x80, 0xb5, - 0x82, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x39, 0x60, 0x39, 0x68, 0x78, 0x68, 0x00, 0xf0, 0xbb, 0xf8, - 0x03, 0x46, 0x18, 0x46, 0x08, 0x37, 0xbd, 0x46, 0x80, 0xbd, 0x80, 0xb5, 0x82, 0xb0, 0x00, 0xaf, - 0x78, 0x60, 0x78, 0x68, 0x00, 0xf0, 0xf3, 0xf8, 0x03, 0x46, 0x18, 0x46, 0x08, 0x37, 0xbd, 0x46, - 0x80, 0xbd, 0x80, 0xb5, 0x82, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x39, 0x60, 0x39, 0x68, 0x78, 0x68, - 0x00, 0xf0, 0x03, 0xf9, 0x03, 0x46, 0x18, 0x46, 0x08, 0x37, 0xbd, 0x46, 0x80, 0xbd, 0x80, 0xb5, - 0x82, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x0b, 0x46, 0xfb, 0x70, 0xfb, 0x78, 0x19, 0x46, 0x78, 0x68, - 0x00, 0xf0, 0x1f, 0xf9, 0x03, 0x46, 0x18, 0x46, 0x08, 0x37, 0xbd, 0x46, 0x80, 0xbd, 0x80, 0xb5, - 0x82, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x0b, 0x46, 0xfb, 0x70, 0xfb, 0x78, 0x19, 0x46, 0x78, 0x68, - 0x00, 0xf0, 0x3d, 0xf9, 0x03, 0x46, 0x18, 0x46, 0x08, 0x37, 0xbd, 0x46, 0x80, 0xbd, 0x80, 0xb5, - 0x82, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x78, 0x68, 0x00, 0xf0, 0xb7, 0xf9, 0x03, 0x46, 0x18, 0x46, - 0x08, 0x37, 0xbd, 0x46, 0x80, 0xbd, 0x80, 0xb5, 0x82, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x0b, 0x46, - 0xfb, 0x70, 0xfb, 0x78, 0x19, 0x46, 0x78, 0x68, 0x00, 0xf0, 0xc5, 0xf9, 0x03, 0x46, 0x18, 0x46, - 0x08, 0x37, 0xbd, 0x46, 0x80, 0xbd, 0x80, 0xb5, 0x82, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x78, 0x68, - 0x00, 0xf0, 0x75, 0xfa, 0x03, 0x46, 0x18, 0x46, 0x08, 0x37, 0xbd, 0x46, 0x80, 0xbd, 0x80, 0xb5, - 0x82, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x0b, 0x46, 0xfb, 0x70, 0xfb, 0x78, 0x19, 0x46, 0x78, 0x68, - 0x00, 0xf0, 0x78, 0xfa, 0x03, 0x46, 0x18, 0x46, 0x08, 0x37, 0xbd, 0x46, 0x80, 0xbd, 0x80, 0xb5, - 0x82, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x78, 0x68, 0x00, 0xf0, 0xbf, 0xf9, 0x03, 0x46, 0x18, 0x46, - 0x08, 0x37, 0xbd, 0x46, 0x80, 0xbd, 0x80, 0xb5, 0x82, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x78, 0x68, - 0x00, 0xf0, 0xc2, 0xf9, 0x03, 0x46, 0x18, 0x46, 0x08, 0x37, 0xbd, 0x46, 0x80, 0xbd, 0x80, 0xb5, - 0x82, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x39, 0x60, 0x39, 0x68, 0x78, 0x68, 0x00, 0xf0, 0xc7, 0xf9, - 0x03, 0x46, 0x18, 0x46, 0x08, 0x37, 0xbd, 0x46, 0x80, 0xbd, 0x80, 0xb5, 0x82, 0xb0, 0x00, 0xaf, - 0x78, 0x60, 0x39, 0x60, 0x01, 0x21, 0x78, 0x68, 0xff, 0xf7, 0xe9, 0xff, 0x08, 0x21, 0x78, 0x68, - 0xff, 0xf7, 0x67, 0xff, 0x00, 0x21, 0x78, 0x68, 0xff, 0xf7, 0x81, 0xff, 0x00, 0x21, 0x78, 0x68, - 0xff, 0xf7, 0x6d, 0xff, 0x39, 0x68, 0x78, 0x68, 0xff, 0xf7, 0x41, 0xff, 0x03, 0x46, 0x18, 0x46, - 0x08, 0x37, 0xbd, 0x46, 0x80, 0xbd, 0x80, 0xb5, 0x86, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x39, 0x60, - 0x00, 0x23, 0x7b, 0x61, 0x00, 0x23, 0x3b, 0x61, 0x00, 0x23, 0xfb, 0x60, 0x7b, 0x68, 0x19, 0x4a, - 0x93, 0x42, 0x02, 0xd0, 0x6f, 0xf0, 0x02, 0x03, 0x28, 0xe0, 0x17, 0x4b, 0x1b, 0x68, 0x5a, 0x08, - 0x3b, 0x68, 0xb2, 0xfb, 0xf3, 0xf3, 0x7b, 0x61, 0x7b, 0x69, 0xdb, 0x11, 0x3b, 0x61, 0x3b, 0x69, - 0xdb, 0x01, 0x7a, 0x69, 0xd3, 0x1a, 0xfb, 0x60, 0x7b, 0x68, 0x1b, 0x69, 0x23, 0xf4, 0x7f, 0x63, - 0x23, 0xf0, 0x0f, 0x03, 0x3a, 0x69, 0xc2, 0xf3, 0x0b, 0x02, 0x1a, 0x43, 0x7b, 0x68, 0x1a, 0x61, - 0x7b, 0x68, 0x5b, 0x69, 0x23, 0xf0, 0x7f, 0x02, 0xfb, 0x68, 0x03, 0xf0, 0x7f, 0x03, 0x1a, 0x43, - 0x7b, 0x68, 0x5a, 0x61, 0x78, 0x68, 0xff, 0xf7, 0x10, 0xff, 0x03, 0x46, 0x18, 0x46, 0x18, 0x37, - 0xbd, 0x46, 0x80, 0xbd, 0x00, 0xbf, 0x00, 0x00, 0x02, 0x40, 0x04, 0x00, 0x00, 0x20, 0x80, 0xb4, - 0x85, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x00, 0x23, 0xfb, 0x60, 0x7b, 0x68, 0x1b, 0x69, 0xdb, 0x01, - 0xfb, 0x60, 0x7b, 0x68, 0x5a, 0x69, 0xfb, 0x68, 0x13, 0x44, 0xfb, 0x60, 0x06, 0x4b, 0x1b, 0x68, - 0x5b, 0x08, 0xfa, 0x68, 0x02, 0xfb, 0x03, 0xf3, 0x18, 0x46, 0x14, 0x37, 0xbd, 0x46, 0x5d, 0xf8, - 0x04, 0x7b, 0x70, 0x47, 0x00, 0xbf, 0x04, 0x00, 0x00, 0x20, 0x80, 0xb4, 0x83, 0xb0, 0x00, 0xaf, - 0x78, 0x60, 0x39, 0x60, 0x7b, 0x68, 0x11, 0x4a, 0x93, 0x42, 0x02, 0xd0, 0x6f, 0xf0, 0x02, 0x03, - 0x17, 0xe0, 0x3b, 0x68, 0x04, 0x2b, 0x02, 0xdd, 0x3b, 0x68, 0x08, 0x2b, 0x02, 0xdd, 0x6f, 0xf0, - 0x02, 0x03, 0x0e, 0xe0, 0x3b, 0x68, 0x05, 0x3b, 0x9b, 0x02, 0x3b, 0x60, 0x7b, 0x68, 0x1b, 0x68, - 0x23, 0xf4, 0x40, 0x62, 0x3b, 0x68, 0x03, 0xf4, 0x40, 0x63, 0x1a, 0x43, 0x7b, 0x68, 0x1a, 0x60, - 0x00, 0x23, 0x18, 0x46, 0x0c, 0x37, 0xbd, 0x46, 0x5d, 0xf8, 0x04, 0x7b, 0x70, 0x47, 0x00, 0x00, - 0x02, 0x40, 0x80, 0xb4, 0x83, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x0b, 0x46, 0xfb, 0x70, 0x7b, 0x68, - 0x12, 0x4a, 0x93, 0x42, 0x02, 0xd0, 0x6f, 0xf0, 0x02, 0x03, 0x17, 0xe0, 0xfb, 0x78, 0x00, 0x2b, - 0x02, 0xd0, 0x01, 0x2b, 0x07, 0xd0, 0x0d, 0xe0, 0x7b, 0x68, 0x1b, 0x68, 0x23, 0xf4, 0x80, 0x52, - 0x7b, 0x68, 0x1a, 0x60, 0x09, 0xe0, 0x7b, 0x68, 0x1b, 0x68, 0x43, 0xf4, 0x80, 0x52, 0x7b, 0x68, - 0x1a, 0x60, 0x02, 0xe0, 0x6f, 0xf0, 0x02, 0x03, 0x00, 0xe0, 0x00, 0x23, 0x18, 0x46, 0x0c, 0x37, - 0xbd, 0x46, 0x5d, 0xf8, 0x04, 0x7b, 0x70, 0x47, 0x00, 0xbf, 0x00, 0x00, 0x02, 0x40, 0x80, 0xb4, - 0x83, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x0b, 0x46, 0xfb, 0x70, 0x7b, 0x68, 0x3e, 0x4a, 0x93, 0x42, - 0x02, 0xd0, 0x6f, 0xf0, 0x02, 0x03, 0x6f, 0xe0, 0xfb, 0x78, 0x08, 0x2b, 0x68, 0xd8, 0x01, 0xa2, - 0x52, 0xf8, 0x23, 0xf0, 0x00, 0xbf, 0xe5, 0xd3, 0x00, 0x10, 0xf3, 0xd3, 0x00, 0x10, 0x3f, 0xd4, - 0x00, 0x10, 0x8b, 0xd4, 0x00, 0x10, 0x8b, 0xd4, 0x00, 0x10, 0xf3, 0xd3, 0x00, 0x10, 0x19, 0xd4, - 0x00, 0x10, 0x3f, 0xd4, 0x00, 0x10, 0x65, 0xd4, 0x00, 0x10, 0x7b, 0x68, 0x1b, 0x68, 0x23, 0xf0, - 0x10, 0x02, 0x7b, 0x68, 0x1a, 0x60, 0x4e, 0xe0, 0x7b, 0x68, 0x1b, 0x68, 0x43, 0xf0, 0x10, 0x02, - 0x7b, 0x68, 0x1a, 0x60, 0x7b, 0x68, 0x1b, 0x68, 0x23, 0xf0, 0x20, 0x02, 0x7b, 0x68, 0x1a, 0x60, - 0x7b, 0x68, 0x1b, 0x68, 0x23, 0xf0, 0x40, 0x02, 0x7b, 0x68, 0x1a, 0x60, 0x3b, 0xe0, 0x7b, 0x68, - 0x1b, 0x68, 0x43, 0xf0, 0x10, 0x02, 0x7b, 0x68, 0x1a, 0x60, 0x7b, 0x68, 0x1b, 0x68, 0x23, 0xf0, - 0x20, 0x02, 0x7b, 0x68, 0x1a, 0x60, 0x7b, 0x68, 0x1b, 0x68, 0x43, 0xf0, 0x40, 0x02, 0x7b, 0x68, - 0x1a, 0x60, 0x28, 0xe0, 0x7b, 0x68, 0x1b, 0x68, 0x43, 0xf0, 0x10, 0x02, 0x7b, 0x68, 0x1a, 0x60, - 0x7b, 0x68, 0x1b, 0x68, 0x43, 0xf0, 0x20, 0x02, 0x7b, 0x68, 0x1a, 0x60, 0x7b, 0x68, 0x1b, 0x68, - 0x23, 0xf0, 0x40, 0x02, 0x7b, 0x68, 0x1a, 0x60, 0x15, 0xe0, 0x7b, 0x68, 0x1b, 0x68, 0x43, 0xf0, - 0x10, 0x02, 0x7b, 0x68, 0x1a, 0x60, 0x7b, 0x68, 0x1b, 0x68, 0x43, 0xf0, 0x20, 0x02, 0x7b, 0x68, - 0x1a, 0x60, 0x7b, 0x68, 0x1b, 0x68, 0x43, 0xf0, 0x40, 0x02, 0x7b, 0x68, 0x1a, 0x60, 0x02, 0xe0, - 0x6f, 0xf0, 0x02, 0x03, 0x00, 0xe0, 0x00, 0x23, 0x18, 0x46, 0x0c, 0x37, 0xbd, 0x46, 0x5d, 0xf8, - 0x04, 0x7b, 0x70, 0x47, 0x00, 0xbf, 0x00, 0x00, 0x02, 0x40, 0x80, 0xb4, 0x83, 0xb0, 0x00, 0xaf, - 0x78, 0x60, 0x7b, 0x68, 0x0b, 0x4a, 0x93, 0x42, 0x02, 0xd0, 0x6f, 0xf0, 0x02, 0x03, 0x0a, 0xe0, - 0x7b, 0x68, 0x5b, 0x68, 0x03, 0xf0, 0x10, 0x03, 0x00, 0x2b, 0x02, 0xd0, 0x6f, 0xf0, 0x0c, 0x03, - 0x01, 0xe0, 0x7b, 0x68, 0x1b, 0x6a, 0x18, 0x46, 0x0c, 0x37, 0xbd, 0x46, 0x5d, 0xf8, 0x04, 0x7b, - 0x70, 0x47, 0x00, 0x00, 0x02, 0x40, 0x80, 0xb4, 0x83, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x0b, 0x46, - 0xfb, 0x70, 0x7b, 0x68, 0x0c, 0x4a, 0x93, 0x42, 0x02, 0xd0, 0x6f, 0xf0, 0x02, 0x03, 0x0c, 0xe0, - 0x7b, 0x68, 0x5b, 0x68, 0x03, 0xf0, 0x80, 0x03, 0x00, 0x2b, 0x02, 0xd0, 0x6f, 0xf0, 0x0b, 0x03, - 0x03, 0xe0, 0xfa, 0x78, 0x7b, 0x68, 0x1a, 0x62, 0x00, 0x23, 0x18, 0x46, 0x0c, 0x37, 0xbd, 0x46, - 0x5d, 0xf8, 0x04, 0x7b, 0x70, 0x47, 0x00, 0x00, 0x02, 0x40, 0x80, 0xb4, 0x83, 0xb0, 0x00, 0xaf, - 0x78, 0x60, 0x7b, 0x68, 0x5b, 0x68, 0x1b, 0x0a, 0x03, 0xf0, 0x0f, 0x03, 0x18, 0x46, 0x0c, 0x37, - 0xbd, 0x46, 0x5d, 0xf8, 0x04, 0x7b, 0x70, 0x47, 0x80, 0xb4, 0x85, 0xb0, 0x00, 0xaf, 0x78, 0x60, - 0x7b, 0x68, 0x5b, 0x68, 0x1b, 0x0b, 0x03, 0xf0, 0x0f, 0x03, 0xfb, 0x60, 0xfb, 0x68, 0xc3, 0xf1, - 0x08, 0x03, 0x18, 0x46, 0x14, 0x37, 0xbd, 0x46, 0x5d, 0xf8, 0x04, 0x7b, 0x70, 0x47, 0x80, 0xb4, - 0x83, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x39, 0x60, 0x7b, 0x68, 0x0f, 0x4a, 0x93, 0x42, 0x02, 0xd0, - 0x6f, 0xf0, 0x02, 0x03, 0x13, 0xe0, 0x3b, 0x68, 0x00, 0x2b, 0x02, 0xd0, 0x3b, 0x68, 0x08, 0x2b, - 0x02, 0xd9, 0x6f, 0xf0, 0x02, 0x03, 0x0a, 0xe0, 0x7b, 0x68, 0x1b, 0x68, 0x23, 0xf0, 0x0f, 0x02, - 0x3b, 0x68, 0x03, 0xf0, 0x0f, 0x03, 0x1a, 0x43, 0x7b, 0x68, 0x1a, 0x60, 0x00, 0x23, 0x18, 0x46, - 0x0c, 0x37, 0xbd, 0x46, 0x5d, 0xf8, 0x04, 0x7b, 0x70, 0x47, 0x00, 0x00, 0x02, 0x40, 0x80, 0xb5, - 0x86, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x7b, 0x68, 0x00, 0x2b, 0x06, 0xd0, 0x7b, 0x68, 0x01, 0x2b, - 0x01, 0xd1, 0x1e, 0x4b, 0x02, 0xe0, 0x00, 0x23, 0x00, 0xe0, 0x1d, 0x4b, 0xfb, 0x60, 0xf8, 0x68, - 0xff, 0xf7, 0x92, 0xfb, 0x78, 0x61, 0x79, 0x69, 0xf8, 0x68, 0xff, 0xf7, 0x80, 0xfb, 0x00, 0x23, - 0x3b, 0x61, 0x23, 0xe0, 0x7b, 0x69, 0x03, 0xf0, 0x01, 0x03, 0x00, 0x2b, 0x18, 0xd0, 0x15, 0x49, - 0x7b, 0x68, 0x1a, 0x01, 0x3b, 0x69, 0x13, 0x44, 0x51, 0xf8, 0x23, 0x30, 0x00, 0x2b, 0x0f, 0xd0, - 0x11, 0x49, 0x7b, 0x68, 0x1a, 0x01, 0x3b, 0x69, 0x13, 0x44, 0x51, 0xf8, 0x23, 0x30, 0x0e, 0x48, - 0x7a, 0x68, 0x11, 0x01, 0x3a, 0x69, 0x0a, 0x44, 0x50, 0xf8, 0x22, 0x20, 0x10, 0x46, 0x98, 0x47, - 0x3b, 0x69, 0x01, 0x33, 0x3b, 0x61, 0x7b, 0x69, 0x5b, 0x08, 0x7b, 0x61, 0x7b, 0x69, 0x00, 0x2b, - 0xd8, 0xd1, 0x00, 0xbf, 0x00, 0xbf, 0x18, 0x37, 0xbd, 0x46, 0x80, 0xbd, 0x00, 0xbf, 0x00, 0x90, - 0x00, 0x40, 0x00, 0x80, 0x00, 0x40, 0xf0, 0x09, 0x00, 0x20, 0x70, 0x0a, 0x00, 0x20, 0x80, 0xb5, - 0x82, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x00, 0xbf, 0x78, 0x68, 0xff, 0xf7, 0x98, 0xfd, 0x03, 0x46, - 0x00, 0x2b, 0xf9, 0xd0, 0x78, 0x68, 0xff, 0xf7, 0x5a, 0xfd, 0x03, 0x46, 0x18, 0x46, 0x08, 0x37, - 0xbd, 0x46, 0x80, 0xbd, 0x80, 0xb5, 0x82, 0xb0, 0x00, 0xaf, 0x78, 0x60, 0x0b, 0x46, 0xfb, 0x70, - 0x00, 0xbf, 0x78, 0x68, 0xff, 0xf7, 0x8f, 0xfd, 0x03, 0x46, 0x00, 0x2b, 0xf9, 0xd0, 0xfb, 0x78, - 0x19, 0x46, 0x78, 0x68, 0xff, 0xf7, 0x4f, 0xfd, 0x03, 0x46, 0x18, 0x46, 0x08, 0x37, 0xbd, 0x46, - 0x80, 0xbd, 0x01, 0x4b, 0x18, 0x68, 0x70, 0x47, 0x00, 0xbf, 0x0c, 0x00, 0x00, 0x20, 0x70, 0xb5, - 0x0d, 0x4e, 0x0d, 0x4d, 0x76, 0x1b, 0xb6, 0x10, 0x06, 0xd0, 0x00, 0x24, 0x55, 0xf8, 0x04, 0x3b, - 0x01, 0x34, 0x98, 0x47, 0xa6, 0x42, 0xf9, 0xd1, 0x09, 0x4e, 0x09, 0x4d, 0x76, 0x1b, 0x06, 0xf0, - 0x76, 0xf9, 0xb6, 0x10, 0x06, 0xd0, 0x00, 0x24, 0x55, 0xf8, 0x04, 0x3b, 0x01, 0x34, 0x98, 0x47, - 0xa6, 0x42, 0xf9, 0xd1, 0x70, 0xbd, 0xb8, 0x09, 0x00, 0x20, 0xb8, 0x09, 0x00, 0x20, 0xc0, 0x09, - 0x00, 0x20, 0xb8, 0x09, 0x00, 0x20, 0x84, 0x46, 0x41, 0xea, 0x00, 0x03, 0x13, 0xf0, 0x03, 0x03, - 0x6d, 0xd1, 0x40, 0x3a, 0x41, 0xd3, 0x51, 0xf8, 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, - 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, - 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, - 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, - 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, - 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, - 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, - 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, - 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x40, 0x3a, 0xbd, 0xd2, 0x30, 0x32, 0x11, 0xd3, 0x51, 0xf8, - 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, - 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x10, 0x3a, - 0xed, 0xd2, 0x0c, 0x32, 0x05, 0xd3, 0x51, 0xf8, 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x04, 0x3a, - 0xf9, 0xd2, 0x04, 0x32, 0x08, 0xd0, 0xd2, 0x07, 0x1c, 0xbf, 0x11, 0xf8, 0x01, 0x3b, 0x00, 0xf8, - 0x01, 0x3b, 0x01, 0xd3, 0x0b, 0x88, 0x03, 0x80, 0x60, 0x46, 0x70, 0x47, 0x00, 0xbf, 0x08, 0x2a, - 0x13, 0xd3, 0x8b, 0x07, 0x8d, 0xd0, 0x10, 0xf0, 0x03, 0x03, 0x8a, 0xd0, 0xc3, 0xf1, 0x04, 0x03, - 0xd2, 0x1a, 0xdb, 0x07, 0x1c, 0xbf, 0x11, 0xf8, 0x01, 0x3b, 0x00, 0xf8, 0x01, 0x3b, 0x80, 0xd3, - 0x31, 0xf8, 0x02, 0x3b, 0x20, 0xf8, 0x02, 0x3b, 0x7b, 0xe7, 0x04, 0x3a, 0xd9, 0xd3, 0x01, 0x3a, - 0x11, 0xf8, 0x01, 0x3b, 0x00, 0xf8, 0x01, 0x3b, 0xf9, 0xd2, 0x0b, 0x78, 0x03, 0x70, 0x4b, 0x78, - 0x43, 0x70, 0x8b, 0x78, 0x83, 0x70, 0x60, 0x46, 0x70, 0x47, 0xf0, 0xb4, 0x86, 0x07, 0x46, 0xd0, - 0x54, 0x1e, 0x00, 0x2a, 0x3c, 0xd0, 0xca, 0xb2, 0x03, 0x46, 0x01, 0xe0, 0x01, 0x3c, 0x37, 0xd3, - 0x03, 0xf8, 0x01, 0x2b, 0x9d, 0x07, 0xf9, 0xd1, 0x03, 0x2c, 0x2a, 0xd9, 0xcd, 0xb2, 0x45, 0xea, - 0x05, 0x25, 0x0f, 0x2c, 0x45, 0xea, 0x05, 0x45, 0x34, 0xd9, 0xa4, 0xf1, 0x10, 0x02, 0x22, 0xf0, - 0x0f, 0x0c, 0x03, 0xf1, 0x20, 0x07, 0x16, 0x09, 0x67, 0x44, 0x03, 0xf1, 0x10, 0x02, 0x42, 0xe9, - 0x04, 0x55, 0x42, 0xe9, 0x02, 0x55, 0x10, 0x32, 0xba, 0x42, 0xf8, 0xd1, 0x72, 0x1c, 0x14, 0xf0, - 0x0c, 0x0f, 0x03, 0xeb, 0x02, 0x12, 0x04, 0xf0, 0x0f, 0x06, 0x13, 0xd0, 0x33, 0x1f, 0x23, 0xf0, - 0x03, 0x03, 0x04, 0x33, 0x13, 0x44, 0x42, 0xf8, 0x04, 0x5b, 0x93, 0x42, 0xfb, 0xd1, 0x06, 0xf0, - 0x03, 0x04, 0x2c, 0xb1, 0xca, 0xb2, 0x1c, 0x44, 0x03, 0xf8, 0x01, 0x2b, 0x9c, 0x42, 0xfb, 0xd1, - 0xf0, 0xbc, 0x70, 0x47, 0x34, 0x46, 0x13, 0x46, 0x00, 0x2c, 0xf3, 0xd1, 0xf8, 0xe7, 0x14, 0x46, - 0x03, 0x46, 0xc1, 0xe7, 0x1a, 0x46, 0x26, 0x46, 0xe0, 0xe7, 0x0f, 0xb4, 0x00, 0xb5, 0x07, 0x49, - 0x83, 0xb0, 0x04, 0xab, 0x08, 0x68, 0x53, 0xf8, 0x04, 0x2b, 0x81, 0x68, 0x01, 0x93, 0x00, 0xf0, - 0xda, 0xf8, 0x03, 0xb0, 0x5d, 0xf8, 0x04, 0xeb, 0x04, 0xb0, 0x70, 0x47, 0x00, 0xbf, 0x0c, 0x00, - 0x00, 0x20, 0x70, 0xb5, 0x05, 0x46, 0x88, 0xb0, 0x08, 0x46, 0x0c, 0x46, 0x00, 0xf0, 0x5b, 0xf8, - 0x22, 0x4a, 0xab, 0x6b, 0x04, 0x94, 0x01, 0x26, 0x44, 0x1c, 0x04, 0xa9, 0x06, 0x92, 0x02, 0x22, - 0x03, 0x94, 0xcd, 0xe9, 0x01, 0x12, 0xac, 0x68, 0x05, 0x90, 0x07, 0x96, 0x23, 0xb3, 0x63, 0x6e, - 0x13, 0xf0, 0x01, 0x0f, 0xb4, 0xf9, 0x0c, 0x30, 0x9a, 0xb2, 0x01, 0xd1, 0x98, 0x05, 0x25, 0xd5, - 0x91, 0x04, 0x06, 0xd4, 0x62, 0x6e, 0x43, 0xf4, 0x00, 0x53, 0x22, 0xf4, 0x00, 0x52, 0xa3, 0x81, - 0x62, 0x66, 0x28, 0x46, 0x01, 0xaa, 0x21, 0x46, 0x03, 0xf0, 0xe7, 0xf9, 0x63, 0x6e, 0x00, 0x28, - 0x14, 0xbf, 0x4f, 0xf0, 0xff, 0x35, 0x0a, 0x25, 0xda, 0x07, 0x02, 0xd4, 0xa3, 0x89, 0x9b, 0x05, - 0x06, 0xd5, 0x28, 0x46, 0x08, 0xb0, 0x70, 0xbd, 0x28, 0x46, 0x03, 0xf0, 0x36, 0xf8, 0xd6, 0xe7, - 0xa0, 0x6d, 0x03, 0xf0, 0x70, 0xfb, 0x28, 0x46, 0x08, 0xb0, 0x70, 0xbd, 0xa0, 0x6d, 0x03, 0xf0, - 0x68, 0xfb, 0xb4, 0xf9, 0x0c, 0x30, 0x9a, 0xb2, 0xd2, 0xe7, 0x3c, 0x37, 0x01, 0x10, 0x02, 0x4b, - 0x01, 0x46, 0x18, 0x68, 0xff, 0xf7, 0xad, 0xbf, 0x00, 0xbf, 0x0c, 0x00, 0x00, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xf8, 0x00, 0xf0, 0x6d, 0xe9, 0x02, 0x45, 0x20, 0xf0, - 0x07, 0x01, 0x6f, 0xf0, 0x00, 0x0c, 0x10, 0xf0, 0x07, 0x04, 0x91, 0xf8, 0x20, 0xf0, 0x40, 0xf0, - 0x49, 0x80, 0x4f, 0xf0, 0x00, 0x04, 0x6f, 0xf0, 0x07, 0x00, 0xd1, 0xe9, 0x00, 0x23, 0x91, 0xf8, - 0x40, 0xf0, 0x00, 0xf1, 0x08, 0x00, 0x82, 0xfa, 0x4c, 0xf2, 0xa4, 0xfa, 0x8c, 0xf2, 0x83, 0xfa, - 0x4c, 0xf3, 0xa2, 0xfa, 0x8c, 0xf3, 0x4b, 0xbb, 0xd1, 0xe9, 0x02, 0x23, 0x82, 0xfa, 0x4c, 0xf2, - 0x00, 0xf1, 0x08, 0x00, 0xa4, 0xfa, 0x8c, 0xf2, 0x83, 0xfa, 0x4c, 0xf3, 0xa2, 0xfa, 0x8c, 0xf3, - 0xe3, 0xb9, 0xd1, 0xe9, 0x04, 0x23, 0x82, 0xfa, 0x4c, 0xf2, 0x00, 0xf1, 0x08, 0x00, 0xa4, 0xfa, - 0x8c, 0xf2, 0x83, 0xfa, 0x4c, 0xf3, 0xa2, 0xfa, 0x8c, 0xf3, 0x7b, 0xb9, 0xd1, 0xe9, 0x06, 0x23, - 0x01, 0xf1, 0x20, 0x01, 0x82, 0xfa, 0x4c, 0xf2, 0x00, 0xf1, 0x08, 0x00, 0xa4, 0xfa, 0x8c, 0xf2, - 0x83, 0xfa, 0x4c, 0xf3, 0xa2, 0xfa, 0x8c, 0xf3, 0x00, 0x2b, 0xc6, 0xd0, 0x00, 0x2a, 0x04, 0xbf, - 0x04, 0x30, 0x1a, 0x46, 0x12, 0xba, 0xb2, 0xfa, 0x82, 0xf2, 0xfd, 0xe8, 0x02, 0x45, 0x00, 0xeb, - 0xd2, 0x00, 0x70, 0x47, 0xd1, 0xe9, 0x00, 0x23, 0x04, 0xf0, 0x03, 0x05, 0xc4, 0xf1, 0x00, 0x00, - 0x4f, 0xea, 0xc5, 0x05, 0x14, 0xf0, 0x04, 0x0f, 0x91, 0xf8, 0x40, 0xf0, 0x0c, 0xfa, 0x05, 0xf5, - 0x62, 0xea, 0x05, 0x02, 0x1c, 0xbf, 0x63, 0xea, 0x05, 0x03, 0x62, 0x46, 0x4f, 0xf0, 0x00, 0x04, - 0xa9, 0xe7, 0x00, 0x00, 0x00, 0x00, 0x2d, 0xe9, 0xf0, 0x4f, 0x2d, 0xed, 0x06, 0x8b, 0xd3, 0xb0, - 0x1c, 0x46, 0x8b, 0x46, 0x17, 0x46, 0x81, 0x46, 0x03, 0xf0, 0xcb, 0xfa, 0x03, 0x68, 0x0c, 0x94, - 0x18, 0x46, 0x15, 0x93, 0xff, 0xf7, 0x7f, 0xff, 0x14, 0x90, 0xb9, 0xf1, 0x00, 0x0f, 0x04, 0xd0, - 0xd9, 0xf8, 0x38, 0x30, 0x00, 0x2b, 0x00, 0xf0, 0x0a, 0x82, 0xdb, 0xf8, 0x64, 0x30, 0xbb, 0xf9, - 0x0c, 0x20, 0x13, 0xf0, 0x01, 0x0f, 0x93, 0xb2, 0x02, 0xd1, 0x91, 0x05, 0x40, 0xf1, 0xd5, 0x86, - 0x9e, 0x04, 0x0a, 0xd4, 0xdb, 0xf8, 0x64, 0x10, 0x42, 0xf4, 0x00, 0x53, 0x21, 0xf4, 0x00, 0x51, - 0xab, 0xf8, 0x0c, 0x30, 0xcb, 0xf8, 0x64, 0x10, 0x9b, 0xb2, 0x1d, 0x07, 0x40, 0xf1, 0xca, 0x80, - 0xdb, 0xf8, 0x10, 0x20, 0x00, 0x2a, 0x00, 0xf0, 0xc5, 0x80, 0x03, 0xf0, 0x1a, 0x02, 0x0a, 0x2a, - 0x00, 0xf0, 0xce, 0x80, 0x00, 0x23, 0x9f, 0xed, 0x83, 0x7b, 0xcd, 0xe9, 0x27, 0x33, 0xcd, 0xe9, - 0x17, 0x33, 0xcd, 0xe9, 0x19, 0x33, 0x10, 0x93, 0x16, 0x93, 0x08, 0x93, 0x29, 0xab, 0x26, 0x93, - 0x98, 0x46, 0x3b, 0x78, 0x8d, 0xed, 0x12, 0x7b, 0x08, 0xee, 0x10, 0xba, 0x00, 0x2b, 0x00, 0xf0, - 0x78, 0x81, 0x3c, 0x46, 0x04, 0xe0, 0x14, 0xf8, 0x01, 0x3f, 0x00, 0x2b, 0x00, 0xf0, 0xc9, 0x80, - 0x25, 0x2b, 0xf8, 0xd1, 0xe5, 0x1b, 0x40, 0xf0, 0xc7, 0x80, 0x23, 0x78, 0x00, 0x2b, 0x00, 0xf0, - 0x68, 0x81, 0x00, 0x23, 0x09, 0x93, 0x8d, 0xf8, 0x7b, 0x30, 0x06, 0x93, 0x66, 0x1c, 0x4f, 0xf0, - 0xff, 0x33, 0x64, 0x78, 0x07, 0x93, 0x2b, 0x25, 0x4f, 0xf0, 0x20, 0x0a, 0x01, 0x36, 0xa4, 0xf1, - 0x20, 0x03, 0x5a, 0x2b, 0x00, 0xf2, 0xd3, 0x80, 0xdf, 0xe8, 0x13, 0xf0, 0x78, 0x02, 0xd1, 0x00, - 0xd1, 0x00, 0x72, 0x02, 0xd1, 0x00, 0xd1, 0x00, 0xd1, 0x00, 0x6a, 0x00, 0xd1, 0x00, 0xd1, 0x00, - 0x10, 0x02, 0x21, 0x02, 0xd1, 0x00, 0x1b, 0x02, 0x58, 0x02, 0xd1, 0x00, 0x52, 0x02, 0x5b, 0x00, - 0x5b, 0x00, 0x5b, 0x00, 0x5b, 0x00, 0x5b, 0x00, 0x5b, 0x00, 0x5b, 0x00, 0x5b, 0x00, 0x5b, 0x00, - 0xd1, 0x00, 0xd1, 0x00, 0xd1, 0x00, 0xd1, 0x00, 0xd1, 0x00, 0xd1, 0x00, 0xd1, 0x00, 0x5d, 0x01, - 0xd1, 0x00, 0xb3, 0x01, 0x90, 0x02, 0x5d, 0x01, 0x5d, 0x01, 0x5d, 0x01, 0xd1, 0x00, 0xd1, 0x00, - 0xd1, 0x00, 0xd1, 0x00, 0x8a, 0x02, 0xd1, 0x00, 0xd1, 0x00, 0xe9, 0x02, 0xd1, 0x00, 0xd1, 0x00, - 0xd1, 0x00, 0xc1, 0x01, 0xd1, 0x00, 0x25, 0x02, 0xd1, 0x00, 0xd1, 0x00, 0x20, 0x08, 0xd1, 0x00, - 0xd1, 0x00, 0xd1, 0x00, 0xd1, 0x00, 0xd1, 0x00, 0xd1, 0x00, 0xd1, 0x00, 0xd1, 0x00, 0x5d, 0x01, - 0xd1, 0x00, 0xb3, 0x01, 0xe7, 0x01, 0x5d, 0x01, 0x5d, 0x01, 0x5d, 0x01, 0xfe, 0x02, 0xe7, 0x01, - 0xad, 0x01, 0xd1, 0x00, 0x81, 0x02, 0xd1, 0x00, 0x1b, 0x03, 0x1d, 0x08, 0x07, 0x03, 0xad, 0x01, - 0xd1, 0x00, 0xc1, 0x01, 0x82, 0x00, 0x13, 0x08, 0xd1, 0x00, 0xd1, 0x00, 0xf2, 0x07, 0xd1, 0x00, - 0x82, 0x00, 0xa4, 0xf1, 0x30, 0x03, 0x00, 0x22, 0x16, 0xf8, 0x01, 0x4b, 0x02, 0xeb, 0x82, 0x02, - 0x03, 0xeb, 0x42, 0x02, 0xa4, 0xf1, 0x30, 0x03, 0x09, 0x2b, 0xf5, 0xd9, 0x09, 0x92, 0x8e, 0xe7, - 0x48, 0x46, 0x03, 0xf0, 0xee, 0xf9, 0x43, 0x68, 0x19, 0x93, 0x18, 0x46, 0xff, 0xf7, 0xa3, 0xfe, - 0x03, 0x46, 0x48, 0x46, 0x1c, 0x46, 0x1a, 0x93, 0x03, 0xf0, 0xe3, 0xf9, 0x82, 0x68, 0x17, 0x92, - 0x34, 0xb1, 0x17, 0x9b, 0x23, 0xb1, 0x17, 0x9b, 0x1b, 0x78, 0x00, 0x2b, 0x41, 0xf0, 0xd8, 0x80, - 0x34, 0x78, 0x73, 0xe7, 0x59, 0x46, 0x48, 0x46, 0x01, 0xf0, 0x2d, 0xfd, 0x00, 0x28, 0x41, 0xf0, - 0x72, 0x83, 0xbb, 0xf8, 0x0c, 0x30, 0x03, 0xf0, 0x1a, 0x02, 0x0a, 0x2a, 0x7f, 0xf4, 0x32, 0xaf, - 0xbb, 0xf9, 0x0e, 0x20, 0x00, 0x2a, 0xff, 0xf6, 0x2d, 0xaf, 0xdb, 0xf8, 0x64, 0x20, 0xd2, 0x07, - 0x02, 0xd4, 0x9e, 0x05, 0x41, 0xf1, 0x8d, 0x81, 0x23, 0x46, 0x3a, 0x46, 0x59, 0x46, 0x48, 0x46, - 0x01, 0xf0, 0xcf, 0xfc, 0x08, 0x90, 0x08, 0x98, 0x53, 0xb0, 0xbd, 0xec, 0x06, 0x8b, 0xbd, 0xe8, - 0xf0, 0x8f, 0xe5, 0x1b, 0x00, 0xf0, 0xa5, 0x80, 0xdd, 0xe9, 0x27, 0x32, 0x01, 0x33, 0x2a, 0x44, - 0x07, 0x2b, 0xcd, 0xe9, 0x27, 0x32, 0xc8, 0xf8, 0x00, 0x70, 0xc8, 0xf8, 0x04, 0x50, 0x06, 0xdc, - 0x08, 0xf1, 0x08, 0x08, 0x08, 0x9a, 0x23, 0x78, 0x2a, 0x44, 0x08, 0x92, 0x26, 0xe7, 0x18, 0xee, - 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x04, 0xf0, 0xd2, 0xfb, 0x00, 0x28, 0x41, 0xf0, 0x4c, 0x84, - 0x0d, 0xf1, 0xa4, 0x08, 0xee, 0xe7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x96, - 0x00, 0x2c, 0x7e, 0xd0, 0x00, 0x23, 0x1a, 0x46, 0x4f, 0xf0, 0x01, 0x0a, 0x8d, 0xf8, 0xe4, 0x40, - 0x8d, 0xf8, 0x7b, 0x30, 0x0b, 0x92, 0x07, 0x92, 0x0e, 0x92, 0x11, 0x92, 0x0f, 0x92, 0xcd, 0xf8, - 0x28, 0xa0, 0x39, 0xaf, 0x06, 0x9b, 0x06, 0x99, 0x13, 0xf0, 0x02, 0x03, 0x18, 0xbf, 0x0a, 0xf1, - 0x02, 0x0a, 0x11, 0xf0, 0x84, 0x0b, 0x05, 0xd1, 0x09, 0x99, 0xa1, 0xeb, 0x0a, 0x06, 0x00, 0x2e, - 0x00, 0xf3, 0xd4, 0x83, 0x28, 0x9d, 0x72, 0xb1, 0x27, 0x9a, 0x01, 0x32, 0x01, 0x35, 0x0d, 0xf1, - 0x7b, 0x00, 0x01, 0x21, 0x07, 0x2a, 0xcd, 0xe9, 0x27, 0x25, 0xc8, 0xe9, 0x00, 0x01, 0x00, 0xf3, - 0x05, 0x84, 0x08, 0xf1, 0x08, 0x08, 0x6b, 0xb1, 0x27, 0x9b, 0x01, 0x33, 0x02, 0x35, 0x1f, 0xa9, - 0x02, 0x22, 0x07, 0x2b, 0xcd, 0xe9, 0x27, 0x35, 0xc8, 0xe9, 0x00, 0x12, 0x00, 0xf3, 0x06, 0x84, - 0x08, 0xf1, 0x08, 0x08, 0xbb, 0xf1, 0x80, 0x0f, 0x00, 0xf0, 0x96, 0x82, 0x07, 0x9b, 0x0a, 0x9a, - 0x9e, 0x1a, 0x00, 0x2e, 0x00, 0xf3, 0xd8, 0x82, 0x06, 0x9b, 0xde, 0x05, 0x00, 0xf1, 0x30, 0x82, - 0x27, 0x9b, 0x0a, 0x9a, 0xc8, 0xf8, 0x00, 0x70, 0x01, 0x33, 0x15, 0x44, 0x07, 0x2b, 0x28, 0x95, - 0xc8, 0xf8, 0x04, 0x20, 0x27, 0x93, 0x00, 0xf3, 0x2d, 0x83, 0x08, 0xf1, 0x08, 0x08, 0x06, 0x9b, - 0x5c, 0x07, 0x05, 0xd5, 0x09, 0x9b, 0xa3, 0xeb, 0x0a, 0x04, 0x00, 0x2c, 0x00, 0xf3, 0xec, 0x83, - 0xdd, 0xe9, 0x08, 0x32, 0x52, 0x45, 0xac, 0xbf, 0x9b, 0x18, 0x53, 0x44, 0x08, 0x93, 0x00, 0x2d, - 0x40, 0xf0, 0xef, 0x82, 0x00, 0x23, 0x27, 0x93, 0x0b, 0x9b, 0x1b, 0xb1, 0x0b, 0x99, 0x48, 0x46, - 0x02, 0xf0, 0x77, 0xfe, 0x0d, 0xf1, 0xa4, 0x08, 0x0d, 0x9f, 0x3b, 0x78, 0x00, 0x2b, 0x7f, 0xf4, - 0x88, 0xae, 0x28, 0x9b, 0x18, 0xee, 0x10, 0xba, 0x00, 0x2b, 0x40, 0xf0, 0xf7, 0x87, 0x00, 0x23, - 0x27, 0x93, 0x00, 0xf0, 0x8f, 0xbc, 0x0c, 0x9b, 0x0d, 0x96, 0x07, 0x33, 0x23, 0xf0, 0x07, 0x03, - 0xb3, 0xec, 0x02, 0x7b, 0x8d, 0xed, 0x12, 0x7b, 0xdd, 0xe9, 0x12, 0x56, 0x0c, 0x93, 0x26, 0xf0, - 0x00, 0x43, 0x09, 0xee, 0x90, 0x3a, 0x09, 0xee, 0x10, 0x5a, 0x5b, 0xec, 0x19, 0xab, 0xb8, 0x4b, - 0x50, 0x46, 0x59, 0x46, 0x4f, 0xf0, 0xff, 0x32, 0x05, 0xf0, 0x03, 0xfa, 0x00, 0x28, 0x40, 0xf0, - 0x52, 0x85, 0xb3, 0x4b, 0x4f, 0xf0, 0xff, 0x32, 0x50, 0x46, 0x59, 0x46, 0x05, 0xf0, 0xdb, 0xf9, - 0x00, 0x28, 0x40, 0xf0, 0x48, 0x85, 0x00, 0x22, 0x00, 0x23, 0x28, 0x46, 0x31, 0x46, 0x05, 0xf0, - 0xc8, 0xf9, 0x00, 0x28, 0x41, 0xf0, 0x96, 0x81, 0x9d, 0xf8, 0x7b, 0x20, 0xaa, 0x4f, 0xaa, 0x4b, - 0x06, 0x98, 0x00, 0x21, 0x4f, 0xf0, 0x03, 0x0a, 0x20, 0xf0, 0x80, 0x00, 0x0b, 0x91, 0x06, 0x90, - 0x47, 0x2c, 0xc8, 0xbf, 0x1f, 0x46, 0xcd, 0xf8, 0x28, 0xa0, 0x07, 0x91, 0x0e, 0x91, 0x11, 0x91, - 0x0f, 0x91, 0x00, 0x2a, 0x3f, 0xf4, 0x3e, 0xaf, 0x0a, 0xf1, 0x01, 0x0a, 0x3a, 0xe7, 0x48, 0x46, - 0x02, 0xf0, 0x7b, 0xfd, 0xf1, 0xe5, 0x06, 0x9b, 0x34, 0x78, 0x43, 0xf0, 0x20, 0x03, 0x06, 0x93, - 0x44, 0xe6, 0x0c, 0x9b, 0x0d, 0x96, 0x53, 0xf8, 0x04, 0x2b, 0x8d, 0xf8, 0xe4, 0x20, 0x00, 0x21, - 0x0a, 0x46, 0x4f, 0xf0, 0x01, 0x0a, 0x0c, 0x93, 0x8d, 0xf8, 0x7b, 0x10, 0x1a, 0xe7, 0x0c, 0x9d, - 0x0d, 0x96, 0x55, 0xf8, 0x04, 0x7b, 0x00, 0x26, 0x8d, 0xf8, 0x7b, 0x60, 0x00, 0x2f, 0x00, 0xf0, - 0x83, 0x86, 0x07, 0x9a, 0x13, 0x46, 0x01, 0x33, 0x00, 0xf0, 0x2d, 0x87, 0x31, 0x46, 0x38, 0x46, - 0x03, 0xf0, 0xc9, 0xfb, 0x0b, 0x90, 0x00, 0x28, 0x01, 0xf0, 0xe0, 0x81, 0x0b, 0x9b, 0x07, 0x96, - 0xda, 0x1b, 0x0a, 0x92, 0x33, 0x46, 0x22, 0xea, 0xe2, 0x7a, 0x0c, 0x95, 0x9d, 0xf8, 0x7b, 0x20, - 0x0b, 0x93, 0x0e, 0x93, 0x11, 0x93, 0x0f, 0x93, 0xbb, 0xe7, 0x06, 0x9b, 0x0d, 0x96, 0x9d, 0x06, - 0x40, 0xf1, 0xad, 0x80, 0x0c, 0x9b, 0x07, 0x33, 0x23, 0xf0, 0x07, 0x03, 0x19, 0x46, 0xf1, 0xe8, - 0x02, 0x23, 0x0c, 0x91, 0x92, 0x46, 0x9b, 0x46, 0x00, 0x2a, 0x73, 0xf1, 0x00, 0x03, 0xc0, 0xf2, - 0xaf, 0x80, 0x07, 0x9b, 0x01, 0x33, 0x00, 0xf0, 0xad, 0x85, 0x06, 0x9b, 0x23, 0xf0, 0x80, 0x05, - 0x5a, 0xea, 0x0b, 0x03, 0x40, 0xf0, 0xb1, 0x82, 0x07, 0x9b, 0x00, 0x2b, 0x40, 0xf0, 0xb4, 0x82, - 0x06, 0x95, 0x00, 0x23, 0x07, 0x93, 0x0a, 0x93, 0x52, 0xaf, 0xc3, 0xe0, 0x0c, 0x9b, 0x53, 0xf8, - 0x04, 0x2b, 0x09, 0x92, 0x00, 0x2a, 0x80, 0xf2, 0x71, 0x84, 0x09, 0x9a, 0x0c, 0x93, 0x52, 0x42, - 0x09, 0x92, 0x06, 0x9b, 0x34, 0x78, 0x43, 0xf0, 0x04, 0x03, 0x06, 0x93, 0xd6, 0xe5, 0x34, 0x78, - 0x8d, 0xf8, 0x7b, 0x50, 0xd2, 0xe5, 0x7b, 0xa3, 0x76, 0x09, 0x73, 0xfe, 0xac, 0xc3, 0xe9, 0x47, - 0x27, 0xb8, 0x0e, 0x75, 0x3f, 0x70, 0x26, 0x19, 0x1c, 0xe7, 0x11, 0xbe, 0x33, 0xa0, 0x7f, 0xdd, - 0x12, 0x1f, 0xcc, 0x3a, 0xd2, 0x17, 0x31, 0x53, 0x3e, 0x4e, 0x04, 0xf6, 0x12, 0xe0, 0xbe, 0xca, - 0x9e, 0xaa, 0xdd, 0xe3, 0x3d, 0xda, 0xd1, 0x52, 0xe7, 0x84, 0xfa, 0x55, 0xf4, 0x99, 0xbd, 0x91, - 0xfa, 0x44, 0x17, 0xca, 0x4d, 0x71, 0xed, 0x66, 0x87, 0xd7 + 0xbe,0xef,0xed,0x05,0x20,0x2e,0x94,0x68,0x5a,0x01,0x1f,0xea,0x24,0x02,0x10,0x00, + 0xc0,0x00,0x00,0x00,0x1f,0xe0,0x48,0x49,0x53,0x57,0x45,0x44,0x47,0x44,0x01,0x00, + 0x00,0x00,0x10,0x00,0xc0,0x00,0x00,0x00,0x83,0xa0,0x10,0x00,0xc5,0x54,0x00,0x00, + 0x00,0x00,0x01,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x20,0x02,0x20,0x55,0xc5,0x00,0x10,0xa5,0xc3, + 0x00,0x10,0x93,0xc5,0x00,0x10,0x95,0xc5,0x00,0x10,0x97,0xc5,0x00,0x10,0x99,0xc5, + 0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x9b,0xc5,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9d,0xc5, + 0x00,0x10,0x89,0xc7,0x00,0x10,0xa1,0xc5,0x00,0x10,0xa3,0xc5,0x00,0x10,0xa5,0xc5, + 0x00,0x10,0xa7,0xc5,0x00,0x10,0xa9,0xc5,0x00,0x10,0xab,0xc5,0x00,0x10,0xad,0xc5, + 0x00,0x10,0xaf,0xc5,0x00,0x10,0xb1,0xc5,0x00,0x10,0xb3,0xc5,0x00,0x10,0xb5,0xc5, + 0x00,0x10,0xb7,0xc5,0x00,0x10,0xb9,0xc5,0x00,0x10,0xbb,0xc5,0x00,0x10,0xbd,0xc5, + 0x00,0x10,0xbf,0xc5,0x00,0x10,0xc1,0xc5,0x00,0x10,0xc3,0xc5,0x00,0x10,0xc5,0xc5, + 0x00,0x10,0xc7,0xc5,0x00,0x10,0xc9,0xc5,0x00,0x10,0xcb,0xc5,0x00,0x10,0xcd,0xc5, + 0x00,0x10,0xcf,0xc5,0x00,0x10,0x49,0xc5,0x00,0x10,0x4f,0xc5,0x00,0x10,0xd5,0xc5, + 0x00,0x10,0xd7,0xc5,0x00,0x10,0xd9,0xc5,0x00,0x10,0xdb,0xc5,0x00,0x10,0xdd,0xc5, + 0x00,0x10,0xdf,0xc5,0x00,0x10,0xe1,0xc5,0x00,0x10,0xe3,0xc5,0x00,0x10,0xe5,0xc5, + 0x00,0x10,0xe7,0xc5,0x00,0x10,0xe9,0xc5,0x00,0x10,0xeb,0xc5,0x00,0x10,0xed,0xc5, + 0x00,0x10,0xef,0xc5,0x00,0x10,0xf1,0xc5,0x00,0x10,0xf3,0xc5,0x00,0x10,0xf5,0xc5, + 0x00,0x10,0xf7,0xc5,0x00,0x10,0xf9,0xc5,0x00,0x10,0xfb,0xc5,0x00,0x10,0xfd,0xc5, + 0x00,0x10,0xff,0xc5,0x00,0x10,0x01,0xc6,0x00,0x10,0x03,0xc6,0x00,0x10,0x05,0xc6, + 0x00,0x10,0x07,0xc6,0x00,0x10,0x09,0xc6,0x00,0x10,0x0b,0xc6,0x00,0x10,0x0d,0xc6, + 0x00,0x10,0x0f,0xc6,0x00,0x10,0x11,0xc6,0x00,0x10,0x13,0xc6,0x00,0x10,0x15,0xc6, + 0x00,0x10,0x17,0xc6,0x00,0x10,0x19,0xc6,0x00,0x10,0x1b,0xc6,0x00,0x10,0x1d,0xc6, + 0x00,0x10,0x1f,0xc6,0x00,0x10,0x21,0xc6,0x00,0x10,0x23,0xc6,0x00,0x10,0x25,0xc6, + 0x00,0x10,0x27,0xc6,0x00,0x10,0x29,0xc6,0x00,0x10,0x2b,0xc6,0x00,0x10,0x2d,0xc6, + 0x00,0x10,0x2f,0xc6,0x00,0x10,0x31,0xc6,0x00,0x10,0x33,0xc6,0x00,0x10,0x35,0xc6, + 0x00,0x10,0x37,0xc6,0x00,0x10,0x39,0xc6,0x00,0x10,0x3b,0xc6,0x00,0x10,0x3d,0xc6, + 0x00,0x10,0x3f,0xc6,0x00,0x10,0x41,0xc6,0x00,0x10,0x43,0xc6,0x00,0x10,0x45,0xc6, + 0x00,0x10,0x47,0xc6,0x00,0x10,0x49,0xc6,0x00,0x10,0x4b,0xc6,0x00,0x10,0x4d,0xc6, + 0x00,0x10,0x4f,0xc6,0x00,0x10,0x51,0xc6,0x00,0x10,0x53,0xc6,0x00,0x10,0x55,0xc6, + 0x00,0x10,0x57,0xc6,0x00,0x10,0x59,0xc6,0x00,0x10,0x5b,0xc6,0x00,0x10,0x5d,0xc6, + 0x00,0x10,0x5f,0xc6,0x00,0x10,0x61,0xc6,0x00,0x10,0x10,0xb5,0x05,0x4c,0x23,0x78, + 0x33,0xb9,0x04,0x4b,0x13,0xb1,0x04,0x48,0xaf,0xf3,0x00,0x80,0x01,0x23,0x23,0x70, + 0x10,0xbd,0xc4,0x09,0x00,0x20,0x00,0x00,0x00,0x00,0xe0,0x39,0x01,0x10,0x08,0xb5, + 0x03,0x4b,0x1b,0xb1,0x03,0x49,0x03,0x48,0xaf,0xf3,0x00,0x80,0x08,0xbd,0x00,0x00, + 0x00,0x00,0xc8,0x09,0x00,0x20,0xe0,0x39,0x01,0x10,0xf8,0xb5,0x0e,0x48,0x0e,0x4d, + 0x0f,0x4f,0x01,0xf0,0x44,0xfb,0x0e,0x48,0x01,0xf0,0x41,0xfb,0x00,0x24,0x00,0x20, + 0x00,0xf0,0x9d,0xf8,0x28,0x46,0x00,0xf0,0x5e,0xfb,0x00,0x20,0x00,0xf0,0xb5,0xf8, + 0x28,0x46,0x00,0xf0,0x58,0xfb,0x66,0x1c,0x21,0x46,0x38,0x46,0x01,0xf0,0xcd,0xfa, + 0x34,0x46,0xec,0xe7,0x00,0xbf,0x00,0x36,0x01,0x10,0x20,0xa1,0x07,0x00,0x47,0x36, + 0x01,0x10,0x24,0x36,0x01,0x10,0x08,0xb5,0x03,0x46,0x01,0x48,0x01,0xf0,0xbd,0xfa, + 0xfe,0xe7,0x53,0x36,0x01,0x10,0x02,0x4b,0x4f,0xf4,0xe1,0x31,0x18,0x68,0x00,0xf0, + 0x46,0xbe,0x00,0x00,0x00,0x20,0x08,0xb5,0xff,0xf7,0xf5,0xff,0x00,0x28,0x04,0xda, + 0x4f,0x22,0x07,0x49,0x08,0x48,0xff,0xf7,0xe6,0xff,0x00,0xf0,0xc4,0xf8,0x08,0xb1, + 0x54,0x22,0xf6,0xe7,0x00,0xf0,0x9f,0xf8,0x08,0xb1,0x59,0x22,0xf1,0xe7,0x08,0xbd, + 0x00,0xbf,0x6c,0x36,0x01,0x10,0xaa,0x36,0x01,0x10,0x00,0xbf,0x70,0x47,0x4f,0xf0, + 0xff,0x30,0x70,0x47,0x4f,0xf0,0xff,0x30,0x70,0x47,0x4f,0xf0,0xff,0x30,0x70,0x47, + 0x4f,0xf0,0xff,0x30,0x70,0x47,0x2d,0xe9,0xf0,0x41,0x16,0x46,0x04,0x46,0xc0,0xb9, + 0x10,0x4f,0x0d,0x46,0xb4,0x42,0xa8,0x46,0x10,0xda,0x38,0x46,0x00,0xf0,0xc3,0xfe, + 0xc1,0xb2,0x29,0x70,0x38,0x46,0x00,0xf0,0xca,0xfe,0x15,0xf8,0x01,0x3b,0x0d,0x2b, + 0x04,0xf1,0x01,0x04,0xee,0xd1,0x0a,0x23,0x88,0xf8,0x00,0x30,0x20,0x46,0xbd,0xe8, + 0xf0,0x81,0x01,0xf0,0x56,0xf9,0x09,0x23,0x03,0x60,0x4f,0xf0,0xff,0x34,0xf5,0xe7, + 0x00,0xbf,0x00,0x00,0x02,0x40,0x01,0x38,0x01,0x28,0x38,0xb5,0x18,0xd9,0x01,0xf0, + 0x48,0xf9,0x09,0x23,0x03,0x60,0x4f,0xf0,0xff,0x32,0x0f,0xe0,0x1c,0x78,0x0a,0x2c, + 0x03,0xd1,0x44,0x68,0x24,0x06,0xfc,0xd4,0x05,0x62,0x44,0x68,0x24,0x06,0xfc,0xd4, + 0x13,0xf8,0x01,0x4b,0x04,0x62,0x5c,0x1a,0x94,0x42,0xef,0xdb,0x10,0x46,0x38,0xbd, + 0x02,0x48,0x0b,0x46,0x0d,0x25,0xf6,0xe7,0x00,0xbf,0x00,0x00,0x02,0x40,0x0a,0x4b, + 0x1b,0x68,0x83,0x42,0x10,0xb5,0x04,0x46,0x04,0xd8,0x08,0x49,0x09,0x48,0x3d,0x22, + 0xff,0xf7,0x71,0xff,0x08,0x4a,0x0c,0x23,0x03,0xfb,0x04,0xf0,0x13,0x18,0xbd,0xe8, + 0x10,0x40,0x59,0x68,0x10,0x58,0x00,0xf0,0x1a,0xbc,0xc8,0x36,0x01,0x10,0xdc,0x36, + 0x01,0x10,0x1b,0x37,0x01,0x10,0xb0,0x36,0x01,0x10,0x0a,0x4b,0x1b,0x68,0x83,0x42, + 0x10,0xb5,0x04,0x46,0x04,0xd8,0x08,0x49,0x09,0x48,0x4b,0x22,0xff,0xf7,0x53,0xff, + 0x08,0x4a,0x0c,0x23,0x03,0xfb,0x04,0xf0,0x13,0x18,0xbd,0xe8,0x10,0x40,0x59,0x68, + 0x10,0x58,0x00,0xf0,0xef,0xbb,0xc8,0x36,0x01,0x10,0xdc,0x36,0x01,0x10,0x1b,0x37, + 0x01,0x10,0xb0,0x36,0x01,0x10,0xf7,0xb5,0x0d,0x4b,0x0d,0x4e,0x1b,0x68,0x01,0x93, + 0x00,0x24,0x25,0x46,0x0c,0x27,0x01,0x9b,0xa3,0x42,0x02,0xd8,0x28,0x46,0x03,0xb0, + 0xf0,0xbd,0x20,0x46,0xff,0xf7,0xd1,0xff,0x07,0xfb,0x04,0x60,0x00,0xf0,0xc5,0xfb, + 0x00,0x28,0x18,0xbf,0x6f,0xf0,0x07,0x05,0x01,0x34,0xec,0xe7,0x00,0xbf,0xc8,0x36, + 0x01,0x10,0xb0,0x36,0x01,0x10,0xf7,0xb5,0x0b,0x4b,0x0b,0x4e,0x1b,0x68,0x01,0x93, + 0x00,0x24,0x25,0x46,0x0c,0x27,0x01,0x9b,0xa3,0x42,0x02,0xd8,0x28,0x46,0x03,0xb0, + 0xf0,0xbd,0x07,0xfb,0x04,0x60,0x00,0xf0,0xa8,0xfb,0x00,0x28,0x18,0xbf,0x6f,0xf0, + 0x07,0x05,0x01,0x34,0xef,0xe7,0xcc,0x36,0x01,0x10,0xd0,0x36,0x01,0x10,0x00,0x20, + 0x00,0xf0,0xc2,0xbb,0x01,0x20,0x00,0xf0,0xbf,0xbb,0x43,0x48,0x85,0x46,0x43,0x48, + 0x80,0x47,0x80,0xb9,0x43,0x49,0x43,0x4a,0x44,0x4b,0x9b,0x1a,0x03,0xdd,0x04,0x3b, + 0xc8,0x58,0xd0,0x50,0xfb,0xdc,0x41,0x49,0x42,0x4a,0x00,0x20,0x91,0x42,0xbc,0xbf, + 0x41,0xf8,0x04,0x0b,0xfa,0xe7,0x3f,0x48,0x80,0x47,0x3f,0x48,0x80,0x47,0x3f,0x48, + 0x80,0x47,0xff,0xf7,0xfe,0xff,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7, + 0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7, + 0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7, + 0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7, + 0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7, + 0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7, + 0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7, + 0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7, + 0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7, + 0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7, + 0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7, + 0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7, + 0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7, + 0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0x00,0x00,0x00,0x20,0x02,0x20,0x01,0xc7, + 0x00,0x10,0xec,0x39,0x01,0x10,0x00,0x00,0x00,0x20,0xc4,0x09,0x00,0x20,0xc4,0x09, + 0x00,0x20,0x4c,0x0b,0x00,0x20,0x05,0xc7,0x00,0x10,0xb9,0xd6,0x00,0x10,0x05,0xc3, + 0x00,0x10,0x08,0xb5,0x0a,0x4b,0x19,0x68,0x02,0x46,0x09,0xb9,0x09,0x49,0x19,0x60, + 0x18,0x68,0x08,0x49,0x02,0x44,0x8a,0x42,0x06,0xd9,0x01,0xf0,0x02,0xf8,0x0c,0x23, + 0x03,0x60,0x4f,0xf0,0xff,0x30,0x08,0xbd,0x1a,0x60,0xfc,0xe7,0x00,0xbf,0xe0,0x09, + 0x00,0x20,0x50,0x0b,0x00,0x20,0x00,0x10,0x02,0x20,0x4f,0xf0,0x80,0x43,0x1a,0x46, + 0x99,0x68,0x01,0xf4,0x60,0x61,0xb1,0xf5,0xc0,0x6f,0x0c,0xd0,0xb1,0xf5,0x20,0x6f, + 0x07,0x4b,0x08,0xbf,0x4f,0xf4,0xe1,0x03,0x92,0x68,0xc2,0xf3,0x82,0x12,0xd3,0x40, + 0x04,0x4a,0x13,0x60,0x70,0x47,0x4f,0xf4,0xfa,0x53,0xf5,0xe7,0x00,0xbf,0x00,0x0e, + 0x27,0x07,0x04,0x00,0x00,0x20,0x00,0x20,0x70,0x47,0x08,0xb5,0x1d,0x4b,0x1d,0x4a, + 0x9a,0x60,0x62,0xb6,0xd3,0xf8,0x88,0x20,0x42,0xf4,0x70,0x02,0xc3,0xf8,0x88,0x20, + 0xbf,0xf3,0x4f,0x8f,0xbf,0xf3,0x6f,0x8f,0x00,0x20,0x00,0xf0,0x0a,0xfa,0xff,0xf7, + 0xcc,0xff,0x00,0x20,0x00,0xf0,0xb9,0xf9,0x01,0x20,0x00,0xf0,0xb6,0xf9,0x12,0x4b, + 0xd3,0xf8,0xc0,0x20,0x4f,0xf0,0xff,0x32,0xc3,0xf8,0xc0,0x20,0xd3,0xf8,0xb8,0x10, + 0xc3,0xf8,0xb8,0x20,0x19,0x6e,0x1a,0x66,0x59,0x6e,0x00,0x21,0x59,0x66,0x03,0xf5, + 0x80,0x53,0xd3,0xf8,0xc0,0x00,0xc3,0xf8,0xc0,0x20,0xd3,0xf8,0xb8,0x00,0xc3,0xf8, + 0xb8,0x20,0x18,0x6e,0x1a,0x66,0x5a,0x6e,0x59,0x66,0xff,0xf7,0xfc,0xfd,0x08,0xbd, + 0x00,0xbf,0x00,0xed,0x00,0xe0,0x00,0xc1,0x00,0x10,0x00,0x80,0x00,0x40,0x80,0xb5, + 0x00,0xaf,0x00,0xf0,0x02,0xf8,0x00,0xbf,0x80,0xbd,0x80,0xb5,0x00,0xaf,0x0f,0x4b, + 0x1b,0x68,0x03,0xf4,0x80,0x33,0x00,0x2b,0x16,0xd0,0x0d,0x4b,0x1b,0x68,0x00,0x2b, + 0x05,0xdd,0x0b,0x4b,0x1b,0x68,0x01,0x3b,0x0a,0x4a,0x13,0x60,0x0c,0xe0,0x00,0xf0, + 0xf2,0xf8,0x08,0x4b,0x1b,0x68,0x00,0x2b,0x06,0xd0,0x06,0x4b,0x1b,0x68,0x00,0x20, + 0x98,0x47,0x04,0x4b,0x00,0x22,0x1a,0x60,0x00,0xbf,0x80,0xbd,0x00,0xbf,0x10,0xe0, + 0x00,0xe0,0x08,0x00,0x00,0x20,0xec,0x09,0x00,0x20,0xb0,0xb5,0x86,0xb0,0x00,0xaf, + 0x78,0x60,0x34,0x4b,0x9b,0x68,0x7b,0x61,0x33,0x4b,0x1b,0x68,0x23,0xf4,0x80,0x33, + 0x32,0x4a,0x13,0x60,0x30,0x4b,0x1b,0x68,0x03,0xf0,0x01,0x03,0x00,0x2b,0x11,0xd1, + 0x2d,0x4b,0x6f,0xf0,0x7f,0x42,0x5a,0x60,0x2b,0x4b,0x6f,0xf0,0x7f,0x42,0x9a,0x60, + 0x29,0x4b,0x05,0x22,0x1a,0x60,0x6f,0xf0,0x7f,0x43,0x7b,0x61,0x4f,0xf0,0x80,0x73, + 0x3b,0x61,0x03,0xe0,0x24,0x4b,0x5b,0x68,0x01,0x33,0x3b,0x61,0x7b,0x68,0x18,0x46, + 0x4f,0xf0,0x00,0x01,0x22,0x4b,0x1b,0x68,0x1a,0x46,0x4f,0xf0,0x00,0x03,0x02,0xfb, + 0x01,0xf5,0x00,0xfb,0x03,0xf4,0x2c,0x44,0xa0,0xfb,0x02,0x01,0x63,0x18,0x19,0x46, + 0x1c,0x4a,0x4f,0xf0,0x00,0x03,0x06,0xf0,0x52,0xfd,0x02,0x46,0x0b,0x46,0x13,0x46, + 0xfb,0x60,0xfa,0x68,0x3b,0x69,0xb2,0xfb,0xf3,0xf3,0x1a,0x46,0x16,0x4b,0x1a,0x60, + 0xfb,0x68,0x3a,0x69,0xb3,0xfb,0xf2,0xf2,0x39,0x69,0x01,0xfb,0x02,0xf2,0x9b,0x1a, + 0xbb,0x60,0xba,0x68,0x7b,0x69,0x9a,0x42,0x0c,0xd3,0x0e,0x4b,0x1b,0x68,0x01,0x33, + 0x0d,0x4a,0x13,0x60,0x7a,0x69,0xbb,0x68,0xd2,0x1a,0x3b,0x69,0x13,0x44,0x0a,0x4a, + 0x13,0x60,0x04,0xe0,0x7a,0x69,0xbb,0x68,0xd3,0x1a,0x07,0x4a,0x13,0x60,0x00,0xbf, + 0x18,0x37,0xbd,0x46,0xb0,0xbd,0x10,0xe0,0x00,0xe0,0xe8,0x09,0x00,0x20,0x04,0x00, + 0x00,0x20,0x40,0x42,0x0f,0x00,0x08,0x00,0x00,0x20,0xe4,0x09,0x00,0x20,0x80,0xb5, + 0x82,0xb0,0x00,0xaf,0x78,0x60,0x39,0x60,0x10,0x4a,0x3b,0x68,0x13,0x60,0x0f,0x4b, + 0x1b,0x68,0x00,0x2b,0x02,0xdd,0x6f,0xf0,0x05,0x03,0x12,0xe0,0x7b,0x68,0x00,0x2b, + 0x01,0xd1,0x00,0x23,0x0d,0xe0,0x78,0x68,0xff,0xf7,0x6f,0xff,0x08,0x4b,0x1b,0x68, + 0x00,0x2b,0x05,0xdd,0x07,0x4b,0x1b,0x68,0x06,0x4a,0x43,0xf0,0x02,0x03,0x13,0x60, + 0x00,0x23,0x18,0x46,0x08,0x37,0xbd,0x46,0x80,0xbd,0xec,0x09,0x00,0x20,0x08,0x00, + 0x00,0x20,0x10,0xe0,0x00,0xe0,0x80,0xb5,0x00,0xaf,0x16,0x4b,0x1b,0x68,0x00,0x2b, + 0x0c,0xda,0x15,0x4b,0x1b,0x68,0x00,0x2b,0x06,0xd0,0x13,0x4b,0x1b,0x68,0x00,0x20, + 0x98,0x47,0x11,0x4b,0x00,0x22,0x1a,0x60,0x00,0x23,0x1a,0xe0,0x0e,0x4b,0x1b,0x68, + 0x00,0x2b,0x14,0xd1,0x0e,0x4b,0x9a,0x68,0x0e,0x4b,0x1b,0x68,0x9a,0x42,0x0e,0xd8, + 0x00,0xf0,0x19,0xf8,0x09,0x4b,0x1b,0x68,0x00,0x2b,0x06,0xd0,0x07,0x4b,0x1b,0x68, + 0x00,0x20,0x98,0x47,0x05,0x4b,0x00,0x22,0x1a,0x60,0x00,0x23,0x01,0xe0,0x6f,0xf0, + 0x05,0x03,0x18,0x46,0x80,0xbd,0x08,0x00,0x00,0x20,0xec,0x09,0x00,0x20,0x10,0xe0, + 0x00,0xe0,0xe4,0x09,0x00,0x20,0x80,0xb5,0x00,0xaf,0x0a,0x4b,0x1b,0x68,0x00,0x2b, + 0x07,0xd0,0x08,0x4b,0x1b,0x68,0x6f,0xf0,0x0f,0x00,0x98,0x47,0x06,0x4b,0x00,0x22, + 0x1a,0x60,0x05,0x4a,0x06,0x4b,0x1b,0x68,0x13,0x60,0x05,0x4b,0x4f,0xf0,0xff,0x32, + 0x1a,0x60,0x00,0xbf,0x80,0xbd,0xec,0x09,0x00,0x20,0x10,0xe0,0x00,0xe0,0xe8,0x09, + 0x00,0x20,0x08,0x00,0x00,0x20,0x80,0xb5,0x82,0xb0,0x00,0xaf,0x78,0x60,0x16,0x4b, + 0x1b,0x68,0x00,0x2b,0x02,0xdd,0x6f,0xf0,0x05,0x03,0x21,0xe0,0x7b,0x68,0x00,0x2b, + 0x01,0xd1,0x00,0x23,0x1c,0xe0,0x78,0x68,0xff,0xf7,0xef,0xfe,0x0a,0xe0,0x0f,0x4b, + 0x1b,0x68,0x03,0xf4,0x80,0x33,0x00,0x2b,0x04,0xd0,0x0b,0x4b,0x1b,0x68,0x01,0x3b, + 0x0a,0x4a,0x13,0x60,0x09,0x4b,0x1b,0x68,0x00,0x2b,0xf0,0xdc,0x00,0xbf,0x07,0x4b, + 0x9a,0x68,0x07,0x4b,0x1b,0x68,0x9a,0x42,0xf9,0xd8,0xff,0xf7,0xb4,0xff,0x00,0x23, + 0x18,0x46,0x08,0x37,0xbd,0x46,0x80,0xbd,0x00,0xbf,0x08,0x00,0x00,0x20,0x10,0xe0, + 0x00,0xe0,0xe4,0x09,0x00,0x20,0x80,0xb4,0x83,0xb0,0x00,0xaf,0x03,0x46,0xfb,0x71, + 0xfb,0x79,0x1f,0x2b,0x0f,0xd9,0xfb,0x79,0x20,0x3b,0xfb,0x71,0x4f,0xf0,0x80,0x43, + 0x9b,0x6c,0xfa,0x79,0x01,0x21,0x01,0xfa,0x02,0xf2,0x11,0x46,0x4f,0xf0,0x80,0x42, + 0x0b,0x43,0x93,0x64,0x0b,0xe0,0x4f,0xf0,0x80,0x43,0x5b,0x6a,0xfa,0x79,0x01,0x21, + 0x01,0xfa,0x02,0xf2,0x11,0x46,0x4f,0xf0,0x80,0x42,0x0b,0x43,0x53,0x62,0x00,0xbf, + 0x0c,0x37,0xbd,0x46,0x5d,0xf8,0x04,0x7b,0x70,0x47,0x80,0xb4,0x83,0xb0,0x00,0xaf, + 0x03,0x46,0xfb,0x71,0xfb,0x79,0x1f,0x2b,0x10,0xd9,0xfb,0x79,0x20,0x3b,0xfb,0x71, + 0x4f,0xf0,0x80,0x43,0x9b,0x6c,0xfa,0x79,0x01,0x21,0x01,0xfa,0x02,0xf2,0xd2,0x43, + 0x11,0x46,0x4f,0xf0,0x80,0x42,0x0b,0x40,0x93,0x64,0x0c,0xe0,0x4f,0xf0,0x80,0x43, + 0x5b,0x6a,0xfa,0x79,0x01,0x21,0x01,0xfa,0x02,0xf2,0xd2,0x43,0x11,0x46,0x4f,0xf0, + 0x80,0x42,0x0b,0x40,0x53,0x62,0x00,0xbf,0x0c,0x37,0xbd,0x46,0x5d,0xf8,0x04,0x7b, + 0x70,0x47,0x80,0xb5,0x82,0xb0,0x00,0xaf,0x78,0x60,0x00,0x21,0x4f,0xf4,0x7a,0x70, + 0xff,0xf7,0xe5,0xfe,0x4f,0xf0,0x80,0x43,0x9a,0x68,0x7b,0x68,0x13,0x40,0x00,0x2b, + 0x03,0xd0,0xff,0xf7,0x40,0xff,0x00,0x23,0x07,0xe0,0xff,0xf7,0x04,0xff,0x03,0x46, + 0x13,0xf1,0x06,0x0f,0xee,0xd0,0x6f,0xf0,0x09,0x03,0x18,0x46,0x08,0x37,0xbd,0x46, + 0x80,0xbd,0x80,0xb5,0x84,0xb0,0x00,0xaf,0x03,0x46,0xfb,0x71,0x4f,0xf0,0x80,0x43, + 0x9b,0x68,0x03,0xf4,0x60,0x63,0xfb,0x60,0xfb,0x79,0x05,0x2b,0x28,0xd0,0x05,0x2b, + 0x55,0xdc,0x00,0x2b,0x02,0xd0,0x03,0x2b,0x46,0xd0,0x50,0xe0,0x4f,0xf0,0x80,0x43, + 0x9b,0x68,0x03,0xf4,0x80,0x23,0x00,0x2b,0x11,0xd1,0x4f,0xf0,0x80,0x43,0x9b,0x68, + 0x4f,0xf0,0x80,0x42,0x43,0xf4,0x80,0x23,0x93,0x60,0x4f,0xf0,0x80,0x60,0xff,0xf7, + 0xb8,0xff,0x03,0x46,0x00,0x2b,0x02,0xd0,0x6f,0xf0,0x09,0x03,0x53,0xe0,0x4f,0xf0, + 0x80,0x43,0x9b,0x68,0x4f,0xf0,0x80,0x42,0x23,0xf4,0x60,0x63,0x93,0x60,0x31,0xe0, + 0x4f,0xf0,0x80,0x43,0x9b,0x68,0x03,0xf4,0x80,0x13,0x00,0x2b,0x11,0xd1,0x4f,0xf0, + 0x80,0x43,0x9b,0x68,0x4f,0xf0,0x80,0x42,0x43,0xf4,0x80,0x13,0x93,0x60,0x4f,0xf0, + 0x80,0x50,0xff,0xf7,0x96,0xff,0x03,0x46,0x00,0x2b,0x02,0xd0,0x6f,0xf0,0x09,0x03, + 0x31,0xe0,0x4f,0xf0,0x80,0x43,0x9b,0x68,0x23,0xf4,0x60,0x63,0x4f,0xf0,0x80,0x42, + 0x43,0xf4,0x20,0x63,0x93,0x60,0x0d,0xe0,0x4f,0xf0,0x80,0x43,0x9b,0x68,0x23,0xf4, + 0x60,0x63,0x4f,0xf0,0x80,0x42,0x43,0xf4,0xc0,0x63,0x93,0x60,0x02,0xe0,0x6f,0xf0, + 0x02,0x03,0x18,0xe0,0x4f,0xf4,0x00,0x50,0xff,0xf7,0x73,0xff,0x03,0x46,0x00,0x2b, + 0x0e,0xd0,0x4f,0xf0,0x80,0x43,0x9b,0x68,0x23,0xf4,0x60,0x62,0xfb,0x68,0x03,0xf4, + 0x60,0x63,0x4f,0xf0,0x80,0x41,0x13,0x43,0x8b,0x60,0x6f,0xf0,0x09,0x03,0x02,0xe0, + 0xff,0xf7,0x43,0xfd,0x00,0x23,0x18,0x46,0x10,0x37,0xbd,0x46,0x80,0xbd,0x80,0xb4, + 0x83,0xb0,0x00,0xaf,0x03,0x46,0xfb,0x71,0xfb,0x79,0x1f,0x2b,0x09,0xd9,0xfb,0x79, + 0x20,0x3b,0xfb,0x71,0xfb,0x79,0x01,0x22,0x9a,0x40,0x4f,0xf0,0x80,0x43,0x5a,0x64, + 0x05,0xe0,0xfb,0x79,0x01,0x22,0x9a,0x40,0x4f,0xf0,0x80,0x43,0x5a,0x60,0x00,0xbf, + 0x0c,0x37,0xbd,0x46,0x5d,0xf8,0x04,0x7b,0x70,0x47,0x80,0xb5,0x82,0xb0,0x00,0xaf, + 0x78,0x60,0x00,0x21,0x78,0x68,0x00,0xf0,0x56,0xf8,0x03,0x46,0x18,0x46,0x08,0x37, + 0xbd,0x46,0x80,0xbd,0x80,0xb5,0x82,0xb0,0x00,0xaf,0x78,0x60,0x39,0x60,0x39,0x68, + 0x78,0x68,0x00,0xf0,0x44,0xf9,0x00,0xbf,0x08,0x37,0xbd,0x46,0x80,0xbd,0x80,0xb5, + 0x82,0xb0,0x00,0xaf,0x78,0x60,0x39,0x60,0x39,0x68,0x78,0x68,0x00,0xf0,0x45,0xf9, + 0x00,0xbf,0x08,0x37,0xbd,0x46,0x80,0xbd,0x80,0xb5,0x82,0xb0,0x00,0xaf,0x78,0x60, + 0x78,0x68,0x00,0xf0,0x6c,0xfc,0x00,0xbf,0x08,0x37,0xbd,0x46,0x80,0xbd,0x80,0xb5, + 0x82,0xb0,0x00,0xaf,0x78,0x60,0x39,0x60,0x39,0x68,0x78,0x68,0x00,0xf0,0x3b,0xf9, + 0x00,0xbf,0x08,0x37,0xbd,0x46,0x80,0xbd,0x80,0xb5,0x82,0xb0,0x00,0xaf,0x78,0x60, + 0x78,0x68,0x00,0xf0,0x3e,0xf9,0x03,0x46,0x18,0x46,0x08,0x37,0xbd,0x46,0x80,0xbd, + 0x80,0xb5,0x84,0xb0,0x00,0xaf,0xf8,0x60,0x0b,0x46,0x7a,0x60,0xfb,0x72,0xfb,0x7a, + 0x7a,0x68,0x19,0x46,0xf8,0x68,0x00,0xf0,0x38,0xf9,0x03,0x46,0x18,0x46,0x10,0x37, + 0xbd,0x46,0x80,0xbd,0x00,0x00,0x80,0xb5,0x84,0xb0,0x00,0xaf,0x78,0x60,0x0b,0x46, + 0xfb,0x70,0x7b,0x68,0x1b,0x68,0xfb,0x60,0x7b,0x68,0x1b,0x7a,0x05,0x2b,0x74,0xd8, + 0x01,0xa2,0x52,0xf8,0x23,0xf0,0x79,0xcd,0x00,0x10,0x9b,0xcd,0x00,0x10,0xbd,0xcd, + 0x00,0x10,0xd7,0xcd,0x00,0x10,0xf1,0xcd,0x00,0x10,0x2b,0xce,0x00,0x10,0x7b,0x68, + 0x5a,0x68,0xfb,0x68,0x5a,0x61,0x7b,0x68,0x5a,0x68,0xfb,0x68,0x5a,0x60,0x7b,0x68, + 0x5a,0x68,0xfb,0x68,0x1a,0x67,0x7b,0x68,0x5a,0x68,0xfb,0x68,0xda,0x67,0x57,0xe0, + 0x7b,0x68,0x5a,0x68,0xfb,0x68,0x1a,0x61,0x7b,0x68,0x5a,0x68,0xfb,0x68,0x5a,0x60, + 0x7b,0x68,0x5a,0x68,0xfb,0x68,0x1a,0x67,0x7b,0x68,0x5a,0x68,0xfb,0x68,0xda,0x67, + 0x46,0xe0,0x7b,0x68,0x5a,0x68,0xfb,0x68,0x9a,0x60,0x7b,0x68,0x5a,0x68,0xfb,0x68, + 0x1a,0x67,0x7b,0x68,0x5a,0x68,0xfb,0x68,0xda,0x67,0x39,0xe0,0x7b,0x68,0x5a,0x68, + 0xfb,0x68,0x9a,0x60,0x7b,0x68,0x5a,0x68,0xfb,0x68,0xda,0x66,0x7b,0x68,0x5a,0x68, + 0xfb,0x68,0xda,0x67,0x2c,0xe0,0xfb,0x78,0x01,0x2b,0x0c,0xd1,0x7b,0x68,0x5a,0x68, + 0xfb,0x68,0x5a,0x60,0x7b,0x68,0x5a,0x68,0xfb,0x68,0xda,0x66,0x7b,0x68,0x5a,0x68, + 0xfb,0x68,0xda,0x67,0x1c,0xe0,0x7b,0x68,0x5a,0x68,0xfb,0x68,0x9a,0x60,0x7b,0x68, + 0x5a,0x68,0xfb,0x68,0x1a,0x67,0x7b,0x68,0x5a,0x68,0xfb,0x68,0x9a,0x67,0x0f,0xe0, + 0x7b,0x68,0x5a,0x68,0xfb,0x68,0x9a,0x60,0x7b,0x68,0x5a,0x68,0xfb,0x68,0xda,0x66, + 0x7b,0x68,0x5a,0x68,0xfb,0x68,0x9a,0x67,0x02,0xe0,0x6f,0xf0,0x02,0x03,0x72,0xe0, + 0x7b,0x68,0x5b,0x7a,0x02,0x2b,0x40,0xd0,0x02,0x2b,0x5b,0xdc,0x00,0x2b,0x02,0xd0, + 0x01,0x2b,0x1e,0xd0,0x56,0xe0,0xfb,0x68,0x1a,0x6e,0x7b,0x68,0x5b,0x68,0xdb,0x43, + 0x1a,0x40,0xfb,0x68,0x1a,0x66,0xfb,0x68,0x5a,0x6e,0x7b,0x68,0x5b,0x68,0xdb,0x43, + 0x1a,0x40,0xfb,0x68,0x5a,0x66,0xfb,0x78,0x01,0x2b,0x46,0xd1,0xfb,0x68,0xd3,0xf8, + 0xb8,0x20,0x7b,0x68,0x5b,0x68,0xdb,0x43,0x1a,0x40,0xfb,0x68,0xc3,0xf8,0xb8,0x20, + 0x3b,0xe0,0xfb,0x68,0x1a,0x6e,0x7b,0x68,0x5b,0x68,0x1a,0x43,0xfb,0x68,0x1a,0x66, + 0xfb,0x68,0x5a,0x6e,0x7b,0x68,0x5b,0x68,0xdb,0x43,0x1a,0x40,0xfb,0x68,0x5a,0x66, + 0xfb,0x78,0x01,0x2b,0x2b,0xd1,0xfb,0x68,0xd3,0xf8,0xb8,0x20,0x7b,0x68,0x5b,0x68, + 0x1a,0x43,0xfb,0x68,0xc3,0xf8,0xb8,0x20,0x21,0xe0,0xfb,0x68,0x1a,0x6e,0x7b,0x68, + 0x5b,0x68,0xdb,0x43,0x1a,0x40,0xfb,0x68,0x1a,0x66,0xfb,0x68,0x5a,0x6e,0x7b,0x68, + 0x5b,0x68,0x1a,0x43,0xfb,0x68,0x5a,0x66,0xfb,0x78,0x01,0x2b,0x11,0xd1,0xfb,0x68, + 0xd3,0xf8,0xb8,0x20,0x7b,0x68,0x5b,0x68,0xdb,0x43,0x1a,0x40,0xfb,0x68,0xc3,0xf8, + 0xb8,0x20,0x06,0xe0,0x6f,0xf0,0x02,0x03,0x0d,0xe0,0x00,0xbf,0x02,0xe0,0x00,0xbf, + 0x00,0xe0,0x00,0xbf,0x7b,0x68,0x99,0x7a,0x7b,0x68,0x5b,0x68,0x1a,0x46,0xf8,0x68, + 0xff,0xf7,0xf6,0xfe,0x00,0x23,0x18,0x46,0x10,0x37,0xbd,0x46,0x80,0xbd,0x80,0xb4, + 0x83,0xb0,0x00,0xaf,0x78,0x60,0x39,0x60,0x7b,0x68,0x3a,0x68,0xda,0x61,0x00,0xbf, + 0x0c,0x37,0xbd,0x46,0x5d,0xf8,0x04,0x7b,0x70,0x47,0x80,0xb4,0x83,0xb0,0x00,0xaf, + 0x78,0x60,0x39,0x60,0x7b,0x68,0x3a,0x68,0x1a,0x62,0x00,0xbf,0x0c,0x37,0xbd,0x46, + 0x5d,0xf8,0x04,0x7b,0x70,0x47,0x80,0xb4,0x83,0xb0,0x00,0xaf,0x78,0x60,0x39,0x60, + 0x7b,0x68,0x3a,0x68,0x9a,0x64,0x00,0xbf,0x0c,0x37,0xbd,0x46,0x5d,0xf8,0x04,0x7b, + 0x70,0x47,0x80,0xb4,0x83,0xb0,0x00,0xaf,0x78,0x60,0x7b,0x68,0x1b,0x6c,0x18,0x46, + 0x0c,0x37,0xbd,0x46,0x5d,0xf8,0x04,0x7b,0x70,0x47,0x80,0xb4,0x85,0xb0,0x00,0xaf, + 0xf8,0x60,0x0b,0x46,0x7a,0x60,0xfb,0x72,0xfb,0x7a,0x00,0x2b,0x02,0xd0,0x01,0x2b, + 0x0a,0xd0,0x12,0xe0,0xfb,0x68,0xd3,0xf8,0xc0,0x20,0x7b,0x68,0xdb,0x43,0x1a,0x40, + 0xfb,0x68,0xc3,0xf8,0xc0,0x20,0x0b,0xe0,0xfb,0x68,0xd3,0xf8,0xc0,0x20,0x7b,0x68, + 0x1a,0x43,0xfb,0x68,0xc3,0xf8,0xc0,0x20,0x02,0xe0,0x6f,0xf0,0x02,0x03,0x00,0xe0, + 0x00,0x23,0x18,0x46,0x14,0x37,0xbd,0x46,0x5d,0xf8,0x04,0x7b,0x70,0x47,0x80,0xb5, + 0x84,0xb0,0x00,0xaf,0x78,0x60,0x39,0x60,0x78,0x68,0x00,0xf0,0x28,0xf8,0xf8,0x60, + 0xfb,0x68,0x00,0x2b,0x01,0xd0,0xfb,0x68,0x18,0xe0,0x7b,0x68,0x0e,0x4a,0x93,0x42, + 0x01,0xd1,0x00,0x23,0x01,0xe0,0x4f,0xf0,0xff,0x33,0x00,0x2b,0x0c,0xd1,0x09,0x20, + 0xff,0xf7,0x3b,0xfd,0x09,0x48,0xff,0xf7,0x28,0xfe,0x00,0xbf,0x39,0x68,0x78,0x68, + 0x00,0xf0,0xd3,0xf8,0x03,0x46,0x01,0xe0,0x6f,0xf0,0x02,0x03,0x18,0x46,0x10,0x37, + 0xbd,0x46,0x80,0xbd,0x00,0xbf,0x00,0x00,0x02,0x40,0x2c,0x37,0x01,0x10,0x80,0xb5, + 0x82,0xb0,0x00,0xaf,0x78,0x60,0x7b,0x68,0x0c,0x4a,0x93,0x42,0x01,0xd1,0x00,0x23, + 0x01,0xe0,0x4f,0xf0,0xff,0x33,0x00,0x2b,0x08,0xd1,0x0b,0x20,0xff,0xf7,0xe7,0xfd, + 0x09,0x20,0xff,0xf7,0xe8,0xfc,0x00,0xbf,0x00,0x23,0x01,0xe0,0x6f,0xf0,0x02,0x03, + 0x18,0x46,0x08,0x37,0xbd,0x46,0x80,0xbd,0x00,0xbf,0x00,0x00,0x02,0x40,0x80,0xb5, + 0x82,0xb0,0x00,0xaf,0x78,0x60,0x39,0x60,0x39,0x68,0x78,0x68,0x00,0xf0,0xbb,0xf8, + 0x03,0x46,0x18,0x46,0x08,0x37,0xbd,0x46,0x80,0xbd,0x80,0xb5,0x82,0xb0,0x00,0xaf, + 0x78,0x60,0x78,0x68,0x00,0xf0,0xf3,0xf8,0x03,0x46,0x18,0x46,0x08,0x37,0xbd,0x46, + 0x80,0xbd,0x80,0xb5,0x82,0xb0,0x00,0xaf,0x78,0x60,0x39,0x60,0x39,0x68,0x78,0x68, + 0x00,0xf0,0x03,0xf9,0x03,0x46,0x18,0x46,0x08,0x37,0xbd,0x46,0x80,0xbd,0x80,0xb5, + 0x82,0xb0,0x00,0xaf,0x78,0x60,0x0b,0x46,0xfb,0x70,0xfb,0x78,0x19,0x46,0x78,0x68, + 0x00,0xf0,0x1f,0xf9,0x03,0x46,0x18,0x46,0x08,0x37,0xbd,0x46,0x80,0xbd,0x80,0xb5, + 0x82,0xb0,0x00,0xaf,0x78,0x60,0x0b,0x46,0xfb,0x70,0xfb,0x78,0x19,0x46,0x78,0x68, + 0x00,0xf0,0x3d,0xf9,0x03,0x46,0x18,0x46,0x08,0x37,0xbd,0x46,0x80,0xbd,0x80,0xb5, + 0x82,0xb0,0x00,0xaf,0x78,0x60,0x78,0x68,0x00,0xf0,0xb7,0xf9,0x03,0x46,0x18,0x46, + 0x08,0x37,0xbd,0x46,0x80,0xbd,0x80,0xb5,0x82,0xb0,0x00,0xaf,0x78,0x60,0x0b,0x46, + 0xfb,0x70,0xfb,0x78,0x19,0x46,0x78,0x68,0x00,0xf0,0xc5,0xf9,0x03,0x46,0x18,0x46, + 0x08,0x37,0xbd,0x46,0x80,0xbd,0x80,0xb5,0x82,0xb0,0x00,0xaf,0x78,0x60,0x78,0x68, + 0x00,0xf0,0x75,0xfa,0x03,0x46,0x18,0x46,0x08,0x37,0xbd,0x46,0x80,0xbd,0x80,0xb5, + 0x82,0xb0,0x00,0xaf,0x78,0x60,0x0b,0x46,0xfb,0x70,0xfb,0x78,0x19,0x46,0x78,0x68, + 0x00,0xf0,0x78,0xfa,0x03,0x46,0x18,0x46,0x08,0x37,0xbd,0x46,0x80,0xbd,0x80,0xb5, + 0x82,0xb0,0x00,0xaf,0x78,0x60,0x78,0x68,0x00,0xf0,0xbf,0xf9,0x03,0x46,0x18,0x46, + 0x08,0x37,0xbd,0x46,0x80,0xbd,0x80,0xb5,0x82,0xb0,0x00,0xaf,0x78,0x60,0x78,0x68, + 0x00,0xf0,0xc2,0xf9,0x03,0x46,0x18,0x46,0x08,0x37,0xbd,0x46,0x80,0xbd,0x80,0xb5, + 0x82,0xb0,0x00,0xaf,0x78,0x60,0x39,0x60,0x39,0x68,0x78,0x68,0x00,0xf0,0xc7,0xf9, + 0x03,0x46,0x18,0x46,0x08,0x37,0xbd,0x46,0x80,0xbd,0x80,0xb5,0x82,0xb0,0x00,0xaf, + 0x78,0x60,0x39,0x60,0x01,0x21,0x78,0x68,0xff,0xf7,0xe9,0xff,0x08,0x21,0x78,0x68, + 0xff,0xf7,0x67,0xff,0x00,0x21,0x78,0x68,0xff,0xf7,0x81,0xff,0x00,0x21,0x78,0x68, + 0xff,0xf7,0x6d,0xff,0x39,0x68,0x78,0x68,0xff,0xf7,0x41,0xff,0x03,0x46,0x18,0x46, + 0x08,0x37,0xbd,0x46,0x80,0xbd,0x80,0xb5,0x86,0xb0,0x00,0xaf,0x78,0x60,0x39,0x60, + 0x00,0x23,0x7b,0x61,0x00,0x23,0x3b,0x61,0x00,0x23,0xfb,0x60,0x7b,0x68,0x19,0x4a, + 0x93,0x42,0x02,0xd0,0x6f,0xf0,0x02,0x03,0x28,0xe0,0x17,0x4b,0x1b,0x68,0x5a,0x08, + 0x3b,0x68,0xb2,0xfb,0xf3,0xf3,0x7b,0x61,0x7b,0x69,0xdb,0x11,0x3b,0x61,0x3b,0x69, + 0xdb,0x01,0x7a,0x69,0xd3,0x1a,0xfb,0x60,0x7b,0x68,0x1b,0x69,0x23,0xf4,0x7f,0x63, + 0x23,0xf0,0x0f,0x03,0x3a,0x69,0xc2,0xf3,0x0b,0x02,0x1a,0x43,0x7b,0x68,0x1a,0x61, + 0x7b,0x68,0x5b,0x69,0x23,0xf0,0x7f,0x02,0xfb,0x68,0x03,0xf0,0x7f,0x03,0x1a,0x43, + 0x7b,0x68,0x5a,0x61,0x78,0x68,0xff,0xf7,0x10,0xff,0x03,0x46,0x18,0x46,0x18,0x37, + 0xbd,0x46,0x80,0xbd,0x00,0xbf,0x00,0x00,0x02,0x40,0x04,0x00,0x00,0x20,0x80,0xb4, + 0x85,0xb0,0x00,0xaf,0x78,0x60,0x00,0x23,0xfb,0x60,0x7b,0x68,0x1b,0x69,0xdb,0x01, + 0xfb,0x60,0x7b,0x68,0x5a,0x69,0xfb,0x68,0x13,0x44,0xfb,0x60,0x06,0x4b,0x1b,0x68, + 0x5b,0x08,0xfa,0x68,0x02,0xfb,0x03,0xf3,0x18,0x46,0x14,0x37,0xbd,0x46,0x5d,0xf8, + 0x04,0x7b,0x70,0x47,0x00,0xbf,0x04,0x00,0x00,0x20,0x80,0xb4,0x83,0xb0,0x00,0xaf, + 0x78,0x60,0x39,0x60,0x7b,0x68,0x11,0x4a,0x93,0x42,0x02,0xd0,0x6f,0xf0,0x02,0x03, + 0x17,0xe0,0x3b,0x68,0x04,0x2b,0x02,0xdd,0x3b,0x68,0x08,0x2b,0x02,0xdd,0x6f,0xf0, + 0x02,0x03,0x0e,0xe0,0x3b,0x68,0x05,0x3b,0x9b,0x02,0x3b,0x60,0x7b,0x68,0x1b,0x68, + 0x23,0xf4,0x40,0x62,0x3b,0x68,0x03,0xf4,0x40,0x63,0x1a,0x43,0x7b,0x68,0x1a,0x60, + 0x00,0x23,0x18,0x46,0x0c,0x37,0xbd,0x46,0x5d,0xf8,0x04,0x7b,0x70,0x47,0x00,0x00, + 0x02,0x40,0x80,0xb4,0x83,0xb0,0x00,0xaf,0x78,0x60,0x0b,0x46,0xfb,0x70,0x7b,0x68, + 0x12,0x4a,0x93,0x42,0x02,0xd0,0x6f,0xf0,0x02,0x03,0x17,0xe0,0xfb,0x78,0x00,0x2b, + 0x02,0xd0,0x01,0x2b,0x07,0xd0,0x0d,0xe0,0x7b,0x68,0x1b,0x68,0x23,0xf4,0x80,0x52, + 0x7b,0x68,0x1a,0x60,0x09,0xe0,0x7b,0x68,0x1b,0x68,0x43,0xf4,0x80,0x52,0x7b,0x68, + 0x1a,0x60,0x02,0xe0,0x6f,0xf0,0x02,0x03,0x00,0xe0,0x00,0x23,0x18,0x46,0x0c,0x37, + 0xbd,0x46,0x5d,0xf8,0x04,0x7b,0x70,0x47,0x00,0xbf,0x00,0x00,0x02,0x40,0x80,0xb4, + 0x83,0xb0,0x00,0xaf,0x78,0x60,0x0b,0x46,0xfb,0x70,0x7b,0x68,0x3e,0x4a,0x93,0x42, + 0x02,0xd0,0x6f,0xf0,0x02,0x03,0x6f,0xe0,0xfb,0x78,0x08,0x2b,0x68,0xd8,0x01,0xa2, + 0x52,0xf8,0x23,0xf0,0x00,0xbf,0xe5,0xd3,0x00,0x10,0xf3,0xd3,0x00,0x10,0x3f,0xd4, + 0x00,0x10,0x8b,0xd4,0x00,0x10,0x8b,0xd4,0x00,0x10,0xf3,0xd3,0x00,0x10,0x19,0xd4, + 0x00,0x10,0x3f,0xd4,0x00,0x10,0x65,0xd4,0x00,0x10,0x7b,0x68,0x1b,0x68,0x23,0xf0, + 0x10,0x02,0x7b,0x68,0x1a,0x60,0x4e,0xe0,0x7b,0x68,0x1b,0x68,0x43,0xf0,0x10,0x02, + 0x7b,0x68,0x1a,0x60,0x7b,0x68,0x1b,0x68,0x23,0xf0,0x20,0x02,0x7b,0x68,0x1a,0x60, + 0x7b,0x68,0x1b,0x68,0x23,0xf0,0x40,0x02,0x7b,0x68,0x1a,0x60,0x3b,0xe0,0x7b,0x68, + 0x1b,0x68,0x43,0xf0,0x10,0x02,0x7b,0x68,0x1a,0x60,0x7b,0x68,0x1b,0x68,0x23,0xf0, + 0x20,0x02,0x7b,0x68,0x1a,0x60,0x7b,0x68,0x1b,0x68,0x43,0xf0,0x40,0x02,0x7b,0x68, + 0x1a,0x60,0x28,0xe0,0x7b,0x68,0x1b,0x68,0x43,0xf0,0x10,0x02,0x7b,0x68,0x1a,0x60, + 0x7b,0x68,0x1b,0x68,0x43,0xf0,0x20,0x02,0x7b,0x68,0x1a,0x60,0x7b,0x68,0x1b,0x68, + 0x23,0xf0,0x40,0x02,0x7b,0x68,0x1a,0x60,0x15,0xe0,0x7b,0x68,0x1b,0x68,0x43,0xf0, + 0x10,0x02,0x7b,0x68,0x1a,0x60,0x7b,0x68,0x1b,0x68,0x43,0xf0,0x20,0x02,0x7b,0x68, + 0x1a,0x60,0x7b,0x68,0x1b,0x68,0x43,0xf0,0x40,0x02,0x7b,0x68,0x1a,0x60,0x02,0xe0, + 0x6f,0xf0,0x02,0x03,0x00,0xe0,0x00,0x23,0x18,0x46,0x0c,0x37,0xbd,0x46,0x5d,0xf8, + 0x04,0x7b,0x70,0x47,0x00,0xbf,0x00,0x00,0x02,0x40,0x80,0xb4,0x83,0xb0,0x00,0xaf, + 0x78,0x60,0x7b,0x68,0x0b,0x4a,0x93,0x42,0x02,0xd0,0x6f,0xf0,0x02,0x03,0x0a,0xe0, + 0x7b,0x68,0x5b,0x68,0x03,0xf0,0x10,0x03,0x00,0x2b,0x02,0xd0,0x6f,0xf0,0x0c,0x03, + 0x01,0xe0,0x7b,0x68,0x1b,0x6a,0x18,0x46,0x0c,0x37,0xbd,0x46,0x5d,0xf8,0x04,0x7b, + 0x70,0x47,0x00,0x00,0x02,0x40,0x80,0xb4,0x83,0xb0,0x00,0xaf,0x78,0x60,0x0b,0x46, + 0xfb,0x70,0x7b,0x68,0x0c,0x4a,0x93,0x42,0x02,0xd0,0x6f,0xf0,0x02,0x03,0x0c,0xe0, + 0x7b,0x68,0x5b,0x68,0x03,0xf0,0x80,0x03,0x00,0x2b,0x02,0xd0,0x6f,0xf0,0x0b,0x03, + 0x03,0xe0,0xfa,0x78,0x7b,0x68,0x1a,0x62,0x00,0x23,0x18,0x46,0x0c,0x37,0xbd,0x46, + 0x5d,0xf8,0x04,0x7b,0x70,0x47,0x00,0x00,0x02,0x40,0x80,0xb4,0x83,0xb0,0x00,0xaf, + 0x78,0x60,0x7b,0x68,0x5b,0x68,0x1b,0x0a,0x03,0xf0,0x0f,0x03,0x18,0x46,0x0c,0x37, + 0xbd,0x46,0x5d,0xf8,0x04,0x7b,0x70,0x47,0x80,0xb4,0x85,0xb0,0x00,0xaf,0x78,0x60, + 0x7b,0x68,0x5b,0x68,0x1b,0x0b,0x03,0xf0,0x0f,0x03,0xfb,0x60,0xfb,0x68,0xc3,0xf1, + 0x08,0x03,0x18,0x46,0x14,0x37,0xbd,0x46,0x5d,0xf8,0x04,0x7b,0x70,0x47,0x80,0xb4, + 0x83,0xb0,0x00,0xaf,0x78,0x60,0x39,0x60,0x7b,0x68,0x0f,0x4a,0x93,0x42,0x02,0xd0, + 0x6f,0xf0,0x02,0x03,0x13,0xe0,0x3b,0x68,0x00,0x2b,0x02,0xd0,0x3b,0x68,0x08,0x2b, + 0x02,0xd9,0x6f,0xf0,0x02,0x03,0x0a,0xe0,0x7b,0x68,0x1b,0x68,0x23,0xf0,0x0f,0x02, + 0x3b,0x68,0x03,0xf0,0x0f,0x03,0x1a,0x43,0x7b,0x68,0x1a,0x60,0x00,0x23,0x18,0x46, + 0x0c,0x37,0xbd,0x46,0x5d,0xf8,0x04,0x7b,0x70,0x47,0x00,0x00,0x02,0x40,0x80,0xb5, + 0x86,0xb0,0x00,0xaf,0x78,0x60,0x7b,0x68,0x00,0x2b,0x06,0xd0,0x7b,0x68,0x01,0x2b, + 0x01,0xd1,0x1e,0x4b,0x02,0xe0,0x00,0x23,0x00,0xe0,0x1d,0x4b,0xfb,0x60,0xf8,0x68, + 0xff,0xf7,0x92,0xfb,0x78,0x61,0x79,0x69,0xf8,0x68,0xff,0xf7,0x80,0xfb,0x00,0x23, + 0x3b,0x61,0x23,0xe0,0x7b,0x69,0x03,0xf0,0x01,0x03,0x00,0x2b,0x18,0xd0,0x15,0x49, + 0x7b,0x68,0x1a,0x01,0x3b,0x69,0x13,0x44,0x51,0xf8,0x23,0x30,0x00,0x2b,0x0f,0xd0, + 0x11,0x49,0x7b,0x68,0x1a,0x01,0x3b,0x69,0x13,0x44,0x51,0xf8,0x23,0x30,0x0e,0x48, + 0x7a,0x68,0x11,0x01,0x3a,0x69,0x0a,0x44,0x50,0xf8,0x22,0x20,0x10,0x46,0x98,0x47, + 0x3b,0x69,0x01,0x33,0x3b,0x61,0x7b,0x69,0x5b,0x08,0x7b,0x61,0x7b,0x69,0x00,0x2b, + 0xd8,0xd1,0x00,0xbf,0x00,0xbf,0x18,0x37,0xbd,0x46,0x80,0xbd,0x00,0xbf,0x00,0x90, + 0x00,0x40,0x00,0x80,0x00,0x40,0xf0,0x09,0x00,0x20,0x70,0x0a,0x00,0x20,0x80,0xb5, + 0x82,0xb0,0x00,0xaf,0x78,0x60,0x00,0xbf,0x78,0x68,0xff,0xf7,0x98,0xfd,0x03,0x46, + 0x00,0x2b,0xf9,0xd0,0x78,0x68,0xff,0xf7,0x5a,0xfd,0x03,0x46,0x18,0x46,0x08,0x37, + 0xbd,0x46,0x80,0xbd,0x80,0xb5,0x82,0xb0,0x00,0xaf,0x78,0x60,0x0b,0x46,0xfb,0x70, + 0x00,0xbf,0x78,0x68,0xff,0xf7,0x8f,0xfd,0x03,0x46,0x00,0x2b,0xf9,0xd0,0xfb,0x78, + 0x19,0x46,0x78,0x68,0xff,0xf7,0x4f,0xfd,0x03,0x46,0x18,0x46,0x08,0x37,0xbd,0x46, + 0x80,0xbd,0x01,0x4b,0x18,0x68,0x70,0x47,0x00,0xbf,0x0c,0x00,0x00,0x20,0x70,0xb5, + 0x0d,0x4e,0x0d,0x4d,0x76,0x1b,0xb6,0x10,0x06,0xd0,0x00,0x24,0x55,0xf8,0x04,0x3b, + 0x01,0x34,0x98,0x47,0xa6,0x42,0xf9,0xd1,0x09,0x4e,0x09,0x4d,0x76,0x1b,0x06,0xf0, + 0x76,0xf9,0xb6,0x10,0x06,0xd0,0x00,0x24,0x55,0xf8,0x04,0x3b,0x01,0x34,0x98,0x47, + 0xa6,0x42,0xf9,0xd1,0x70,0xbd,0xb8,0x09,0x00,0x20,0xb8,0x09,0x00,0x20,0xc0,0x09, + 0x00,0x20,0xb8,0x09,0x00,0x20,0x84,0x46,0x41,0xea,0x00,0x03,0x13,0xf0,0x03,0x03, + 0x6d,0xd1,0x40,0x3a,0x41,0xd3,0x51,0xf8,0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8, + 0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8,0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8, + 0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8,0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8, + 0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8,0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8, + 0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8,0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8, + 0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8,0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8, + 0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8,0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8, + 0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8,0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8, + 0x04,0x3b,0x40,0xf8,0x04,0x3b,0x40,0x3a,0xbd,0xd2,0x30,0x32,0x11,0xd3,0x51,0xf8, + 0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8,0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8, + 0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8,0x04,0x3b,0x40,0xf8,0x04,0x3b,0x10,0x3a, + 0xed,0xd2,0x0c,0x32,0x05,0xd3,0x51,0xf8,0x04,0x3b,0x40,0xf8,0x04,0x3b,0x04,0x3a, + 0xf9,0xd2,0x04,0x32,0x08,0xd0,0xd2,0x07,0x1c,0xbf,0x11,0xf8,0x01,0x3b,0x00,0xf8, + 0x01,0x3b,0x01,0xd3,0x0b,0x88,0x03,0x80,0x60,0x46,0x70,0x47,0x00,0xbf,0x08,0x2a, + 0x13,0xd3,0x8b,0x07,0x8d,0xd0,0x10,0xf0,0x03,0x03,0x8a,0xd0,0xc3,0xf1,0x04,0x03, + 0xd2,0x1a,0xdb,0x07,0x1c,0xbf,0x11,0xf8,0x01,0x3b,0x00,0xf8,0x01,0x3b,0x80,0xd3, + 0x31,0xf8,0x02,0x3b,0x20,0xf8,0x02,0x3b,0x7b,0xe7,0x04,0x3a,0xd9,0xd3,0x01,0x3a, + 0x11,0xf8,0x01,0x3b,0x00,0xf8,0x01,0x3b,0xf9,0xd2,0x0b,0x78,0x03,0x70,0x4b,0x78, + 0x43,0x70,0x8b,0x78,0x83,0x70,0x60,0x46,0x70,0x47,0xf0,0xb4,0x86,0x07,0x46,0xd0, + 0x54,0x1e,0x00,0x2a,0x3c,0xd0,0xca,0xb2,0x03,0x46,0x01,0xe0,0x01,0x3c,0x37,0xd3, + 0x03,0xf8,0x01,0x2b,0x9d,0x07,0xf9,0xd1,0x03,0x2c,0x2a,0xd9,0xcd,0xb2,0x45,0xea, + 0x05,0x25,0x0f,0x2c,0x45,0xea,0x05,0x45,0x34,0xd9,0xa4,0xf1,0x10,0x02,0x22,0xf0, + 0x0f,0x0c,0x03,0xf1,0x20,0x07,0x16,0x09,0x67,0x44,0x03,0xf1,0x10,0x02,0x42,0xe9, + 0x04,0x55,0x42,0xe9,0x02,0x55,0x10,0x32,0xba,0x42,0xf8,0xd1,0x72,0x1c,0x14,0xf0, + 0x0c,0x0f,0x03,0xeb,0x02,0x12,0x04,0xf0,0x0f,0x06,0x13,0xd0,0x33,0x1f,0x23,0xf0, + 0x03,0x03,0x04,0x33,0x13,0x44,0x42,0xf8,0x04,0x5b,0x93,0x42,0xfb,0xd1,0x06,0xf0, + 0x03,0x04,0x2c,0xb1,0xca,0xb2,0x1c,0x44,0x03,0xf8,0x01,0x2b,0x9c,0x42,0xfb,0xd1, + 0xf0,0xbc,0x70,0x47,0x34,0x46,0x13,0x46,0x00,0x2c,0xf3,0xd1,0xf8,0xe7,0x14,0x46, + 0x03,0x46,0xc1,0xe7,0x1a,0x46,0x26,0x46,0xe0,0xe7,0x0f,0xb4,0x00,0xb5,0x07,0x49, + 0x83,0xb0,0x04,0xab,0x08,0x68,0x53,0xf8,0x04,0x2b,0x81,0x68,0x01,0x93,0x00,0xf0, + 0xda,0xf8,0x03,0xb0,0x5d,0xf8,0x04,0xeb,0x04,0xb0,0x70,0x47,0x00,0xbf,0x0c,0x00, + 0x00,0x20,0x70,0xb5,0x05,0x46,0x88,0xb0,0x08,0x46,0x0c,0x46,0x00,0xf0,0x5b,0xf8, + 0x22,0x4a,0xab,0x6b,0x04,0x94,0x01,0x26,0x44,0x1c,0x04,0xa9,0x06,0x92,0x02,0x22, + 0x03,0x94,0xcd,0xe9,0x01,0x12,0xac,0x68,0x05,0x90,0x07,0x96,0x23,0xb3,0x63,0x6e, + 0x13,0xf0,0x01,0x0f,0xb4,0xf9,0x0c,0x30,0x9a,0xb2,0x01,0xd1,0x98,0x05,0x25,0xd5, + 0x91,0x04,0x06,0xd4,0x62,0x6e,0x43,0xf4,0x00,0x53,0x22,0xf4,0x00,0x52,0xa3,0x81, + 0x62,0x66,0x28,0x46,0x01,0xaa,0x21,0x46,0x03,0xf0,0xe7,0xf9,0x63,0x6e,0x00,0x28, + 0x14,0xbf,0x4f,0xf0,0xff,0x35,0x0a,0x25,0xda,0x07,0x02,0xd4,0xa3,0x89,0x9b,0x05, + 0x06,0xd5,0x28,0x46,0x08,0xb0,0x70,0xbd,0x28,0x46,0x03,0xf0,0x36,0xf8,0xd6,0xe7, + 0xa0,0x6d,0x03,0xf0,0x70,0xfb,0x28,0x46,0x08,0xb0,0x70,0xbd,0xa0,0x6d,0x03,0xf0, + 0x68,0xfb,0xb4,0xf9,0x0c,0x30,0x9a,0xb2,0xd2,0xe7,0x3c,0x37,0x01,0x10,0x02,0x4b, + 0x01,0x46,0x18,0x68,0xff,0xf7,0xad,0xbf,0x00,0xbf,0x0c,0x00,0x00,0x20,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x90,0xf8,0x00,0xf0,0x6d,0xe9,0x02,0x45,0x20,0xf0, + 0x07,0x01,0x6f,0xf0,0x00,0x0c,0x10,0xf0,0x07,0x04,0x91,0xf8,0x20,0xf0,0x40,0xf0, + 0x49,0x80,0x4f,0xf0,0x00,0x04,0x6f,0xf0,0x07,0x00,0xd1,0xe9,0x00,0x23,0x91,0xf8, + 0x40,0xf0,0x00,0xf1,0x08,0x00,0x82,0xfa,0x4c,0xf2,0xa4,0xfa,0x8c,0xf2,0x83,0xfa, + 0x4c,0xf3,0xa2,0xfa,0x8c,0xf3,0x4b,0xbb,0xd1,0xe9,0x02,0x23,0x82,0xfa,0x4c,0xf2, + 0x00,0xf1,0x08,0x00,0xa4,0xfa,0x8c,0xf2,0x83,0xfa,0x4c,0xf3,0xa2,0xfa,0x8c,0xf3, + 0xe3,0xb9,0xd1,0xe9,0x04,0x23,0x82,0xfa,0x4c,0xf2,0x00,0xf1,0x08,0x00,0xa4,0xfa, + 0x8c,0xf2,0x83,0xfa,0x4c,0xf3,0xa2,0xfa,0x8c,0xf3,0x7b,0xb9,0xd1,0xe9,0x06,0x23, + 0x01,0xf1,0x20,0x01,0x82,0xfa,0x4c,0xf2,0x00,0xf1,0x08,0x00,0xa4,0xfa,0x8c,0xf2, + 0x83,0xfa,0x4c,0xf3,0xa2,0xfa,0x8c,0xf3,0x00,0x2b,0xc6,0xd0,0x00,0x2a,0x04,0xbf, + 0x04,0x30,0x1a,0x46,0x12,0xba,0xb2,0xfa,0x82,0xf2,0xfd,0xe8,0x02,0x45,0x00,0xeb, + 0xd2,0x00,0x70,0x47,0xd1,0xe9,0x00,0x23,0x04,0xf0,0x03,0x05,0xc4,0xf1,0x00,0x00, + 0x4f,0xea,0xc5,0x05,0x14,0xf0,0x04,0x0f,0x91,0xf8,0x40,0xf0,0x0c,0xfa,0x05,0xf5, + 0x62,0xea,0x05,0x02,0x1c,0xbf,0x63,0xea,0x05,0x03,0x62,0x46,0x4f,0xf0,0x00,0x04, + 0xa9,0xe7,0x00,0x00,0x00,0x00,0x2d,0xe9,0xf0,0x4f,0x2d,0xed,0x06,0x8b,0xd3,0xb0, + 0x1c,0x46,0x8b,0x46,0x17,0x46,0x81,0x46,0x03,0xf0,0xcb,0xfa,0x03,0x68,0x0c,0x94, + 0x18,0x46,0x15,0x93,0xff,0xf7,0x7f,0xff,0x14,0x90,0xb9,0xf1,0x00,0x0f,0x04,0xd0, + 0xd9,0xf8,0x38,0x30,0x00,0x2b,0x00,0xf0,0x0a,0x82,0xdb,0xf8,0x64,0x30,0xbb,0xf9, + 0x0c,0x20,0x13,0xf0,0x01,0x0f,0x93,0xb2,0x02,0xd1,0x91,0x05,0x40,0xf1,0xd5,0x86, + 0x9e,0x04,0x0a,0xd4,0xdb,0xf8,0x64,0x10,0x42,0xf4,0x00,0x53,0x21,0xf4,0x00,0x51, + 0xab,0xf8,0x0c,0x30,0xcb,0xf8,0x64,0x10,0x9b,0xb2,0x1d,0x07,0x40,0xf1,0xca,0x80, + 0xdb,0xf8,0x10,0x20,0x00,0x2a,0x00,0xf0,0xc5,0x80,0x03,0xf0,0x1a,0x02,0x0a,0x2a, + 0x00,0xf0,0xce,0x80,0x00,0x23,0x9f,0xed,0x83,0x7b,0xcd,0xe9,0x27,0x33,0xcd,0xe9, + 0x17,0x33,0xcd,0xe9,0x19,0x33,0x10,0x93,0x16,0x93,0x08,0x93,0x29,0xab,0x26,0x93, + 0x98,0x46,0x3b,0x78,0x8d,0xed,0x12,0x7b,0x08,0xee,0x10,0xba,0x00,0x2b,0x00,0xf0, + 0x78,0x81,0x3c,0x46,0x04,0xe0,0x14,0xf8,0x01,0x3f,0x00,0x2b,0x00,0xf0,0xc9,0x80, + 0x25,0x2b,0xf8,0xd1,0xe5,0x1b,0x40,0xf0,0xc7,0x80,0x23,0x78,0x00,0x2b,0x00,0xf0, + 0x68,0x81,0x00,0x23,0x09,0x93,0x8d,0xf8,0x7b,0x30,0x06,0x93,0x66,0x1c,0x4f,0xf0, + 0xff,0x33,0x64,0x78,0x07,0x93,0x2b,0x25,0x4f,0xf0,0x20,0x0a,0x01,0x36,0xa4,0xf1, + 0x20,0x03,0x5a,0x2b,0x00,0xf2,0xd3,0x80,0xdf,0xe8,0x13,0xf0,0x78,0x02,0xd1,0x00, + 0xd1,0x00,0x72,0x02,0xd1,0x00,0xd1,0x00,0xd1,0x00,0x6a,0x00,0xd1,0x00,0xd1,0x00, + 0x10,0x02,0x21,0x02,0xd1,0x00,0x1b,0x02,0x58,0x02,0xd1,0x00,0x52,0x02,0x5b,0x00, + 0x5b,0x00,0x5b,0x00,0x5b,0x00,0x5b,0x00,0x5b,0x00,0x5b,0x00,0x5b,0x00,0x5b,0x00, + 0xd1,0x00,0xd1,0x00,0xd1,0x00,0xd1,0x00,0xd1,0x00,0xd1,0x00,0xd1,0x00,0x5d,0x01, + 0xd1,0x00,0xb3,0x01,0x90,0x02,0x5d,0x01,0x5d,0x01,0x5d,0x01,0xd1,0x00,0xd1,0x00, + 0xd1,0x00,0xd1,0x00,0x8a,0x02,0xd1,0x00,0xd1,0x00,0xe9,0x02,0xd1,0x00,0xd1,0x00, + 0xd1,0x00,0xc1,0x01,0xd1,0x00,0x25,0x02,0xd1,0x00,0xd1,0x00,0x20,0x08,0xd1,0x00, + 0xd1,0x00,0xd1,0x00,0xd1,0x00,0xd1,0x00,0xd1,0x00,0xd1,0x00,0xd1,0x00,0x5d,0x01, + 0xd1,0x00,0xb3,0x01,0xe7,0x01,0x5d,0x01,0x5d,0x01,0x5d,0x01,0xfe,0x02,0xe7,0x01, + 0xad,0x01,0xd1,0x00,0x81,0x02,0xd1,0x00,0x1b,0x03,0x1d,0x08,0x07,0x03,0xad,0x01, + 0xd1,0x00,0xc1,0x01,0x82,0x00,0x13,0x08,0xd1,0x00,0xd1,0x00,0xf2,0x07,0xd1,0x00, + 0x82,0x00,0xa4,0xf1,0x30,0x03,0x00,0x22,0x16,0xf8,0x01,0x4b,0x02,0xeb,0x82,0x02, + 0x03,0xeb,0x42,0x02,0xa4,0xf1,0x30,0x03,0x09,0x2b,0xf5,0xd9,0x09,0x92,0x8e,0xe7, + 0x48,0x46,0x03,0xf0,0xee,0xf9,0x43,0x68,0x19,0x93,0x18,0x46,0xff,0xf7,0xa3,0xfe, + 0x03,0x46,0x48,0x46,0x1c,0x46,0x1a,0x93,0x03,0xf0,0xe3,0xf9,0x82,0x68,0x17,0x92, + 0x34,0xb1,0x17,0x9b,0x23,0xb1,0x17,0x9b,0x1b,0x78,0x00,0x2b,0x41,0xf0,0xd8,0x80, + 0x34,0x78,0x73,0xe7,0x59,0x46,0x48,0x46,0x01,0xf0,0x2d,0xfd,0x00,0x28,0x41,0xf0, + 0x72,0x83,0xbb,0xf8,0x0c,0x30,0x03,0xf0,0x1a,0x02,0x0a,0x2a,0x7f,0xf4,0x32,0xaf, + 0xbb,0xf9,0x0e,0x20,0x00,0x2a,0xff,0xf6,0x2d,0xaf,0xdb,0xf8,0x64,0x20,0xd2,0x07, + 0x02,0xd4,0x9e,0x05,0x41,0xf1,0x8d,0x81,0x23,0x46,0x3a,0x46,0x59,0x46,0x48,0x46, + 0x01,0xf0,0xcf,0xfc,0x08,0x90,0x08,0x98,0x53,0xb0,0xbd,0xec,0x06,0x8b,0xbd,0xe8, + 0xf0,0x8f,0xe5,0x1b,0x00,0xf0,0xa5,0x80,0xdd,0xe9,0x27,0x32,0x01,0x33,0x2a,0x44, + 0x07,0x2b,0xcd,0xe9,0x27,0x32,0xc8,0xf8,0x00,0x70,0xc8,0xf8,0x04,0x50,0x06,0xdc, + 0x08,0xf1,0x08,0x08,0x08,0x9a,0x23,0x78,0x2a,0x44,0x08,0x92,0x26,0xe7,0x18,0xee, + 0x10,0x1a,0x26,0xaa,0x48,0x46,0x04,0xf0,0xd2,0xfb,0x00,0x28,0x41,0xf0,0x4c,0x84, + 0x0d,0xf1,0xa4,0x08,0xee,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x96, + 0x00,0x2c,0x7e,0xd0,0x00,0x23,0x1a,0x46,0x4f,0xf0,0x01,0x0a,0x8d,0xf8,0xe4,0x40, + 0x8d,0xf8,0x7b,0x30,0x0b,0x92,0x07,0x92,0x0e,0x92,0x11,0x92,0x0f,0x92,0xcd,0xf8, + 0x28,0xa0,0x39,0xaf,0x06,0x9b,0x06,0x99,0x13,0xf0,0x02,0x03,0x18,0xbf,0x0a,0xf1, + 0x02,0x0a,0x11,0xf0,0x84,0x0b,0x05,0xd1,0x09,0x99,0xa1,0xeb,0x0a,0x06,0x00,0x2e, + 0x00,0xf3,0xd4,0x83,0x28,0x9d,0x72,0xb1,0x27,0x9a,0x01,0x32,0x01,0x35,0x0d,0xf1, + 0x7b,0x00,0x01,0x21,0x07,0x2a,0xcd,0xe9,0x27,0x25,0xc8,0xe9,0x00,0x01,0x00,0xf3, + 0x05,0x84,0x08,0xf1,0x08,0x08,0x6b,0xb1,0x27,0x9b,0x01,0x33,0x02,0x35,0x1f,0xa9, + 0x02,0x22,0x07,0x2b,0xcd,0xe9,0x27,0x35,0xc8,0xe9,0x00,0x12,0x00,0xf3,0x06,0x84, + 0x08,0xf1,0x08,0x08,0xbb,0xf1,0x80,0x0f,0x00,0xf0,0x96,0x82,0x07,0x9b,0x0a,0x9a, + 0x9e,0x1a,0x00,0x2e,0x00,0xf3,0xd8,0x82,0x06,0x9b,0xde,0x05,0x00,0xf1,0x30,0x82, + 0x27,0x9b,0x0a,0x9a,0xc8,0xf8,0x00,0x70,0x01,0x33,0x15,0x44,0x07,0x2b,0x28,0x95, + 0xc8,0xf8,0x04,0x20,0x27,0x93,0x00,0xf3,0x2d,0x83,0x08,0xf1,0x08,0x08,0x06,0x9b, + 0x5c,0x07,0x05,0xd5,0x09,0x9b,0xa3,0xeb,0x0a,0x04,0x00,0x2c,0x00,0xf3,0xec,0x83, + 0xdd,0xe9,0x08,0x32,0x52,0x45,0xac,0xbf,0x9b,0x18,0x53,0x44,0x08,0x93,0x00,0x2d, + 0x40,0xf0,0xef,0x82,0x00,0x23,0x27,0x93,0x0b,0x9b,0x1b,0xb1,0x0b,0x99,0x48,0x46, + 0x02,0xf0,0x77,0xfe,0x0d,0xf1,0xa4,0x08,0x0d,0x9f,0x3b,0x78,0x00,0x2b,0x7f,0xf4, + 0x88,0xae,0x28,0x9b,0x18,0xee,0x10,0xba,0x00,0x2b,0x40,0xf0,0xf7,0x87,0x00,0x23, + 0x27,0x93,0x00,0xf0,0x8f,0xbc,0x0c,0x9b,0x0d,0x96,0x07,0x33,0x23,0xf0,0x07,0x03, + 0xb3,0xec,0x02,0x7b,0x8d,0xed,0x12,0x7b,0xdd,0xe9,0x12,0x56,0x0c,0x93,0x26,0xf0, + 0x00,0x43,0x09,0xee,0x90,0x3a,0x09,0xee,0x10,0x5a,0x5b,0xec,0x19,0xab,0xb8,0x4b, + 0x50,0x46,0x59,0x46,0x4f,0xf0,0xff,0x32,0x05,0xf0,0x03,0xfa,0x00,0x28,0x40,0xf0, + 0x52,0x85,0xb3,0x4b,0x4f,0xf0,0xff,0x32,0x50,0x46,0x59,0x46,0x05,0xf0,0xdb,0xf9, + 0x00,0x28,0x40,0xf0,0x48,0x85,0x00,0x22,0x00,0x23,0x28,0x46,0x31,0x46,0x05,0xf0, + 0xc8,0xf9,0x00,0x28,0x41,0xf0,0x96,0x81,0x9d,0xf8,0x7b,0x20,0xaa,0x4f,0xaa,0x4b, + 0x06,0x98,0x00,0x21,0x4f,0xf0,0x03,0x0a,0x20,0xf0,0x80,0x00,0x0b,0x91,0x06,0x90, + 0x47,0x2c,0xc8,0xbf,0x1f,0x46,0xcd,0xf8,0x28,0xa0,0x07,0x91,0x0e,0x91,0x11,0x91, + 0x0f,0x91,0x00,0x2a,0x3f,0xf4,0x3e,0xaf,0x0a,0xf1,0x01,0x0a,0x3a,0xe7,0x48,0x46, + 0x02,0xf0,0x7b,0xfd,0xf1,0xe5,0x06,0x9b,0x34,0x78,0x43,0xf0,0x20,0x03,0x06,0x93, + 0x44,0xe6,0x0c,0x9b,0x0d,0x96,0x53,0xf8,0x04,0x2b,0x8d,0xf8,0xe4,0x20,0x00,0x21, + 0x0a,0x46,0x4f,0xf0,0x01,0x0a,0x0c,0x93,0x8d,0xf8,0x7b,0x10,0x1a,0xe7,0x0c,0x9d, + 0x0d,0x96,0x55,0xf8,0x04,0x7b,0x00,0x26,0x8d,0xf8,0x7b,0x60,0x00,0x2f,0x00,0xf0, + 0x83,0x86,0x07,0x9a,0x13,0x46,0x01,0x33,0x00,0xf0,0x2d,0x87,0x31,0x46,0x38,0x46, + 0x03,0xf0,0xc9,0xfb,0x0b,0x90,0x00,0x28,0x01,0xf0,0xe0,0x81,0x0b,0x9b,0x07,0x96, + 0xda,0x1b,0x0a,0x92,0x33,0x46,0x22,0xea,0xe2,0x7a,0x0c,0x95,0x9d,0xf8,0x7b,0x20, + 0x0b,0x93,0x0e,0x93,0x11,0x93,0x0f,0x93,0xbb,0xe7,0x06,0x9b,0x0d,0x96,0x9d,0x06, + 0x40,0xf1,0xad,0x80,0x0c,0x9b,0x07,0x33,0x23,0xf0,0x07,0x03,0x19,0x46,0xf1,0xe8, + 0x02,0x23,0x0c,0x91,0x92,0x46,0x9b,0x46,0x00,0x2a,0x73,0xf1,0x00,0x03,0xc0,0xf2, + 0xaf,0x80,0x07,0x9b,0x01,0x33,0x00,0xf0,0xad,0x85,0x06,0x9b,0x23,0xf0,0x80,0x05, + 0x5a,0xea,0x0b,0x03,0x40,0xf0,0xb1,0x82,0x07,0x9b,0x00,0x2b,0x40,0xf0,0xb4,0x82, + 0x06,0x95,0x00,0x23,0x07,0x93,0x0a,0x93,0x52,0xaf,0xc3,0xe0,0x0c,0x9b,0x53,0xf8, + 0x04,0x2b,0x09,0x92,0x00,0x2a,0x80,0xf2,0x71,0x84,0x09,0x9a,0x0c,0x93,0x52,0x42, + 0x09,0x92,0x06,0x9b,0x34,0x78,0x43,0xf0,0x04,0x03,0x06,0x93,0xd6,0xe5,0x34,0x78, + 0x8d,0xf8,0x7b,0x50,0xd2,0xe5,0x7b,0xa3,0x76,0x09,0x73,0xfe,0xac,0xc3,0xe9,0x47, + 0x27,0xb8,0x0e,0x75,0x3f,0x70,0x26,0x19,0x1c,0xe7,0x11,0xbe,0x33,0xa0,0x7f,0xdd, + 0x12,0x1f,0xcc,0x3a,0xd2,0x17,0x31,0x53,0x3e,0x4e,0x04,0xf6,0x12,0xe0,0xbe,0xca, + 0x9e,0xaa,0xdd,0xe3,0x3d,0xda,0xd1,0x52,0xe7,0x84,0xfa,0x55,0xf4,0x99,0xbd,0x91, + 0xfa,0x44,0x17,0xca,0x4d,0x71,0xed,0x66,0x87,0xd7 }; -static const unsigned char scp_0000013_ack[] = { 0xbe, 0xef, 0xed, 0x06, 0x00, 0x00, 0x94, 0x65 }; +static const unsigned char scp_0000013_ack[] = { 0xbe,0xef,0xed,0x06,0x00,0x00,0x94,0x65 }; -static const unsigned char scp_0000014_write_mem_response[] = { 0xbe, 0xef, 0xed, 0x05, 0x00, - 0x08, 0x95, 0xae, 0x5a, 0x01, - 0x00, 0x04, 0x00, 0x00, 0x00, - 0x00, 0xe0, 0x02, 0xb9, 0xa4 }; +static const unsigned char scp_0000014_write_mem_response[] = { 0xbe,0xef,0xed,0x05,0x00, + 0x08,0x95,0xae,0x5a,0x01, + 0x00,0x04,0x00,0x00,0x00, + 0x00,0xe0,0x02,0xb9,0xa4 }; -static const unsigned char scp_0000015_ack[] = { 0xbe, 0xef, 0xed, 0x06, 0x00, 0x00, 0x95, 0xf1 }; +static const unsigned char scp_0000015_ack[] = { 0xbe,0xef,0xed,0x06,0x00,0x00,0x95,0xf1 }; static const unsigned char scp_0000016_write_mem[] = { - 0xbe, 0xef, 0xed, 0x05, 0x20, 0x2e, 0x96, 0x17, 0x5a, 0x02, 0x1f, 0xea, 0x24, 0x02, 0x10, 0x00, - 0xdf, 0xe0, 0x00, 0x00, 0x1f, 0xe0, 0x06, 0x9b, 0x0d, 0x96, 0x43, 0xf0, 0x10, 0x05, 0xaf, 0x06, - 0x40, 0xf1, 0x29, 0x84, 0x0c, 0x9b, 0x07, 0x33, 0x23, 0xf0, 0x07, 0x03, 0xf3, 0xe8, 0x02, 0xab, - 0x0c, 0x93, 0x01, 0x23, 0x00, 0x22, 0x8d, 0xf8, 0x7b, 0x20, 0x07, 0x9a, 0x11, 0x46, 0x01, 0x31, - 0x7d, 0xd0, 0x25, 0xf0, 0x80, 0x01, 0x06, 0x91, 0x5a, 0xea, 0x0b, 0x01, 0x40, 0xf0, 0x71, 0x82, - 0x00, 0x2a, 0x40, 0xf0, 0x85, 0x86, 0x00, 0x2b, 0xc3, 0xd1, 0x15, 0xf0, 0x01, 0x03, 0x0a, 0x93, - 0x00, 0xf0, 0x6b, 0x84, 0x30, 0x23, 0x8d, 0xf8, 0x47, 0x31, 0x0d, 0xf2, 0x47, 0x17, 0x81, 0xe0, - 0x06, 0x9b, 0x34, 0x78, 0x43, 0xf0, 0x80, 0x03, 0x06, 0x93, 0x9f, 0xe5, 0x32, 0x46, 0x12, 0xf8, - 0x01, 0x4b, 0x2a, 0x2c, 0x01, 0xf0, 0xf0, 0x82, 0xa4, 0xf1, 0x30, 0x03, 0x09, 0x2b, 0x16, 0x46, - 0x98, 0xbf, 0x00, 0x22, 0x01, 0xf2, 0x90, 0x81, 0x16, 0xf8, 0x01, 0x4b, 0x02, 0xeb, 0x82, 0x02, - 0x03, 0xeb, 0x42, 0x02, 0xa4, 0xf1, 0x30, 0x03, 0x09, 0x2b, 0xf5, 0xd9, 0x07, 0x92, 0x86, 0xe5, - 0x06, 0x9b, 0x34, 0x78, 0x43, 0xf0, 0x01, 0x03, 0x06, 0x93, 0x7f, 0xe5, 0x9d, 0xf8, 0x7b, 0x30, - 0x00, 0x2b, 0x7f, 0xf4, 0x05, 0xae, 0x34, 0x78, 0x8d, 0xf8, 0x7b, 0xa0, 0x76, 0xe5, 0x34, 0x78, - 0x06, 0x9b, 0x6c, 0x2c, 0x00, 0xf0, 0xc1, 0x85, 0x43, 0xf0, 0x10, 0x03, 0x06, 0x93, 0x6d, 0xe5, - 0x06, 0x9b, 0x34, 0x78, 0x43, 0xf0, 0x08, 0x03, 0x06, 0x93, 0x67, 0xe5, 0x06, 0x9b, 0x0d, 0x96, - 0x43, 0xf0, 0x10, 0x03, 0x06, 0x93, 0x06, 0x9b, 0x9d, 0x06, 0x3f, 0xf5, 0x53, 0xaf, 0x06, 0x9b, - 0xd8, 0x06, 0x40, 0xf1, 0xf6, 0x84, 0x0c, 0x9b, 0x53, 0xf8, 0x04, 0x2b, 0x0c, 0x93, 0x4f, 0xea, - 0xe2, 0x7b, 0x5b, 0x46, 0x00, 0x2a, 0x73, 0xf1, 0x00, 0x03, 0x92, 0x46, 0xbf, 0xf6, 0x51, 0xaf, - 0x07, 0x9a, 0x06, 0x9d, 0xda, 0xf1, 0x00, 0x0a, 0x11, 0x46, 0x4f, 0xf0, 0x2d, 0x03, 0x6b, 0xeb, - 0x4b, 0x0b, 0x01, 0x31, 0x8d, 0xf8, 0x7b, 0x30, 0x4f, 0xf0, 0x01, 0x03, 0x81, 0xd1, 0x01, 0x2b, - 0x00, 0xf0, 0xfb, 0x81, 0x02, 0x2b, 0x52, 0xaf, 0x73, 0xd1, 0x16, 0x98, 0x4f, 0xea, 0x1a, 0x13, - 0x0a, 0xf0, 0x0f, 0x01, 0x43, 0xea, 0x0b, 0x73, 0x4f, 0xea, 0x1b, 0x12, 0x9a, 0x46, 0x93, 0x46, - 0x43, 0x5c, 0x07, 0xf8, 0x01, 0x3d, 0x5a, 0xea, 0x0b, 0x03, 0xef, 0xd1, 0x52, 0xab, 0xdb, 0x1b, - 0x06, 0x95, 0x0a, 0x93, 0x00, 0x23, 0x07, 0x99, 0x0b, 0x93, 0x0e, 0x93, 0x11, 0x93, 0x0f, 0x93, - 0x0a, 0x9b, 0x9d, 0xf8, 0x7b, 0x20, 0x8b, 0x42, 0xb8, 0xbf, 0x0b, 0x46, 0x9a, 0x46, 0xc0, 0xe6, - 0x00, 0xbf, 0xff, 0xff, 0xef, 0x7f, 0x40, 0x37, 0x01, 0x10, 0x44, 0x37, 0x01, 0x10, 0x06, 0x9b, - 0x0d, 0x96, 0x43, 0xf0, 0x10, 0x03, 0x06, 0x93, 0x06, 0x9b, 0x99, 0x06, 0x40, 0xf1, 0x77, 0x83, - 0x0c, 0x9b, 0x07, 0x33, 0x23, 0xf0, 0x07, 0x03, 0xf3, 0xe8, 0x02, 0xab, 0x0c, 0x93, 0x06, 0x9b, - 0x23, 0xf4, 0x80, 0x65, 0x00, 0x23, 0x35, 0xe7, 0x34, 0x78, 0x06, 0x9b, 0x68, 0x2c, 0x00, 0xf0, - 0x3d, 0x85, 0x43, 0xf0, 0x40, 0x03, 0x06, 0x93, 0xf0, 0xe4, 0x0c, 0x9b, 0x0d, 0x96, 0x47, 0xf6, - 0x30, 0x01, 0x53, 0xf8, 0x04, 0x2b, 0xad, 0xf8, 0x7c, 0x10, 0x06, 0x99, 0x0c, 0x93, 0xcd, 0x4b, - 0x16, 0x93, 0x41, 0xf0, 0x02, 0x05, 0x92, 0x46, 0x4f, 0xf0, 0x00, 0x0b, 0x02, 0x23, 0x78, 0x24, - 0x18, 0xe7, 0x06, 0x9b, 0x0d, 0x96, 0x9e, 0x06, 0x00, 0xf1, 0xa1, 0x83, 0x06, 0x9b, 0xdd, 0x06, - 0x00, 0xf1, 0xac, 0x85, 0x06, 0x9b, 0x5c, 0x06, 0x00, 0xf1, 0x48, 0x86, 0x06, 0x9b, 0x98, 0x05, - 0x40, 0xf1, 0xa4, 0x85, 0x0c, 0x9b, 0x08, 0x99, 0x53, 0xf8, 0x04, 0x2b, 0x0c, 0x93, 0x11, 0x70, - 0x1a, 0xe6, 0x4f, 0xea, 0xda, 0x02, 0x42, 0xea, 0x4b, 0x72, 0x4f, 0xea, 0xdb, 0x01, 0x0a, 0xf0, - 0x07, 0x03, 0x8b, 0x46, 0x92, 0x46, 0x30, 0x33, 0x5a, 0xea, 0x0b, 0x01, 0x3a, 0x46, 0x07, 0xf8, - 0x01, 0x3d, 0xee, 0xd1, 0xe9, 0x07, 0x89, 0xd5, 0x30, 0x2b, 0x87, 0xd0, 0x30, 0x23, 0x02, 0x3a, - 0x07, 0xf8, 0x01, 0x3c, 0x52, 0xab, 0x9b, 0x1a, 0x06, 0x95, 0x0a, 0x93, 0x17, 0x46, 0x81, 0xe7, - 0x65, 0x2c, 0x40, 0xf3, 0x13, 0x81, 0xdd, 0xe9, 0x12, 0x01, 0x00, 0x22, 0x00, 0x23, 0x04, 0xf0, - 0xee, 0xff, 0x00, 0x28, 0x00, 0xf0, 0x04, 0x82, 0x27, 0x9b, 0xa7, 0x4a, 0xc8, 0xf8, 0x00, 0x20, - 0x01, 0x33, 0x01, 0x35, 0x01, 0x22, 0x07, 0x2b, 0xcd, 0xe9, 0x27, 0x35, 0xc8, 0xf8, 0x04, 0x20, - 0x00, 0xf3, 0x40, 0x85, 0x08, 0xf1, 0x08, 0x08, 0x20, 0x9b, 0x10, 0x9a, 0x93, 0x42, 0x80, 0xf2, - 0x07, 0x83, 0x27, 0x9b, 0x15, 0x9a, 0xc8, 0xf8, 0x00, 0x20, 0x14, 0x9a, 0xc8, 0xf8, 0x04, 0x20, - 0x01, 0x33, 0x15, 0x44, 0x07, 0x2b, 0x28, 0x95, 0x27, 0x93, 0x00, 0xf3, 0xb1, 0x84, 0x08, 0xf1, - 0x08, 0x08, 0x10, 0x9b, 0x5c, 0x1e, 0x00, 0x2c, 0x7f, 0xf7, 0xa9, 0xad, 0x10, 0x2c, 0x27, 0x9b, - 0xdf, 0xf8, 0x4c, 0xb2, 0x40, 0xf3, 0x2f, 0x85, 0x5f, 0x46, 0x10, 0x26, 0x18, 0xee, 0x10, 0xba, - 0x05, 0xe0, 0x08, 0xf1, 0x08, 0x08, 0x10, 0x3c, 0x10, 0x2c, 0x40, 0xf3, 0x23, 0x85, 0x01, 0x33, - 0x10, 0x35, 0x07, 0x2b, 0xcd, 0xe9, 0x27, 0x35, 0xc8, 0xe9, 0x00, 0x76, 0xf1, 0xdd, 0x26, 0xaa, - 0x59, 0x46, 0x48, 0x46, 0x04, 0xf0, 0xf3, 0xf8, 0x00, 0x28, 0x40, 0xf0, 0x3e, 0x82, 0xdd, 0xe9, - 0x27, 0x35, 0x0d, 0xf1, 0xa4, 0x08, 0xe6, 0xe7, 0x09, 0x9b, 0xa3, 0xeb, 0x0a, 0x06, 0x00, 0x2e, - 0x7f, 0xf7, 0x64, 0xad, 0x10, 0x2e, 0x27, 0x9a, 0xdf, 0xf8, 0xf4, 0xb1, 0x29, 0xdd, 0x58, 0x46, - 0x29, 0x46, 0xa3, 0x46, 0x18, 0xee, 0x10, 0x5a, 0x10, 0x23, 0x04, 0x46, 0x04, 0xe0, 0x10, 0x3e, - 0x10, 0x2e, 0x08, 0xf1, 0x08, 0x08, 0x18, 0xdd, 0x01, 0x32, 0x10, 0x31, 0x07, 0x2a, 0xcd, 0xe9, - 0x27, 0x21, 0xc8, 0xe9, 0x00, 0x43, 0xf2, 0xdd, 0x26, 0xaa, 0x29, 0x46, 0x48, 0x46, 0x04, 0xf0, - 0xc6, 0xf8, 0x00, 0x28, 0x40, 0xf0, 0x10, 0x82, 0x10, 0x3e, 0x10, 0x2e, 0xdd, 0xe9, 0x27, 0x21, - 0x0d, 0xf1, 0xa4, 0x08, 0x4f, 0xf0, 0x10, 0x03, 0xe6, 0xdc, 0x23, 0x46, 0x0d, 0x46, 0x5c, 0x46, - 0x9b, 0x46, 0x01, 0x32, 0x35, 0x44, 0x07, 0x2a, 0xcd, 0xe9, 0x27, 0x25, 0xc8, 0xf8, 0x00, 0xb0, - 0xc8, 0xf8, 0x04, 0x60, 0x00, 0xf3, 0x36, 0x84, 0x07, 0x9b, 0x0a, 0x9a, 0x9e, 0x1a, 0x00, 0x2e, - 0x08, 0xf1, 0x08, 0x08, 0x7f, 0xf7, 0x28, 0xad, 0x10, 0x2e, 0x27, 0x9a, 0xdf, 0xf8, 0x70, 0xb1, - 0x29, 0xdd, 0x58, 0x46, 0x29, 0x46, 0xa3, 0x46, 0x18, 0xee, 0x10, 0x5a, 0x10, 0x23, 0x04, 0x46, - 0x04, 0xe0, 0x10, 0x3e, 0x10, 0x2e, 0x08, 0xf1, 0x08, 0x08, 0x18, 0xdd, 0x01, 0x32, 0x10, 0x31, - 0x07, 0x2a, 0xcd, 0xe9, 0x27, 0x21, 0xc8, 0xe9, 0x00, 0x43, 0xf2, 0xdd, 0x26, 0xaa, 0x29, 0x46, - 0x48, 0x46, 0x04, 0xf0, 0x84, 0xf8, 0x00, 0x28, 0x40, 0xf0, 0xce, 0x81, 0x10, 0x3e, 0x10, 0x2e, - 0xdd, 0xe9, 0x27, 0x21, 0x0d, 0xf1, 0xa4, 0x08, 0x4f, 0xf0, 0x10, 0x03, 0xe6, 0xdc, 0x23, 0x46, - 0x0d, 0x46, 0x5c, 0x46, 0x9b, 0x46, 0x01, 0x32, 0x35, 0x44, 0x07, 0x2a, 0xcd, 0xe9, 0x27, 0x25, - 0xc8, 0xf8, 0x00, 0xb0, 0xc8, 0xf8, 0x04, 0x60, 0x00, 0xf3, 0x17, 0x82, 0x08, 0xf1, 0x08, 0x08, - 0xea, 0xe4, 0x18, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x04, 0xf0, 0x60, 0xf8, 0x00, 0x28, - 0x3f, 0xf4, 0x08, 0xad, 0x18, 0xee, 0x10, 0xba, 0xa7, 0xe1, 0x27, 0x9b, 0x15, 0x99, 0xc8, 0xf8, - 0x00, 0x10, 0x14, 0x99, 0xc8, 0xf8, 0x04, 0x10, 0x01, 0x33, 0x0d, 0x44, 0x07, 0x2b, 0x28, 0x95, - 0x27, 0x93, 0x00, 0xf3, 0xce, 0x85, 0x08, 0xf1, 0x08, 0x08, 0x00, 0x2a, 0xc0, 0xf2, 0xc5, 0x87, - 0x10, 0x9a, 0x01, 0x33, 0x15, 0x44, 0x07, 0x2b, 0xcd, 0xe9, 0x27, 0x35, 0xc8, 0xe9, 0x00, 0x72, - 0x7f, 0xf7, 0xd3, 0xac, 0x18, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x04, 0xf0, 0x37, 0xf8, - 0x00, 0x28, 0xd7, 0xd1, 0x28, 0x9d, 0x0d, 0xf1, 0xa4, 0x08, 0xc8, 0xe4, 0x10, 0x9b, 0x27, 0x9c, - 0x01, 0x2b, 0x40, 0xf3, 0x92, 0x81, 0x01, 0x34, 0x01, 0x35, 0x01, 0x23, 0x07, 0x2c, 0xcd, 0xe9, - 0x27, 0x45, 0xc8, 0xf8, 0x00, 0x70, 0xc8, 0xf8, 0x04, 0x30, 0x00, 0xf3, 0xf0, 0x83, 0x08, 0xf1, - 0x08, 0x08, 0x14, 0x9b, 0x15, 0x9a, 0x01, 0x34, 0x1d, 0x44, 0x07, 0x2c, 0xcd, 0xe9, 0x27, 0x45, - 0xc8, 0xe9, 0x00, 0x23, 0x00, 0xf3, 0xf1, 0x83, 0x08, 0xf1, 0x08, 0x08, 0x00, 0x23, 0xdd, 0xe9, - 0x12, 0x01, 0x00, 0x22, 0x04, 0xf0, 0xbb, 0xfe, 0x10, 0x9b, 0x00, 0x28, 0x40, 0xf0, 0x8b, 0x81, - 0x01, 0x3b, 0x01, 0x34, 0x01, 0x37, 0x1d, 0x44, 0x07, 0x2c, 0xcd, 0xe9, 0x27, 0x45, 0xc8, 0xf8, - 0x00, 0x70, 0xc8, 0xf8, 0x04, 0x30, 0x00, 0xf3, 0x70, 0x81, 0x08, 0xf1, 0x08, 0x08, 0x18, 0x9a, - 0x01, 0x34, 0x15, 0x44, 0x22, 0xab, 0x07, 0x2c, 0xcd, 0xe9, 0x27, 0x45, 0xc8, 0xe9, 0x00, 0x32, - 0x7f, 0xf7, 0x83, 0xac, 0xae, 0xe7, 0x50, 0x37, 0x01, 0x10, 0x80, 0x37, 0x01, 0x10, 0x94, 0x37, - 0x01, 0x10, 0x01, 0x2b, 0x06, 0x9d, 0x7f, 0xf4, 0x05, 0xae, 0xbb, 0xf1, 0x00, 0x0f, 0x08, 0xbf, - 0xba, 0xf1, 0x0a, 0x0f, 0x80, 0xf0, 0xf6, 0x82, 0x0a, 0xf1, 0x30, 0x0a, 0x01, 0x23, 0x8d, 0xf8, - 0x47, 0xa1, 0x06, 0x95, 0x0a, 0x93, 0x0d, 0xf2, 0x47, 0x17, 0x0b, 0xe6, 0x10, 0x2e, 0xdd, 0xe9, - 0x27, 0x21, 0x29, 0xdd, 0x1b, 0x93, 0x10, 0x25, 0x43, 0x46, 0x08, 0x46, 0xb8, 0x46, 0x27, 0x46, - 0x18, 0xee, 0x10, 0x4a, 0x04, 0xe0, 0x10, 0x3e, 0x10, 0x2e, 0x03, 0xf1, 0x08, 0x03, 0x16, 0xdd, - 0x01, 0x32, 0xc4, 0x49, 0x10, 0x30, 0x07, 0x2a, 0xcd, 0xe9, 0x27, 0x20, 0xc3, 0xe9, 0x00, 0x15, - 0xf1, 0xdd, 0x26, 0xaa, 0x21, 0x46, 0x48, 0x46, 0x03, 0xf0, 0xb1, 0xff, 0x00, 0x28, 0x40, 0xf0, - 0xb3, 0x83, 0x10, 0x3e, 0x10, 0x2e, 0xdd, 0xe9, 0x27, 0x20, 0x29, 0xab, 0xe8, 0xdc, 0x3c, 0x46, - 0x47, 0x46, 0x98, 0x46, 0x1b, 0x9b, 0x01, 0x46, 0x01, 0x32, 0xb6, 0x48, 0xc8, 0xf8, 0x00, 0x00, - 0x75, 0x18, 0x07, 0x2a, 0xcd, 0xe9, 0x27, 0x25, 0xc8, 0xf8, 0x04, 0x60, 0x00, 0xf3, 0x8a, 0x83, - 0x9d, 0xf8, 0x7b, 0x20, 0x08, 0xf1, 0x08, 0x08, 0xff, 0xf7, 0xed, 0xbb, 0x18, 0xee, 0x10, 0x1a, - 0x26, 0xaa, 0x48, 0x46, 0x1b, 0x93, 0x03, 0xf0, 0x8a, 0xff, 0x00, 0x28, 0x7f, 0xf4, 0x2a, 0xaf, - 0x28, 0x9d, 0x1b, 0x9b, 0x0d, 0xf1, 0xa4, 0x08, 0xff, 0xf7, 0xed, 0xbb, 0x18, 0xee, 0x10, 0x1a, - 0x26, 0xaa, 0x48, 0x46, 0x03, 0xf0, 0x7b, 0xff, 0x00, 0x28, 0x7f, 0xf4, 0x1b, 0xaf, 0x28, 0x9d, - 0x0d, 0xf1, 0xa4, 0x08, 0xff, 0xf7, 0xee, 0xbb, 0x10, 0x2c, 0x27, 0x9b, 0x20, 0xdd, 0x18, 0xee, - 0x10, 0x7a, 0x10, 0x26, 0x04, 0xe0, 0x10, 0x3c, 0x10, 0x2c, 0x08, 0xf1, 0x08, 0x08, 0x17, 0xdd, - 0x01, 0x33, 0x98, 0x4a, 0x10, 0x35, 0x07, 0x2b, 0xcd, 0xe9, 0x27, 0x35, 0xc8, 0xe9, 0x00, 0x26, - 0xf1, 0xdd, 0x26, 0xaa, 0x39, 0x46, 0x48, 0x46, 0x03, 0xf0, 0x59, 0xff, 0x00, 0x28, 0x40, 0xf0, - 0x77, 0x83, 0x10, 0x3c, 0x10, 0x2c, 0xdd, 0xe9, 0x27, 0x35, 0x0d, 0xf1, 0xa4, 0x08, 0xe7, 0xdc, - 0x01, 0x33, 0x8c, 0x4a, 0xc8, 0xf8, 0x00, 0x20, 0x25, 0x44, 0x07, 0x2b, 0xcd, 0xe9, 0x27, 0x35, - 0xc8, 0xf8, 0x04, 0x40, 0x7f, 0xf7, 0xe4, 0xab, 0x18, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, - 0x03, 0xf0, 0x3d, 0xff, 0x00, 0x28, 0x7f, 0xf4, 0xdd, 0xae, 0x28, 0x9d, 0xff, 0xf7, 0xd8, 0xbb, - 0x20, 0x9a, 0x00, 0x2a, 0x40, 0xf3, 0x26, 0x81, 0xdd, 0xe9, 0x0f, 0x32, 0x93, 0x42, 0xa8, 0xbf, - 0x13, 0x46, 0x00, 0x2b, 0x1c, 0x46, 0x0d, 0xdd, 0x27, 0x9b, 0xc8, 0xf8, 0x00, 0x70, 0x01, 0x33, - 0x25, 0x44, 0x07, 0x2b, 0x28, 0x95, 0xc8, 0xf8, 0x04, 0x40, 0x27, 0x93, 0x00, 0xf3, 0xd5, 0x85, - 0x08, 0xf1, 0x08, 0x08, 0x0f, 0x9b, 0x00, 0x2c, 0xa8, 0xbf, 0x1b, 0x1b, 0x00, 0x2b, 0x1c, 0x46, - 0x00, 0xf3, 0x54, 0x83, 0x0f, 0x9b, 0x3b, 0x44, 0x9b, 0x46, 0x06, 0x9b, 0x59, 0x05, 0x00, 0xf1, - 0x00, 0x85, 0x20, 0x9b, 0x10, 0x9a, 0x93, 0x42, 0x03, 0xdb, 0x06, 0x9a, 0xd2, 0x07, 0x40, 0xf1, - 0xce, 0x83, 0x27, 0x9a, 0x15, 0x99, 0xc8, 0xf8, 0x00, 0x10, 0x14, 0x99, 0xc8, 0xf8, 0x04, 0x10, - 0x01, 0x32, 0x0d, 0x44, 0x07, 0x2a, 0x28, 0x95, 0x27, 0x92, 0x00, 0xf3, 0xe6, 0x85, 0x08, 0xf1, - 0x08, 0x08, 0x10, 0x9a, 0xbc, 0x18, 0xa4, 0xeb, 0x0b, 0x04, 0xd3, 0x1a, 0x9c, 0x42, 0xa8, 0xbf, - 0x1c, 0x46, 0x00, 0x2c, 0x0d, 0xdd, 0x27, 0x9a, 0xc8, 0xf8, 0x00, 0xb0, 0x01, 0x32, 0x25, 0x44, - 0x07, 0x2a, 0x28, 0x95, 0xc8, 0xf8, 0x04, 0x40, 0x27, 0x92, 0x00, 0xf3, 0x2c, 0x86, 0x08, 0xf1, - 0x08, 0x08, 0x00, 0x2c, 0xac, 0xbf, 0x1c, 0x1b, 0x1c, 0x46, 0x00, 0x2c, 0x7f, 0xf7, 0x6f, 0xab, - 0x10, 0x2c, 0x27, 0x9b, 0xdf, 0xf8, 0x44, 0xb1, 0x40, 0xf3, 0xf5, 0x82, 0x5f, 0x46, 0x10, 0x26, - 0x18, 0xee, 0x10, 0xba, 0x05, 0xe0, 0x08, 0xf1, 0x08, 0x08, 0x10, 0x3c, 0x10, 0x2c, 0x40, 0xf3, - 0xe9, 0x82, 0x01, 0x33, 0x10, 0x35, 0x07, 0x2b, 0xcd, 0xe9, 0x27, 0x35, 0xc8, 0xe9, 0x00, 0x76, - 0xf1, 0xdd, 0x26, 0xaa, 0x59, 0x46, 0x48, 0x46, 0x03, 0xf0, 0xb9, 0xfe, 0x28, 0xb9, 0xdd, 0xe9, - 0x27, 0x35, 0x0d, 0xf1, 0xa4, 0x08, 0xe8, 0xe7, 0xab, 0x46, 0x0b, 0x99, 0x11, 0xb1, 0x48, 0x46, - 0x02, 0xf0, 0xd7, 0xf9, 0xdb, 0xf8, 0x64, 0x30, 0x13, 0xf0, 0x01, 0x0f, 0xbb, 0xf8, 0x0c, 0x30, - 0x02, 0xd1, 0x98, 0x05, 0x40, 0xf1, 0x8f, 0x82, 0x59, 0x06, 0x00, 0xf1, 0x10, 0x86, 0x08, 0x98, - 0x53, 0xb0, 0xbd, 0xec, 0x06, 0x8b, 0xbd, 0xe8, 0xf0, 0x8f, 0x06, 0x9b, 0xde, 0x07, 0x3f, 0xf5, - 0x6a, 0xae, 0x01, 0x34, 0x01, 0x35, 0x01, 0x23, 0x07, 0x2c, 0xcd, 0xe9, 0x27, 0x45, 0xc8, 0xf8, - 0x00, 0x70, 0xc8, 0xf8, 0x04, 0x30, 0x7f, 0xf7, 0x90, 0xae, 0x18, 0xee, 0x10, 0x1a, 0x26, 0xaa, - 0x48, 0x46, 0x03, 0xf0, 0x84, 0xfe, 0x00, 0x28, 0x7f, 0xf4, 0x24, 0xae, 0xdd, 0xe9, 0x27, 0x45, - 0x0d, 0xf1, 0xa4, 0x08, 0x83, 0xe6, 0x5e, 0x1e, 0x00, 0x2e, 0x7f, 0xf7, 0x80, 0xae, 0x10, 0x2e, - 0xdf, 0xf8, 0x88, 0xb0, 0x40, 0xf3, 0xe2, 0x82, 0xcd, 0xf8, 0x1c, 0xa0, 0x10, 0x27, 0x18, 0xee, - 0x10, 0xaa, 0x05, 0xe0, 0x08, 0xf1, 0x08, 0x08, 0x10, 0x3e, 0x10, 0x2e, 0x40, 0xf3, 0xd4, 0x82, - 0x01, 0x34, 0x10, 0x35, 0x07, 0x2c, 0xcd, 0xe9, 0x27, 0x45, 0xc8, 0xe9, 0x00, 0xb7, 0xf1, 0xdd, - 0x26, 0xaa, 0x51, 0x46, 0x48, 0x46, 0x03, 0xf0, 0x5a, 0xfe, 0x00, 0x28, 0x40, 0xf0, 0xb8, 0x85, - 0xdd, 0xe9, 0x27, 0x45, 0x0d, 0xf1, 0xa4, 0x08, 0xe6, 0xe7, 0x18, 0xee, 0x10, 0x1a, 0x26, 0xaa, - 0x48, 0x46, 0x03, 0xf0, 0x4c, 0xfe, 0x00, 0x28, 0x7f, 0xf4, 0xec, 0xad, 0x28, 0x9d, 0x0d, 0xf1, - 0xa4, 0x08, 0xff, 0xf7, 0xc9, 0xba, 0x0c, 0x9a, 0xee, 0x06, 0x52, 0xf8, 0x04, 0x1b, 0x0c, 0x92, - 0x4f, 0xf0, 0x01, 0x03, 0x5e, 0xd4, 0x68, 0x06, 0x59, 0xd5, 0x1f, 0xfa, 0x81, 0xfa, 0x4f, 0xf0, - 0x00, 0x0b, 0xff, 0xf7, 0xcf, 0xbb, 0x84, 0x37, 0x01, 0x10, 0x94, 0x37, 0x01, 0x10, 0x06, 0x9b, - 0xda, 0x06, 0x00, 0xf1, 0x36, 0x81, 0x06, 0x9b, 0x5b, 0x06, 0x40, 0xf1, 0xaf, 0x82, 0x0c, 0x9b, - 0x53, 0xf8, 0x04, 0x2b, 0x0c, 0x93, 0x1f, 0xfa, 0x82, 0xfa, 0x4f, 0xf0, 0x00, 0x0b, 0x7e, 0xe4, - 0x06, 0x9b, 0xd8, 0x07, 0x7f, 0xf5, 0xb3, 0xaa, 0xf3, 0xe4, 0xdb, 0xf8, 0x58, 0x00, 0x02, 0xf0, - 0xe0, 0xfb, 0xbb, 0xf9, 0x0c, 0x20, 0x93, 0xb2, 0xff, 0xf7, 0x22, 0xb9, 0x34, 0x78, 0x0c, 0x93, - 0xff, 0xf7, 0x6c, 0xb9, 0x27, 0x9b, 0xc4, 0x49, 0xc8, 0xf8, 0x00, 0x10, 0x01, 0x33, 0x01, 0x35, - 0x01, 0x21, 0x07, 0x2b, 0xcd, 0xe9, 0x27, 0x35, 0xc8, 0xf8, 0x04, 0x10, 0x00, 0xf3, 0x97, 0x84, - 0x08, 0xf1, 0x08, 0x08, 0x00, 0x2a, 0x7f, 0xf4, 0xa0, 0xad, 0x06, 0x9b, 0x10, 0x9a, 0x03, 0xf0, - 0x01, 0x03, 0x13, 0x43, 0x3f, 0xf4, 0x8b, 0xaa, 0x27, 0x9b, 0x15, 0x9a, 0xc8, 0xf8, 0x00, 0x20, - 0x14, 0x9a, 0xc8, 0xf8, 0x04, 0x20, 0x01, 0x33, 0x15, 0x44, 0x07, 0x2b, 0x28, 0x95, 0x27, 0x93, - 0x00, 0xf3, 0x67, 0x83, 0x08, 0xf1, 0x08, 0x08, 0x9a, 0xe5, 0x52, 0xaf, 0x1a, 0xe4, 0xaa, 0x05, - 0x00, 0xf1, 0xae, 0x82, 0x8a, 0x46, 0x4f, 0xf0, 0x00, 0x0b, 0xff, 0xf7, 0x73, 0xbb, 0x0c, 0x9b, - 0x53, 0xf8, 0x04, 0x1b, 0x0c, 0x93, 0x08, 0x9b, 0xdd, 0x17, 0x1a, 0x46, 0x2b, 0x46, 0xc1, 0xe9, - 0x00, 0x23, 0xff, 0xf7, 0x81, 0xba, 0xdd, 0xe9, 0x12, 0x01, 0x0b, 0x46, 0x02, 0x46, 0x04, 0xf0, - 0xa8, 0xfc, 0x01, 0x46, 0x00, 0x28, 0x40, 0xf0, 0x2f, 0x86, 0x61, 0x2c, 0x00, 0xf0, 0xa2, 0x85, - 0x41, 0x2c, 0x00, 0xf0, 0xa2, 0x82, 0x07, 0x9b, 0x24, 0xf0, 0x20, 0x06, 0x5a, 0x1c, 0x0a, 0x96, - 0x00, 0xf0, 0xc3, 0x85, 0x47, 0x2e, 0x00, 0xf0, 0x9a, 0x85, 0xdd, 0xe9, 0x12, 0x01, 0x06, 0x9a, - 0x00, 0x29, 0x42, 0xf4, 0x80, 0x72, 0x0e, 0x92, 0x4f, 0xf0, 0x00, 0x03, 0xc0, 0xf2, 0xe4, 0x85, - 0x41, 0xec, 0x1a, 0x0b, 0x1b, 0x93, 0x0b, 0x93, 0x46, 0x2e, 0x00, 0xf0, 0x9d, 0x84, 0x45, 0x2e, - 0x40, 0xf0, 0x6d, 0x84, 0x07, 0x9b, 0x24, 0xa8, 0x5d, 0x1c, 0x21, 0xa9, 0x20, 0xaa, 0x02, 0x23, - 0xcd, 0xe9, 0x03, 0x10, 0x01, 0x95, 0x02, 0x92, 0x00, 0x93, 0x48, 0x46, 0x53, 0xec, 0x1a, 0x2b, - 0x00, 0xf0, 0xb1, 0xff, 0x07, 0x46, 0x05, 0x44, 0x0e, 0x9b, 0xdd, 0xf8, 0x18, 0xb0, 0x06, 0x93, - 0x51, 0xec, 0x1a, 0x0b, 0x00, 0x22, 0x00, 0x23, 0x04, 0xf0, 0x31, 0xfc, 0x00, 0x28, 0x00, 0xf0, - 0x52, 0x83, 0x2b, 0x46, 0xdb, 0x1b, 0x10, 0x93, 0x0a, 0x9b, 0x47, 0x2b, 0x00, 0xf0, 0x1d, 0x83, - 0x0a, 0x9b, 0x46, 0x2b, 0x00, 0xf0, 0x9f, 0x84, 0x20, 0x9b, 0x0f, 0x93, 0x0f, 0x9b, 0x0a, 0x9a, - 0x01, 0x3b, 0x41, 0x2a, 0x20, 0x93, 0x00, 0xf0, 0xa1, 0x85, 0xe2, 0xb2, 0x00, 0x21, 0x00, 0x2b, - 0xb8, 0xbf, 0x0f, 0x9b, 0x8d, 0xf8, 0x88, 0x20, 0xba, 0xbf, 0xc3, 0xf1, 0x01, 0x03, 0x2d, 0x22, - 0x2b, 0x22, 0x09, 0x2b, 0x8d, 0xf8, 0x89, 0x20, 0x40, 0xf3, 0x81, 0x85, 0x0d, 0xf1, 0x97, 0x0e, - 0xdf, 0xf8, 0xb0, 0xc1, 0x75, 0x46, 0x8c, 0xfb, 0x03, 0x21, 0xda, 0x17, 0xc2, 0xeb, 0xa1, 0x02, - 0x02, 0xeb, 0x82, 0x01, 0xa3, 0xeb, 0x41, 0x01, 0x1e, 0x46, 0x30, 0x31, 0x63, 0x2e, 0x28, 0x46, - 0x05, 0xf8, 0x01, 0x1c, 0x13, 0x46, 0x05, 0xf1, 0xff, 0x35, 0xec, 0xdc, 0x30, 0x33, 0xda, 0xb2, - 0x83, 0x1e, 0x9e, 0x45, 0x29, 0x46, 0x05, 0xf8, 0x01, 0x2c, 0x40, 0xf2, 0xf8, 0x85, 0x0d, 0xf1, - 0x8a, 0x03, 0x01, 0xe0, 0x11, 0xf8, 0x01, 0x2b, 0x03, 0xf8, 0x01, 0x2b, 0x8e, 0x45, 0xf9, 0xd1, - 0x0d, 0xf1, 0x99, 0x03, 0x0d, 0xf1, 0x8a, 0x02, 0x1b, 0x1a, 0x13, 0x44, 0x22, 0xaa, 0x9b, 0x1a, - 0x18, 0x93, 0x10, 0x9b, 0x18, 0x9a, 0x01, 0x2b, 0x1a, 0x44, 0x0a, 0x92, 0x40, 0xf3, 0xae, 0x85, - 0x0a, 0x9b, 0x14, 0x9a, 0x13, 0x44, 0x0a, 0x93, 0x00, 0x23, 0x2b, 0xf4, 0x80, 0x66, 0x0e, 0x93, - 0x11, 0x93, 0x0f, 0x93, 0x0a, 0x9b, 0x46, 0xf4, 0x80, 0x72, 0x06, 0x92, 0x23, 0xea, 0xe3, 0x7a, - 0x1b, 0x9b, 0x00, 0x2b, 0x40, 0xf0, 0xd8, 0x82, 0x9d, 0xf8, 0x7b, 0x20, 0x07, 0x93, 0xff, 0xf7, - 0x10, 0xba, 0x06, 0x9b, 0x59, 0x06, 0x40, 0xf1, 0x98, 0x81, 0x0c, 0x9b, 0x53, 0xf8, 0x04, 0x2b, - 0x0c, 0x93, 0x0f, 0xfa, 0x82, 0xfa, 0x4f, 0xea, 0xea, 0x7b, 0x52, 0x46, 0x5b, 0x46, 0xff, 0xf7, - 0x53, 0xba, 0x0c, 0x9b, 0x53, 0xf8, 0x04, 0x2b, 0x0c, 0x93, 0x92, 0x46, 0x4f, 0xf0, 0x00, 0x0b, - 0xff, 0xf7, 0x4d, 0xbb, 0xbb, 0xf1, 0x00, 0x0f, 0x08, 0xbf, 0xba, 0xf1, 0x0a, 0x0f, 0x06, 0x9d, - 0xff, 0xf4, 0x0a, 0xad, 0x05, 0xf4, 0x80, 0x66, 0x00, 0x23, 0x06, 0x95, 0xcd, 0xf8, 0x28, 0x80, - 0x17, 0x9d, 0xa0, 0x46, 0x52, 0xaf, 0x34, 0x46, 0x1e, 0x46, 0x09, 0xe0, 0x04, 0xf0, 0xf7, 0xfb, - 0xbb, 0xf1, 0x00, 0x0f, 0x08, 0xbf, 0xba, 0xf1, 0x0a, 0x0f, 0x1f, 0xd3, 0x82, 0x46, 0x8b, 0x46, - 0x0a, 0x22, 0x00, 0x23, 0x50, 0x46, 0x59, 0x46, 0x04, 0xf0, 0xe9, 0xfb, 0x94, 0x46, 0x0c, 0xf1, - 0x30, 0x0c, 0x07, 0xf8, 0x01, 0xcc, 0x50, 0x46, 0x59, 0x46, 0x0a, 0x22, 0x00, 0x23, 0x01, 0x36, - 0x01, 0x3f, 0x00, 0x2c, 0xe2, 0xd0, 0x95, 0xf8, 0x00, 0xc0, 0x66, 0x45, 0xde, 0xd1, 0xff, 0x2e, - 0xdc, 0xd0, 0x9b, 0x45, 0x08, 0xbf, 0x92, 0x45, 0x80, 0xf0, 0x91, 0x82, 0x52, 0xab, 0xdb, 0x1b, - 0x44, 0x46, 0x17, 0x95, 0xdd, 0xf8, 0x28, 0x80, 0x10, 0x96, 0x0a, 0x93, 0xff, 0xf7, 0xe2, 0xba, - 0x13, 0x4b, 0x0d, 0x96, 0x16, 0x93, 0x06, 0x9b, 0x9f, 0x06, 0x65, 0xd5, 0x0c, 0x9b, 0x07, 0x33, - 0x23, 0xf0, 0x07, 0x03, 0xf3, 0xe8, 0x02, 0xab, 0x0c, 0x93, 0x06, 0x9a, 0xd0, 0x07, 0x0a, 0xd5, - 0x5a, 0xea, 0x0b, 0x03, 0x07, 0xd0, 0x30, 0x23, 0x42, 0xf0, 0x02, 0x02, 0x8d, 0xf8, 0x7d, 0x40, - 0x06, 0x92, 0x8d, 0xf8, 0x7c, 0x30, 0x06, 0x9b, 0x23, 0xf4, 0x80, 0x65, 0x02, 0x23, 0xff, 0xf7, - 0x21, 0xba, 0x06, 0x9d, 0x0d, 0x96, 0xff, 0xf7, 0x12, 0xba, 0x80, 0x37, 0x01, 0x10, 0x50, 0x37, - 0x01, 0x10, 0x67, 0x66, 0x66, 0x66, 0x0d, 0x96, 0xff, 0xf7, 0xce, 0xba, 0xac, 0x4b, 0x0d, 0x96, - 0x16, 0x93, 0xd0, 0xe7, 0x18, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x03, 0xf0, 0x6f, 0xfc, - 0x00, 0x28, 0x7f, 0xf4, 0x0f, 0xac, 0x28, 0x9d, 0x0d, 0xf1, 0xa4, 0x08, 0xff, 0xf7, 0xe6, 0xb8, - 0x18, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x03, 0xf0, 0x61, 0xfc, 0x00, 0x28, 0x7f, 0xf4, - 0x01, 0xac, 0x28, 0x9d, 0x0d, 0xf1, 0xa4, 0x08, 0xff, 0xf7, 0x43, 0xbb, 0x43, 0xf4, 0x00, 0x73, - 0x74, 0x78, 0x06, 0x93, 0x01, 0x36, 0xfe, 0xf7, 0xb1, 0xbf, 0x43, 0xf0, 0x20, 0x03, 0x74, 0x78, - 0x06, 0x93, 0x01, 0x36, 0xfe, 0xf7, 0xaa, 0xbf, 0x07, 0x9b, 0x0e, 0x97, 0x06, 0x2b, 0x28, 0xbf, - 0x06, 0x23, 0x07, 0x97, 0x11, 0x97, 0x0f, 0x97, 0x0b, 0x97, 0x3a, 0x46, 0x9a, 0x46, 0x90, 0x4f, - 0x0c, 0x95, 0x0a, 0x93, 0xff, 0xf7, 0x45, 0xb9, 0x06, 0x9b, 0xde, 0x06, 0x3e, 0xd5, 0x0c, 0x9b, - 0x53, 0xf8, 0x04, 0x2b, 0x0c, 0x93, 0x92, 0x46, 0x4f, 0xf0, 0x00, 0x0b, 0x95, 0xe7, 0x18, 0xee, - 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x03, 0xf0, 0x2a, 0xfc, 0x00, 0x28, 0x7f, 0xf4, 0xca, 0xab, - 0xdd, 0xe9, 0x27, 0x45, 0x0d, 0xf1, 0xa4, 0x08, 0x03, 0xe4, 0x18, 0xee, 0x10, 0x1a, 0x26, 0xaa, - 0x48, 0x46, 0x03, 0xf0, 0x1c, 0xfc, 0x00, 0x28, 0x7f, 0xf4, 0xbc, 0xab, 0xdd, 0xe9, 0x27, 0x45, - 0x0d, 0xf1, 0xa4, 0x08, 0x02, 0xe4, 0xdb, 0xf8, 0x58, 0x00, 0x02, 0xf0, 0xdc, 0xf9, 0xbb, 0xf8, - 0x0c, 0x30, 0x69, 0xe5, 0x18, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x1b, 0x93, 0x03, 0xf0, - 0x06, 0xfc, 0x00, 0x28, 0x7f, 0xf4, 0xa6, 0xab, 0x9d, 0xf8, 0x7b, 0x20, 0x28, 0x9d, 0x1b, 0x9b, - 0x0d, 0xf1, 0xa4, 0x08, 0xff, 0xf7, 0x57, 0xb8, 0xa3, 0x46, 0x46, 0xe5, 0x06, 0x9b, 0x5d, 0x06, - 0x6e, 0xd5, 0x0c, 0x9b, 0x53, 0xf8, 0x04, 0x2b, 0x0c, 0x93, 0x1f, 0xfa, 0x82, 0xfa, 0x4f, 0xf0, - 0x00, 0x0b, 0x52, 0xe7, 0x18, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x03, 0xf0, 0xe7, 0xfb, - 0x00, 0x28, 0x7f, 0xf4, 0x87, 0xab, 0x28, 0x9d, 0x0d, 0xf1, 0xa4, 0x08, 0xff, 0xf7, 0xb4, 0xba, - 0xbb, 0x46, 0x2a, 0xe5, 0xbb, 0x46, 0x01, 0x33, 0x25, 0x44, 0x07, 0x2b, 0xc8, 0xf8, 0x00, 0xb0, - 0xcd, 0xe9, 0x27, 0x35, 0xc8, 0xf8, 0x04, 0x40, 0x7f, 0xf7, 0x67, 0xa8, 0xff, 0xf7, 0x92, 0xbb, - 0x01, 0x2b, 0x06, 0x9d, 0x7f, 0xf4, 0xee, 0xa9, 0xff, 0xf7, 0xee, 0xbb, 0x0c, 0x9b, 0x08, 0x99, - 0x53, 0xf8, 0x04, 0x2b, 0x11, 0x60, 0x0c, 0x93, 0xff, 0xf7, 0x76, 0xb8, 0x10, 0x2c, 0x27, 0x9b, - 0xdf, 0xf8, 0x44, 0xb1, 0x64, 0xdd, 0x2a, 0x46, 0x10, 0x26, 0x5d, 0x46, 0x18, 0xee, 0x10, 0xba, - 0x04, 0xe0, 0x08, 0xf1, 0x08, 0x08, 0x10, 0x3c, 0x10, 0x2c, 0x57, 0xdd, 0x01, 0x33, 0x10, 0x32, - 0x07, 0x2b, 0xcd, 0xe9, 0x27, 0x32, 0xc8, 0xe9, 0x00, 0x56, 0xf2, 0xdd, 0x26, 0xaa, 0x59, 0x46, - 0x48, 0x46, 0x03, 0xf0, 0xa4, 0xfb, 0x00, 0x28, 0x7f, 0xf4, 0xef, 0xac, 0xdd, 0xe9, 0x27, 0x32, - 0x0d, 0xf1, 0xa4, 0x08, 0xe7, 0xe7, 0x38, 0x46, 0xfe, 0xf7, 0x15, 0xfe, 0x33, 0x46, 0x07, 0x96, - 0x02, 0x46, 0x0a, 0x90, 0xff, 0xf7, 0xd7, 0xb8, 0xdd, 0xf8, 0x1c, 0xa0, 0x01, 0x34, 0x35, 0x44, - 0x07, 0x2c, 0xcd, 0xe9, 0x27, 0x45, 0xc8, 0xe9, 0x00, 0xb6, 0x7f, 0xf7, 0x8e, 0xab, 0xfc, 0xe4, - 0x06, 0x9b, 0x13, 0xf4, 0x00, 0x7f, 0x0c, 0x9b, 0x53, 0xf8, 0x04, 0x2b, 0x0c, 0x93, 0x14, 0xbf, - 0x5f, 0xfa, 0x82, 0xfa, 0x92, 0x46, 0x4f, 0xf0, 0x00, 0x0b, 0xde, 0xe6, 0x06, 0x9b, 0x13, 0xf4, - 0x00, 0x7f, 0x0c, 0x9b, 0x53, 0xf8, 0x04, 0x2b, 0x0c, 0x93, 0x14, 0xbf, 0x5f, 0xfa, 0x82, 0xfa, - 0x92, 0x46, 0x4f, 0xf0, 0x00, 0x0b, 0xff, 0xf7, 0xca, 0xb9, 0x06, 0x9b, 0x13, 0xf4, 0x00, 0x7f, - 0x0c, 0x9b, 0x53, 0xf8, 0x04, 0x2b, 0x3f, 0xf4, 0x69, 0xa9, 0x4f, 0xfa, 0x82, 0xfa, 0x4f, 0xea, - 0xea, 0x7b, 0x0c, 0x93, 0x52, 0x46, 0x5b, 0x46, 0xff, 0xf7, 0xb6, 0xb8, 0xab, 0x46, 0x15, 0x46, - 0x01, 0x33, 0x25, 0x44, 0x07, 0x2b, 0xcd, 0xe9, 0x27, 0x35, 0xc8, 0xf8, 0x00, 0xb0, 0xc8, 0xf8, - 0x04, 0x40, 0x00, 0xf3, 0xe4, 0x80, 0x08, 0xf1, 0x08, 0x08, 0x33, 0xe4, 0x18, 0xee, 0x10, 0x1a, - 0x48, 0x46, 0x26, 0xaa, 0x03, 0xf0, 0x43, 0xfb, 0x00, 0x28, 0x3f, 0xf4, 0x00, 0xa8, 0x91, 0xe4, - 0x06, 0x9b, 0x34, 0x78, 0x43, 0xf4, 0x80, 0x63, 0x06, 0x93, 0xfe, 0xf7, 0x97, 0xbe, 0x10, 0x9a, - 0xbc, 0x18, 0xa4, 0xeb, 0x0b, 0x04, 0xd3, 0x1a, 0x9c, 0x42, 0xa8, 0xbf, 0x1c, 0x46, 0x50, 0xe4, - 0x5f, 0xfa, 0x81, 0xfa, 0x4f, 0xf0, 0x00, 0x0b, 0xff, 0xf7, 0xc4, 0xb8, 0x0c, 0x9b, 0x08, 0x99, - 0x53, 0xf8, 0x04, 0x2b, 0x0c, 0x93, 0x11, 0x80, 0xfe, 0xf7, 0xd6, 0xbf, 0x00, 0xbf, 0x64, 0x37, - 0x01, 0x10, 0x78, 0x37, 0x01, 0x10, 0x94, 0x37, 0x01, 0x10, 0x30, 0x23, 0x8d, 0xf8, 0x7c, 0x30, - 0x58, 0x23, 0x8d, 0xf8, 0x7d, 0x30, 0x06, 0x9b, 0x43, 0xf0, 0x02, 0x05, 0x07, 0x9b, 0x63, 0x2b, - 0x00, 0xf3, 0xca, 0x82, 0x00, 0x23, 0x0b, 0x93, 0x39, 0xaf, 0xdd, 0xe9, 0x12, 0x01, 0x06, 0x9a, - 0x06, 0x95, 0x42, 0xf4, 0x81, 0x72, 0x24, 0xf0, 0x20, 0x06, 0x00, 0x29, 0x0e, 0x92, 0x0a, 0x96, - 0xc0, 0xf2, 0xa8, 0x81, 0x00, 0x23, 0x41, 0xec, 0x1a, 0x0b, 0x1b, 0x93, 0x61, 0x2c, 0x00, 0xf0, - 0x08, 0x83, 0x41, 0x2c, 0x7f, 0xf4, 0x50, 0xad, 0x20, 0xaa, 0x51, 0xec, 0x1a, 0x0b, 0x03, 0xf0, - 0xee, 0xf9, 0x00, 0x22, 0x4f, 0xf0, 0x7f, 0x53, 0x03, 0xf0, 0x31, 0xff, 0x00, 0x22, 0x00, 0x23, - 0x82, 0x46, 0x8b, 0x46, 0x04, 0xf0, 0x93, 0xf9, 0x08, 0xb1, 0x01, 0x23, 0x20, 0x93, 0xb7, 0x4b, - 0x0f, 0x93, 0x07, 0x9b, 0x1d, 0x97, 0x3e, 0x46, 0x08, 0xee, 0x90, 0x9a, 0x0f, 0x9f, 0x1c, 0x94, - 0x5d, 0x1e, 0xcd, 0xf8, 0x44, 0x80, 0x03, 0xe0, 0x04, 0xf0, 0x81, 0xf9, 0x01, 0x3d, 0x08, 0xbb, - 0xb0, 0x4b, 0x00, 0x22, 0x50, 0x46, 0x59, 0x46, 0x03, 0xf0, 0x11, 0xff, 0x89, 0x46, 0x80, 0x46, - 0x04, 0xf0, 0xbd, 0xf9, 0x04, 0x46, 0x03, 0xf0, 0xa0, 0xfe, 0x02, 0x46, 0x0b, 0x46, 0x40, 0x46, - 0x49, 0x46, 0x03, 0xf0, 0x4c, 0xfd, 0x17, 0xf8, 0x04, 0xc0, 0xb5, 0xf1, 0xff, 0x3f, 0xb0, 0x46, - 0x82, 0x46, 0x06, 0xf8, 0x01, 0xcb, 0x8b, 0x46, 0x4f, 0xf0, 0x00, 0x02, 0x4f, 0xf0, 0x00, 0x03, - 0xa9, 0x46, 0xd9, 0xd1, 0xa0, 0x4b, 0xcd, 0xf8, 0x40, 0x80, 0x00, 0x22, 0x50, 0x46, 0x59, 0x46, - 0xdd, 0xf8, 0x44, 0x80, 0x1d, 0x9f, 0x11, 0x94, 0x4d, 0x46, 0x1c, 0x9c, 0x18, 0xee, 0x90, 0x9a, - 0x04, 0xf0, 0x75, 0xf9, 0x00, 0x28, 0x40, 0xf0, 0x61, 0x82, 0x96, 0x4b, 0x50, 0x46, 0x59, 0x46, - 0x00, 0x22, 0x04, 0xf0, 0x44, 0xf9, 0x18, 0xb1, 0x11, 0x9b, 0xd9, 0x07, 0x00, 0xf1, 0x56, 0x82, - 0x00, 0x2d, 0x2b, 0x46, 0x06, 0xdb, 0x01, 0x33, 0x33, 0x44, 0x30, 0x22, 0x06, 0xf8, 0x01, 0x2b, - 0xb3, 0x42, 0xfb, 0xd1, 0xf3, 0x1b, 0x10, 0x93, 0x0e, 0x9b, 0xdd, 0xf8, 0x18, 0xb0, 0x06, 0x93, - 0x02, 0xe5, 0x18, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x03, 0xf0, 0x78, 0xfa, 0x00, 0x28, - 0x7f, 0xf4, 0x18, 0xaa, 0xdd, 0xe9, 0x27, 0x35, 0x20, 0x9a, 0x0d, 0xf1, 0xa4, 0x08, 0xff, 0xf7, - 0x24, 0xba, 0xdb, 0xf8, 0x58, 0x00, 0x02, 0xf0, 0x36, 0xf8, 0xfe, 0xf7, 0x6d, 0xbe, 0x18, 0xee, - 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x03, 0xf0, 0x62, 0xfa, 0x00, 0x28, 0x7f, 0xf4, 0x02, 0xaa, - 0x28, 0x9d, 0x0d, 0xf1, 0xa4, 0x08, 0xff, 0xf7, 0x45, 0xbb, 0x20, 0x9b, 0x0f, 0x93, 0xda, 0x1c, - 0x02, 0xdb, 0x07, 0x9a, 0x93, 0x42, 0x04, 0xdd, 0x02, 0x3c, 0x24, 0xf0, 0x20, 0x03, 0x0a, 0x93, - 0xdc, 0xe4, 0xdd, 0xe9, 0x0f, 0x31, 0x8b, 0x42, 0xc0, 0xf2, 0x8b, 0x81, 0x1b, 0xf0, 0x01, 0x0f, - 0x00, 0xf0, 0xbf, 0x82, 0x14, 0x9a, 0x13, 0x44, 0x0a, 0x93, 0x1b, 0xf4, 0x80, 0x6f, 0x03, 0xd0, - 0x0f, 0x9b, 0x00, 0x2b, 0x00, 0xf3, 0x7a, 0x82, 0x0a, 0x9b, 0x67, 0x24, 0x23, 0xea, 0xe3, 0x7a, - 0x00, 0x23, 0x0e, 0x93, 0x11, 0x93, 0x23, 0xe5, 0x2d, 0x22, 0x00, 0x23, 0x8d, 0xf8, 0x7b, 0x20, - 0x07, 0x93, 0xfe, 0xf7, 0x39, 0xbf, 0x24, 0x9b, 0xab, 0x42, 0xbf, 0xf4, 0xab, 0xac, 0x30, 0x21, - 0x5a, 0x1c, 0x24, 0x92, 0x19, 0x70, 0x24, 0x9b, 0x9d, 0x42, 0xf9, 0xd8, 0xa2, 0xe4, 0x1a, 0x9b, - 0x19, 0x99, 0xff, 0x1a, 0x1a, 0x46, 0x38, 0x46, 0x03, 0xf0, 0xa9, 0xf9, 0x6b, 0x78, 0x03, 0xb1, - 0x01, 0x35, 0x0a, 0x22, 0x00, 0x23, 0x50, 0x46, 0x59, 0x46, 0x00, 0x26, 0x04, 0xf0, 0x2f, 0xf9, - 0x3c, 0xe5, 0x10, 0x9b, 0xcd, 0xf8, 0x28, 0xa0, 0x5e, 0x46, 0xdd, 0xf8, 0x44, 0xb0, 0x0f, 0x97, - 0xfb, 0x18, 0x07, 0x93, 0x42, 0x46, 0xdd, 0xf8, 0x68, 0xa0, 0x17, 0x9f, 0x0e, 0x9b, 0x18, 0xee, - 0x10, 0x8a, 0x28, 0x46, 0xbb, 0xf1, 0x00, 0x0f, 0x2e, 0xd0, 0x00, 0x2b, 0x6b, 0xd1, 0x01, 0x3f, - 0x0b, 0xf1, 0xff, 0x3b, 0x27, 0x9b, 0x19, 0x99, 0x11, 0x60, 0x01, 0x33, 0x50, 0x44, 0x07, 0x2b, - 0x28, 0x90, 0xc2, 0xf8, 0x04, 0xa0, 0x27, 0x93, 0x61, 0xdc, 0x08, 0x32, 0x07, 0x99, 0x3b, 0x78, - 0x8c, 0x1b, 0x9c, 0x42, 0xa8, 0xbf, 0x1c, 0x46, 0x00, 0x2c, 0x0a, 0xdd, 0x27, 0x9b, 0x16, 0x60, - 0x01, 0x33, 0x20, 0x44, 0x07, 0x2b, 0x28, 0x90, 0x54, 0x60, 0x27, 0x93, 0x58, 0xdc, 0x3b, 0x78, - 0x08, 0x32, 0x00, 0x2c, 0xac, 0xbf, 0x1c, 0x1b, 0x1c, 0x46, 0x00, 0x2c, 0x14, 0xdc, 0x1e, 0x44, - 0x0e, 0x9b, 0xbb, 0xf1, 0x00, 0x0f, 0xd0, 0xd1, 0x00, 0x2b, 0x3c, 0xd1, 0x17, 0x97, 0xdd, 0xe9, - 0x0f, 0x73, 0xfb, 0x18, 0x9e, 0x42, 0xb3, 0x46, 0xdd, 0xf8, 0x28, 0xa0, 0x90, 0x46, 0x05, 0x46, - 0x28, 0xbf, 0x9b, 0x46, 0xff, 0xf7, 0xad, 0xba, 0x10, 0x2c, 0x27, 0x99, 0x1e, 0xdd, 0x10, 0x25, - 0x0b, 0x46, 0x04, 0xe0, 0x10, 0x3c, 0x10, 0x2c, 0x02, 0xf1, 0x08, 0x02, 0x15, 0xdd, 0x01, 0x33, - 0x22, 0x49, 0x10, 0x30, 0x07, 0x2b, 0xcd, 0xe9, 0x27, 0x30, 0xc2, 0xe9, 0x00, 0x15, 0xf1, 0xdd, - 0x26, 0xaa, 0x41, 0x46, 0x48, 0x46, 0x03, 0xf0, 0xa2, 0xf9, 0x00, 0x28, 0x46, 0xd1, 0x10, 0x3c, - 0x10, 0x2c, 0xdd, 0xe9, 0x27, 0x30, 0x29, 0xaa, 0xe9, 0xdc, 0x19, 0x46, 0x17, 0x4b, 0x13, 0x60, - 0x4b, 0x1c, 0x20, 0x44, 0x07, 0x2b, 0xcd, 0xe9, 0x27, 0x30, 0x54, 0x60, 0x53, 0xdc, 0x3b, 0x78, - 0x08, 0x32, 0x1e, 0x44, 0xbc, 0xe7, 0x0e, 0x9b, 0x01, 0x3b, 0x0e, 0x93, 0x92, 0xe7, 0x26, 0xaa, - 0x41, 0x46, 0x48, 0x46, 0x03, 0xf0, 0x83, 0xf9, 0x40, 0xbb, 0x28, 0x98, 0x29, 0xaa, 0x95, 0xe7, - 0x26, 0xaa, 0x41, 0x46, 0x48, 0x46, 0x03, 0xf0, 0x7a, 0xf9, 0xf8, 0xb9, 0x3b, 0x78, 0x28, 0x98, - 0x29, 0xaa, 0x9e, 0xe7, 0x2d, 0x22, 0x8d, 0xf8, 0x7b, 0x20, 0xfe, 0xf7, 0x67, 0xbe, 0x64, 0x37, - 0x01, 0x10, 0x00, 0x00, 0x30, 0x40, 0x00, 0x00, 0xe0, 0x3f, 0x94, 0x37, 0x01, 0x10, 0x18, 0xee, - 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x03, 0xf0, 0x62, 0xf9, 0x00, 0x28, 0x7f, 0xf4, 0x02, 0xa9, - 0x20, 0x9a, 0x28, 0x9d, 0x0d, 0xf1, 0xa4, 0x08, 0xff, 0xf7, 0x5c, 0xbb, 0xc3, 0x46, 0xff, 0xf7, - 0xa4, 0xba, 0x0b, 0x90, 0xdd, 0xe9, 0x12, 0x12, 0x02, 0xf1, 0x00, 0x43, 0x0a, 0xee, 0x90, 0x3a, - 0x2d, 0x23, 0x0a, 0xee, 0x10, 0x1a, 0x1b, 0x93, 0x50, 0xe6, 0x18, 0xee, 0x10, 0x1a, 0x26, 0xaa, - 0x48, 0x46, 0x03, 0xf0, 0x44, 0xf9, 0x00, 0x28, 0x7f, 0xf4, 0xe4, 0xa8, 0x28, 0x9d, 0x0d, 0xf1, - 0xa4, 0x08, 0xff, 0xf7, 0x1f, 0xba, 0x26, 0xaa, 0x41, 0x46, 0x48, 0x46, 0x03, 0xf0, 0x37, 0xf9, - 0x00, 0x28, 0xdb, 0xd1, 0x3b, 0x78, 0x28, 0x98, 0x29, 0xaa, 0x1e, 0x44, 0x60, 0xe7, 0x07, 0x9d, - 0x01, 0x95, 0x24, 0xa8, 0x21, 0xa9, 0x20, 0xaa, 0x02, 0x23, 0xcd, 0xe9, 0x03, 0x10, 0x02, 0x92, - 0x00, 0x93, 0x48, 0x46, 0x53, 0xec, 0x1a, 0x2b, 0x00, 0xf0, 0x45, 0xfb, 0x47, 0x2e, 0x07, 0x46, - 0x2a, 0xd1, 0x06, 0x9b, 0xda, 0x07, 0x00, 0xf1, 0x8f, 0x80, 0x0e, 0x9a, 0x06, 0x92, 0x47, 0x22, - 0x9b, 0x46, 0x0a, 0x92, 0x24, 0x9b, 0xff, 0xf7, 0x95, 0xbb, 0x18, 0xee, 0x10, 0x1a, 0x26, 0xaa, - 0x48, 0x46, 0x03, 0xf0, 0x0c, 0xf9, 0x00, 0x28, 0x7f, 0xf4, 0xac, 0xa8, 0x20, 0x9b, 0x28, 0x9d, - 0x0d, 0xf1, 0xa4, 0x08, 0xff, 0xf7, 0x0d, 0xba, 0x07, 0x9d, 0x01, 0x95, 0x24, 0xa8, 0x21, 0xa9, - 0x20, 0xaa, 0x03, 0x23, 0xcd, 0xe9, 0x03, 0x10, 0x02, 0x92, 0x00, 0x93, 0x48, 0x46, 0x53, 0xec, - 0x1a, 0x2b, 0x00, 0xf0, 0x18, 0xfb, 0x07, 0x46, 0x07, 0x9b, 0x46, 0x2e, 0x07, 0xeb, 0x03, 0x05, - 0x7f, 0xf4, 0x62, 0xab, 0x3b, 0x78, 0x30, 0x2b, 0x00, 0xf0, 0x6a, 0x81, 0x20, 0x9b, 0xdd, 0xf8, - 0x18, 0xb0, 0x1d, 0x44, 0x0e, 0x9b, 0x06, 0x93, 0xff, 0xf7, 0x5a, 0xbb, 0xdd, 0xf8, 0x1c, 0xa0, - 0x9d, 0xf8, 0x7b, 0x20, 0xcd, 0xf8, 0x28, 0xa0, 0x07, 0x90, 0x0c, 0x95, 0x0e, 0x90, 0x11, 0x90, - 0x0f, 0x90, 0xfe, 0xf7, 0xde, 0xbd, 0x20, 0x9a, 0x0f, 0x92, 0x00, 0x2a, 0x40, 0xf3, 0x6f, 0x81, - 0x07, 0x99, 0x0b, 0xf0, 0x01, 0x03, 0x0b, 0x43, 0x40, 0xf0, 0x2f, 0x81, 0x0f, 0x9b, 0x0a, 0x93, - 0x66, 0x24, 0x1b, 0xf4, 0x80, 0x6f, 0x40, 0xf0, 0x02, 0x81, 0x0a, 0x9b, 0x23, 0xea, 0xe3, 0x7a, - 0x86, 0xe6, 0x10, 0x9b, 0x14, 0x9a, 0x9a, 0x18, 0x0f, 0x9b, 0x0a, 0x92, 0x00, 0x2b, 0x40, 0xf3, - 0x4b, 0x81, 0x67, 0x24, 0xed, 0xe7, 0x18, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x03, 0xf0, - 0xae, 0xf8, 0x00, 0x28, 0x7f, 0xf4, 0x4e, 0xa8, 0x20, 0x9b, 0x10, 0x9a, 0x28, 0x9d, 0xd3, 0x1a, - 0x0d, 0xf1, 0xa4, 0x08, 0xff, 0xf7, 0xc5, 0xb9, 0x00, 0x23, 0x07, 0x93, 0xfe, 0xf7, 0xff, 0xbb, - 0xd3, 0x46, 0xff, 0xf7, 0xea, 0xb9, 0xdb, 0xf8, 0x64, 0x30, 0xd8, 0x07, 0x07, 0xd4, 0xbb, 0xf8, - 0x0c, 0x30, 0x99, 0x05, 0x03, 0xd4, 0xdb, 0xf8, 0x58, 0x00, 0x01, 0xf0, 0x5c, 0xfe, 0x4f, 0xf0, - 0xff, 0x33, 0x08, 0x93, 0xff, 0xf7, 0xeb, 0xb9, 0xdd, 0xe9, 0x06, 0xb3, 0xfd, 0x18, 0x0e, 0x9b, - 0x06, 0x93, 0x47, 0x23, 0x0a, 0x93, 0xff, 0xf7, 0xfb, 0xba, 0x54, 0x42, 0x10, 0x32, 0xdf, 0xf8, - 0xac, 0xb2, 0x21, 0xda, 0x2a, 0x46, 0x10, 0x26, 0x5d, 0x46, 0x18, 0xee, 0x10, 0xba, 0x04, 0xe0, - 0x08, 0xf1, 0x08, 0x08, 0x10, 0x3c, 0x10, 0x2c, 0x14, 0xdd, 0x01, 0x33, 0x10, 0x32, 0x07, 0x2b, - 0xcd, 0xe9, 0x27, 0x32, 0xc8, 0xe9, 0x00, 0x56, 0xf2, 0xdd, 0x26, 0xaa, 0x59, 0x46, 0x48, 0x46, - 0x03, 0xf0, 0x65, 0xf8, 0x00, 0x28, 0x7f, 0xf4, 0xb0, 0xa9, 0xdd, 0xe9, 0x27, 0x32, 0x0d, 0xf1, - 0xa4, 0x08, 0xe7, 0xe7, 0xab, 0x46, 0x15, 0x46, 0x01, 0x33, 0x25, 0x44, 0x07, 0x2b, 0xcd, 0xe9, - 0x27, 0x35, 0xc8, 0xe9, 0x00, 0xb4, 0x7f, 0xf7, 0x6d, 0xaa, 0x18, 0xee, 0x10, 0x1a, 0x26, 0xaa, - 0x48, 0x46, 0x03, 0xf0, 0x4c, 0xf8, 0x00, 0x28, 0x7e, 0xf4, 0xec, 0xaf, 0xdd, 0xe9, 0x27, 0x35, - 0x0d, 0xf1, 0xa4, 0x08, 0xfe, 0xf7, 0xfc, 0xbf, 0x59, 0x1c, 0x48, 0x46, 0x01, 0xf0, 0x87, 0xfe, - 0x07, 0x46, 0x00, 0x28, 0x00, 0xf0, 0xff, 0x80, 0x0b, 0x90, 0x2e, 0xe5, 0x10, 0x9b, 0x24, 0x93, - 0x0f, 0x9b, 0x16, 0xf8, 0x01, 0x2c, 0xd9, 0x7b, 0x8a, 0x42, 0x33, 0x46, 0x09, 0xd1, 0x30, 0x20, - 0x03, 0xf8, 0x01, 0x0c, 0x24, 0x9b, 0x5a, 0x1e, 0x24, 0x92, 0x13, 0xf8, 0x01, 0x2c, 0x91, 0x42, - 0xf6, 0xd0, 0x39, 0x2a, 0x0b, 0xbf, 0x0f, 0x9a, 0x01, 0x32, 0x92, 0x7a, 0xd2, 0xb2, 0x03, 0xf8, - 0x01, 0x2c, 0x97, 0xe5, 0x30, 0x23, 0x8d, 0xf8, 0x7c, 0x30, 0x78, 0x23, 0x01, 0xe5, 0x00, 0x2b, - 0x1a, 0x46, 0x08, 0xbf, 0x01, 0x22, 0x13, 0x9b, 0x07, 0x92, 0x06, 0x9a, 0x00, 0x2b, 0x42, 0xf4, - 0x80, 0x72, 0x0e, 0x92, 0xff, 0xf6, 0xb5, 0xae, 0x07, 0x9e, 0x01, 0x96, 0x24, 0xad, 0x21, 0xa8, - 0xcd, 0xe9, 0x03, 0x05, 0xdd, 0xe9, 0x12, 0x56, 0x20, 0xaa, 0x02, 0x23, 0x02, 0x92, 0x00, 0x93, - 0x2a, 0x46, 0x33, 0x46, 0x48, 0x46, 0x8a, 0x46, 0x0b, 0x91, 0x00, 0xf0, 0x1c, 0xfa, 0x46, 0xec, - 0x1a, 0x5b, 0x07, 0x46, 0xcd, 0xf8, 0x6c, 0xa0, 0xd3, 0xe6, 0x06, 0x23, 0x07, 0x93, 0xff, 0xf7, - 0x3c, 0xba, 0x20, 0xaa, 0x51, 0xec, 0x1a, 0x0b, 0x02, 0xf0, 0xe9, 0xfe, 0x00, 0x22, 0x4f, 0xf0, - 0x7f, 0x53, 0x03, 0xf0, 0x2c, 0xfc, 0x00, 0x22, 0x00, 0x23, 0x82, 0x46, 0x8b, 0x46, 0x03, 0xf0, - 0x8e, 0xfe, 0x08, 0xb1, 0x01, 0x23, 0x20, 0x93, 0x56, 0x4b, 0x0f, 0x93, 0xf9, 0xe4, 0x00, 0x29, - 0x72, 0xd1, 0x30, 0x22, 0x8d, 0xf8, 0x8a, 0x20, 0x0d, 0xf1, 0x8b, 0x02, 0x30, 0x33, 0x02, 0xf8, - 0x01, 0x3b, 0x22, 0xab, 0xd3, 0x1a, 0x18, 0x93, 0xff, 0xf7, 0xa3, 0xba, 0x04, 0xf1, 0x0f, 0x02, - 0xd2, 0xb2, 0x01, 0x21, 0xff, 0xf7, 0x5b, 0xba, 0x0b, 0x93, 0x6b, 0xe6, 0x67, 0x24, 0x17, 0x99, - 0x0b, 0x78, 0xff, 0x2b, 0x00, 0xf0, 0x89, 0x80, 0x00, 0x25, 0x0f, 0x9a, 0x28, 0x46, 0x03, 0xe0, - 0x01, 0x30, 0x01, 0x31, 0xff, 0x2b, 0x08, 0xd0, 0x93, 0x42, 0x06, 0xda, 0xd2, 0x1a, 0x4b, 0x78, - 0x00, 0x2b, 0xf5, 0xd1, 0x0b, 0x78, 0x01, 0x35, 0xf4, 0xe7, 0x17, 0x91, 0x0f, 0x92, 0x11, 0x90, - 0x0e, 0x95, 0x0e, 0x9a, 0x11, 0x9b, 0x0a, 0x99, 0x13, 0x44, 0x1a, 0x9a, 0x02, 0xfb, 0x03, 0x13, - 0x0a, 0x93, 0x23, 0xea, 0xe3, 0x7a, 0xff, 0xf7, 0x8b, 0xba, 0x14, 0x9b, 0x02, 0xeb, 0x03, 0x0a, - 0x51, 0x44, 0x0a, 0x91, 0x66, 0x24, 0xcc, 0xe6, 0x13, 0x9b, 0x32, 0x4f, 0x00, 0x2b, 0xb4, 0xbf, - 0x2d, 0x22, 0x9d, 0xf8, 0x7b, 0x20, 0x30, 0x4b, 0xb8, 0xbf, 0x8d, 0xf8, 0x7b, 0x20, 0xfe, 0xf7, - 0x7f, 0xbc, 0x0f, 0x9b, 0x0a, 0x93, 0x40, 0xe5, 0x18, 0xee, 0x10, 0xba, 0xff, 0xf7, 0xd2, 0xb8, - 0x51, 0xec, 0x1a, 0x0b, 0x00, 0x22, 0x00, 0x23, 0x03, 0xf0, 0x29, 0xfe, 0x00, 0x28, 0x7f, 0xf4, - 0x8d, 0xae, 0x07, 0x9b, 0xc3, 0xf1, 0x01, 0x03, 0x20, 0x93, 0x88, 0xe6, 0x1b, 0xf0, 0x01, 0x0f, - 0x3f, 0xf4, 0x52, 0xaa, 0xff, 0xf7, 0x4c, 0xba, 0xc3, 0xf1, 0x01, 0x03, 0x1a, 0x44, 0x0a, 0x92, - 0x22, 0xea, 0xe2, 0x7a, 0x67, 0x24, 0x2b, 0xe5, 0x0d, 0xf1, 0x8a, 0x02, 0x8e, 0xe7, 0x07, 0x9b, - 0x0b, 0xf0, 0x01, 0x06, 0x56, 0xea, 0x03, 0x02, 0x05, 0xd1, 0x4f, 0xf0, 0x01, 0x0a, 0xcd, 0xf8, - 0x28, 0xa0, 0x66, 0x24, 0x1c, 0xe5, 0x14, 0x9a, 0x02, 0xf1, 0x01, 0x0a, 0x53, 0x44, 0x0a, 0x93, - 0x23, 0xea, 0xe3, 0x7a, 0x66, 0x24, 0x13, 0xe5, 0x0c, 0x9b, 0x74, 0x78, 0x53, 0xf8, 0x04, 0x1b, - 0x0c, 0x93, 0x16, 0x46, 0x41, 0xea, 0xe1, 0x72, 0x07, 0x92, 0xfe, 0xf7, 0x9f, 0xba, 0x02, 0x23, - 0x18, 0x93, 0xff, 0xf7, 0x16, 0xba, 0x18, 0xee, 0x10, 0xba, 0xbb, 0xf8, 0x0c, 0x30, 0x43, 0xf0, - 0x40, 0x03, 0xab, 0xf8, 0x0c, 0x30, 0xff, 0xf7, 0x85, 0xb8, 0x00, 0x23, 0x0e, 0x93, 0x11, 0x93, - 0x87, 0xe7, 0x50, 0x37, 0x01, 0x10, 0x48, 0x37, 0x01, 0x10, 0x4c, 0x37, 0x01, 0x10, 0x94, 0x37, - 0x01, 0x10, 0xf0, 0xb5, 0x0c, 0x46, 0x89, 0x89, 0x65, 0x6e, 0xb4, 0xf8, 0x0e, 0xc0, 0xe7, 0x69, - 0xad, 0xf2, 0x74, 0x4d, 0x21, 0xf0, 0x02, 0x01, 0x06, 0x46, 0xad, 0xf8, 0x14, 0x10, 0x00, 0x20, - 0x61, 0x6a, 0x1b, 0x95, 0x0b, 0x91, 0x1c, 0xad, 0x4f, 0xf4, 0x80, 0x61, 0x08, 0x90, 0x18, 0xa8, - 0xcd, 0xe9, 0x00, 0x32, 0xad, 0xf8, 0x16, 0xc0, 0x02, 0x95, 0x06, 0x95, 0x04, 0x91, 0x07, 0x91, - 0x09, 0x97, 0x01, 0xf0, 0xca, 0xfc, 0xdd, 0xe9, 0x00, 0x32, 0x02, 0xa9, 0x30, 0x46, 0xfe, 0xf7, - 0xea, 0xf9, 0x05, 0x1e, 0x07, 0xdb, 0x30, 0x46, 0x02, 0xa9, 0x01, 0xf0, 0x2a, 0xf9, 0x00, 0x28, - 0x18, 0xbf, 0x4f, 0xf0, 0xff, 0x35, 0xbd, 0xf8, 0x14, 0x30, 0x5b, 0x06, 0x03, 0xd5, 0xa3, 0x89, - 0x43, 0xf0, 0x40, 0x03, 0xa3, 0x81, 0x18, 0x98, 0x01, 0xf0, 0xb1, 0xfc, 0x28, 0x46, 0x0d, 0xf2, - 0x74, 0x4d, 0xf0, 0xbd, 0x00, 0xbf, 0x38, 0xb5, 0x32, 0x4b, 0x1b, 0x68, 0x05, 0x46, 0x0c, 0x46, - 0x13, 0xb1, 0x9a, 0x6b, 0x00, 0x2a, 0x3c, 0xd0, 0xb4, 0xf9, 0x0c, 0x30, 0x18, 0x07, 0x9a, 0xb2, - 0x0c, 0xd5, 0x21, 0x69, 0xa9, 0xb1, 0x12, 0xf0, 0x01, 0x00, 0x22, 0xd0, 0x60, 0x69, 0x00, 0x25, - 0x40, 0x42, 0xa0, 0x61, 0xa5, 0x60, 0x11, 0xb3, 0x00, 0x20, 0x38, 0xbd, 0xd1, 0x06, 0x40, 0xd5, - 0x52, 0x07, 0x2a, 0xd4, 0x21, 0x69, 0x43, 0xf0, 0x08, 0x03, 0xa3, 0x81, 0x9a, 0xb2, 0x00, 0x29, - 0xe9, 0xd1, 0x02, 0xf4, 0x20, 0x70, 0xb0, 0xf5, 0x00, 0x7f, 0xe4, 0xd0, 0x28, 0x46, 0x21, 0x46, - 0x01, 0xf0, 0xb1, 0xfc, 0xb4, 0xf9, 0x0c, 0x30, 0x21, 0x69, 0x9a, 0xb2, 0x12, 0xf0, 0x01, 0x00, - 0xdc, 0xd1, 0x95, 0x07, 0x58, 0xbf, 0x60, 0x69, 0xa0, 0x60, 0x00, 0x29, 0xdc, 0xd1, 0x12, 0x06, - 0x58, 0xbf, 0x08, 0x46, 0xd9, 0xd5, 0x43, 0xf0, 0x40, 0x03, 0xa3, 0x81, 0x4f, 0xf0, 0xff, 0x30, - 0x38, 0xbd, 0x18, 0x46, 0x01, 0xf0, 0x29, 0xf9, 0xbe, 0xe7, 0x21, 0x6b, 0x51, 0xb1, 0x04, 0xf1, - 0x40, 0x02, 0x91, 0x42, 0x04, 0xd0, 0x28, 0x46, 0x01, 0xf0, 0xbb, 0xf9, 0xb4, 0xf9, 0x0c, 0x30, - 0x00, 0x22, 0x22, 0x63, 0x21, 0x69, 0x21, 0x60, 0x00, 0x22, 0x62, 0x60, 0x23, 0xf0, 0x24, 0x03, - 0xc1, 0xe7, 0x43, 0xf0, 0x40, 0x03, 0x09, 0x22, 0x2a, 0x60, 0x4f, 0xf0, 0xff, 0x30, 0xa3, 0x81, - 0x38, 0xbd, 0x0c, 0x00, 0x00, 0x20, 0x02, 0x4b, 0x13, 0xb1, 0x02, 0x48, 0x00, 0xf0, 0x05, 0xb8, - 0x70, 0x47, 0x00, 0x00, 0x00, 0x00, 0x51, 0x0a, 0x01, 0x10, 0x00, 0x23, 0x01, 0x46, 0x1a, 0x46, - 0x18, 0x46, 0x02, 0xf0, 0x8e, 0xbe, 0x2d, 0xe9, 0xf0, 0x4f, 0x03, 0x69, 0x0e, 0x69, 0xb3, 0x42, - 0x83, 0xb0, 0xc0, 0xf2, 0x82, 0x80, 0x01, 0x3e, 0x01, 0xf1, 0x14, 0x07, 0x00, 0xf1, 0x14, 0x0a, - 0x57, 0xf8, 0x26, 0x30, 0x5a, 0xf8, 0x26, 0x20, 0x01, 0x33, 0x83, 0x46, 0xb0, 0x00, 0x00, 0x90, - 0x9a, 0x42, 0x0a, 0xeb, 0x86, 0x00, 0x07, 0xeb, 0x86, 0x09, 0x01, 0x90, 0xb2, 0xfb, 0xf3, 0xf8, - 0x36, 0xd3, 0x00, 0x25, 0x2a, 0x46, 0xbc, 0x46, 0x50, 0x46, 0x5c, 0xf8, 0x04, 0x4b, 0x03, 0x68, - 0x1f, 0xfa, 0x84, 0xfe, 0x08, 0xfb, 0x0e, 0x55, 0x4f, 0xea, 0x15, 0x4e, 0x24, 0x0c, 0x08, 0xfb, - 0x04, 0xe4, 0xad, 0xb2, 0x55, 0x1b, 0xa2, 0xb2, 0xc2, 0xeb, 0x13, 0x42, 0x15, 0xfa, 0x83, 0xf3, - 0x02, 0xeb, 0x23, 0x42, 0x9b, 0xb2, 0x43, 0xea, 0x02, 0x43, 0xe1, 0x45, 0x40, 0xf8, 0x04, 0x3b, - 0x4f, 0xea, 0x14, 0x45, 0x4f, 0xea, 0x22, 0x42, 0xdf, 0xd2, 0x00, 0x9b, 0x5a, 0xf8, 0x03, 0x30, - 0x73, 0xb9, 0x01, 0x9b, 0x04, 0x3b, 0x9a, 0x45, 0x04, 0xd3, 0x07, 0xe0, 0x9a, 0x45, 0x06, 0xf1, - 0xff, 0x36, 0x03, 0xd2, 0x53, 0xf8, 0x04, 0x29, 0x00, 0x2a, 0xf7, 0xd0, 0xcb, 0xf8, 0x10, 0x60, - 0x58, 0x46, 0x02, 0xf0, 0x0c, 0xfa, 0x00, 0x28, 0x2b, 0xdb, 0x08, 0xf1, 0x01, 0x08, 0x50, 0x46, - 0x00, 0x23, 0x57, 0xf8, 0x04, 0x1b, 0x04, 0x68, 0x8a, 0xb2, 0x9a, 0x1a, 0x0b, 0x0c, 0x12, 0xfa, - 0x84, 0xf2, 0xc3, 0xeb, 0x14, 0x43, 0x03, 0xeb, 0x22, 0x43, 0x92, 0xb2, 0x42, 0xea, 0x03, 0x42, - 0xb9, 0x45, 0x40, 0xf8, 0x04, 0x2b, 0x4f, 0xea, 0x23, 0x43, 0xea, 0xd2, 0x5a, 0xf8, 0x26, 0x20, - 0x0a, 0xeb, 0x86, 0x03, 0x6a, 0xb9, 0x04, 0x3b, 0x9a, 0x45, 0x04, 0xd3, 0x07, 0xe0, 0x9a, 0x45, - 0x06, 0xf1, 0xff, 0x36, 0x03, 0xd2, 0x53, 0xf8, 0x04, 0x29, 0x00, 0x2a, 0xf7, 0xd0, 0xcb, 0xf8, - 0x10, 0x60, 0x40, 0x46, 0x03, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x00, 0x20, 0x03, 0xb0, 0xbd, 0xe8, - 0xf0, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x2d, 0xe9, 0xf0, 0x4f, 0x2d, 0xed, 0x04, 0x8b, 0x01, 0x6c, - 0x97, 0xb0, 0x16, 0x46, 0x1f, 0x46, 0xcd, 0xe9, 0x04, 0x67, 0x27, 0x9d, 0x04, 0x46, 0x41, 0xb1, - 0x42, 0x6c, 0x4a, 0x60, 0x01, 0x23, 0x93, 0x40, 0x8b, 0x60, 0x01, 0xf0, 0xba, 0xff, 0x00, 0x23, - 0x23, 0x64, 0xb7, 0xf1, 0x00, 0x09, 0xb4, 0xbf, 0x01, 0x23, 0x00, 0x23, 0x2b, 0x60, 0x79, 0x4b, - 0xbc, 0xbf, 0x29, 0xf0, 0x00, 0x49, 0xcd, 0xf8, 0x14, 0x90, 0x33, 0xea, 0x09, 0x03, 0x00, 0xf0, - 0xad, 0x80, 0x9d, 0xed, 0x04, 0x7b, 0x00, 0x22, 0x51, 0xec, 0x17, 0x0b, 0x00, 0x23, 0x8d, 0xed, - 0x02, 0x7b, 0x03, 0xf0, 0x5c, 0xfc, 0x80, 0x46, 0x80, 0xb1, 0x26, 0x9a, 0x01, 0x23, 0x13, 0x60, - 0x28, 0x9b, 0x00, 0x2b, 0x00, 0xf0, 0xdc, 0x82, 0x6c, 0x48, 0x18, 0x60, 0x43, 0x1e, 0x06, 0x93, - 0x06, 0x98, 0x17, 0xb0, 0xbd, 0xec, 0x04, 0x8b, 0xbd, 0xe8, 0xf0, 0x8f, 0x14, 0xaa, 0x15, 0xab, - 0xcd, 0xe9, 0x00, 0x32, 0x20, 0x46, 0xdd, 0xe9, 0x02, 0x23, 0x02, 0xf0, 0x42, 0xfa, 0x5f, 0xea, - 0x19, 0x55, 0x82, 0x46, 0x40, 0xf0, 0x9a, 0x80, 0xdd, 0xe9, 0x14, 0x85, 0x45, 0x44, 0x05, 0xf2, - 0x32, 0x40, 0x20, 0x28, 0x40, 0xf3, 0xb0, 0x83, 0xc0, 0xf1, 0x40, 0x03, 0x05, 0xf2, 0x12, 0x40, - 0x09, 0xfa, 0x03, 0xf9, 0x26, 0xfa, 0x00, 0xf0, 0x49, 0xea, 0x00, 0x00, 0x03, 0xf0, 0x45, 0xf9, - 0x01, 0x23, 0x01, 0x3d, 0xa1, 0xf1, 0xf8, 0x71, 0x0e, 0x93, 0x54, 0x4b, 0x00, 0x22, 0x02, 0xf0, - 0xfe, 0xff, 0x4a, 0xa3, 0xd3, 0xe9, 0x00, 0x23, 0x03, 0xf0, 0xb1, 0xf9, 0x4a, 0xa3, 0xd3, 0xe9, - 0x00, 0x23, 0x02, 0xf0, 0xf6, 0xff, 0x06, 0x46, 0x28, 0x46, 0x0f, 0x46, 0x03, 0xf0, 0x3d, 0xf9, - 0x47, 0xa3, 0xd3, 0xe9, 0x00, 0x23, 0x03, 0xf0, 0xa2, 0xf9, 0x02, 0x46, 0x0b, 0x46, 0x30, 0x46, - 0x39, 0x46, 0x02, 0xf0, 0xe6, 0xff, 0x06, 0x46, 0x0f, 0x46, 0x03, 0xf0, 0x48, 0xfc, 0x00, 0x22, - 0x83, 0x46, 0x00, 0x23, 0x30, 0x46, 0x39, 0x46, 0x03, 0xf0, 0x03, 0xfc, 0x00, 0x28, 0x40, 0xf0, - 0x72, 0x82, 0xbb, 0xf1, 0x16, 0x0f, 0x00, 0xf2, 0x60, 0x82, 0x3d, 0x4b, 0x03, 0xeb, 0xcb, 0x03, - 0xd3, 0xe9, 0x00, 0x23, 0xdd, 0xe9, 0x02, 0x01, 0x03, 0xf0, 0xf3, 0xfb, 0x00, 0x28, 0x76, 0xd0, - 0x00, 0x23, 0xa8, 0xeb, 0x05, 0x05, 0x0d, 0x93, 0x6b, 0x1e, 0x0b, 0xf1, 0xff, 0x3b, 0x07, 0x93, - 0x00, 0xf1, 0x53, 0x82, 0x00, 0x23, 0x09, 0x93, 0xbb, 0xf1, 0x00, 0x0f, 0x6f, 0xda, 0x09, 0x9b, - 0xcd, 0xf8, 0x20, 0xb0, 0xa3, 0xeb, 0x0b, 0x03, 0x09, 0x93, 0xcb, 0xf1, 0x00, 0x03, 0x0c, 0x93, - 0x24, 0x9b, 0x09, 0x2b, 0x4f, 0xf0, 0x00, 0x0b, 0x6a, 0xd8, 0x05, 0x2b, 0x40, 0xf3, 0x42, 0x83, - 0x04, 0x3b, 0x24, 0x93, 0x00, 0x25, 0x24, 0x9b, 0x02, 0x3b, 0x03, 0x2b, 0x00, 0xf2, 0x8e, 0x86, - 0xdf, 0xe8, 0x13, 0xf0, 0x5e, 0x04, 0x5b, 0x04, 0x52, 0x04, 0x35, 0x04, 0x26, 0x9a, 0x42, 0xf2, - 0x0f, 0x73, 0xc9, 0xf3, 0x13, 0x09, 0x13, 0x60, 0x59, 0xea, 0x06, 0x03, 0x1e, 0xd1, 0x28, 0x9b, - 0x00, 0x2b, 0x00, 0xf0, 0x72, 0x86, 0x1b, 0x4b, 0x06, 0x93, 0x08, 0x33, 0x28, 0x9a, 0x06, 0x98, - 0x13, 0x60, 0x17, 0xb0, 0xbd, 0xec, 0x04, 0x8b, 0xbd, 0xe8, 0xf0, 0x8f, 0xdd, 0xe9, 0x02, 0x12, - 0xc2, 0xf3, 0x13, 0x03, 0x08, 0x46, 0x43, 0xf0, 0x7f, 0x51, 0xcd, 0xf8, 0x38, 0x80, 0xa5, 0xf2, - 0xff, 0x35, 0xdd, 0xf8, 0x50, 0x80, 0x41, 0xf4, 0x40, 0x11, 0x6e, 0xe7, 0x28, 0x9b, 0x00, 0x2b, - 0x40, 0xf0, 0xf4, 0x83, 0x0d, 0x4b, 0x06, 0x93, 0x3a, 0xe7, 0xaf, 0xf3, 0x00, 0x80, 0x61, 0x43, - 0x6f, 0x63, 0xa7, 0x87, 0xd2, 0x3f, 0xb3, 0xc8, 0x60, 0x8b, 0x28, 0x8a, 0xc6, 0x3f, 0xfb, 0x79, - 0x9f, 0x50, 0x13, 0x44, 0xd3, 0x3f, 0x00, 0x00, 0xf0, 0x7f, 0x81, 0x37, 0x01, 0x10, 0x00, 0x00, - 0xf8, 0x3f, 0xe0, 0x37, 0x01, 0x10, 0xa8, 0x37, 0x01, 0x10, 0xa4, 0x37, 0x01, 0x10, 0xa8, 0xeb, - 0x05, 0x05, 0x6b, 0x1e, 0x07, 0x93, 0x00, 0xf1, 0xc0, 0x84, 0x0d, 0x90, 0x09, 0x90, 0x07, 0x9b, - 0x5b, 0x44, 0xcd, 0xe9, 0x07, 0x3b, 0x00, 0x23, 0x0c, 0x93, 0x24, 0x9b, 0x09, 0x2b, 0x94, 0xd9, - 0x4f, 0xf0, 0xff, 0x36, 0x01, 0x25, 0xcd, 0xe9, 0x0a, 0x65, 0x00, 0x23, 0x24, 0x93, 0x25, 0x93, - 0x00, 0x21, 0x61, 0x64, 0x0f, 0x96, 0x20, 0x46, 0x01, 0xf0, 0x6d, 0xfe, 0x0e, 0x2e, 0x06, 0x90, - 0x20, 0x64, 0x00, 0xf2, 0xf7, 0x80, 0x00, 0x2d, 0x00, 0xf0, 0xf4, 0x80, 0x08, 0x99, 0x00, 0x29, - 0x40, 0xf3, 0x65, 0x84, 0xc0, 0x4b, 0x01, 0xf0, 0x0f, 0x02, 0x03, 0xeb, 0xc2, 0x03, 0xca, 0x05, - 0xd3, 0xe9, 0x00, 0x67, 0x4f, 0xea, 0x21, 0x15, 0x40, 0xf1, 0xfb, 0x83, 0xbb, 0x4b, 0xdd, 0xe9, - 0x02, 0x01, 0xd3, 0xe9, 0x08, 0x23, 0x03, 0xf0, 0xf4, 0xf9, 0x41, 0xec, 0x18, 0x0b, 0x05, 0xf0, - 0x0f, 0x05, 0x4f, 0xf0, 0x03, 0x09, 0x8d, 0xb1, 0xdf, 0xf8, 0xd0, 0x82, 0xeb, 0x07, 0x30, 0x46, - 0x39, 0x46, 0x07, 0xd5, 0xd8, 0xe9, 0x00, 0x23, 0x03, 0xf0, 0xb9, 0xf8, 0x09, 0xf1, 0x01, 0x09, - 0x06, 0x46, 0x0f, 0x46, 0x6d, 0x10, 0x08, 0xf1, 0x08, 0x08, 0xef, 0xd1, 0x3b, 0x46, 0x51, 0xec, - 0x18, 0x0b, 0x32, 0x46, 0x03, 0xf0, 0xd5, 0xf9, 0x07, 0x46, 0x88, 0x46, 0x0d, 0x9b, 0x43, 0xb1, - 0xa7, 0x4b, 0x00, 0x22, 0x38, 0x46, 0x41, 0x46, 0x03, 0xf0, 0x13, 0xfb, 0x00, 0x28, 0x40, 0xf0, - 0x53, 0x85, 0x48, 0x46, 0x03, 0xf0, 0x31, 0xf8, 0x3a, 0x46, 0x43, 0x46, 0x03, 0xf0, 0x97, 0xf8, - 0xa0, 0x4b, 0x00, 0x22, 0x02, 0xf0, 0xdd, 0xfe, 0xa1, 0xf1, 0x50, 0x73, 0xcd, 0xe9, 0x10, 0x01, - 0x11, 0x93, 0x0a, 0x9b, 0x00, 0x2b, 0x00, 0xf0, 0xf3, 0x83, 0x08, 0x9b, 0x13, 0x93, 0x0a, 0x9b, - 0x12, 0x93, 0x0b, 0x9b, 0x00, 0x2b, 0x00, 0xf0, 0xc6, 0x84, 0x12, 0x9a, 0x92, 0x4b, 0x95, 0x49, - 0x03, 0xeb, 0xc2, 0x03, 0x53, 0xe9, 0x02, 0x23, 0x00, 0x20, 0x03, 0xf0, 0xa2, 0xf9, 0xdd, 0xe9, - 0x10, 0x23, 0x02, 0xf0, 0xbc, 0xfe, 0x02, 0x46, 0x0b, 0x46, 0x38, 0x46, 0x41, 0x46, 0x43, 0xec, - 0x18, 0x2b, 0x03, 0xf0, 0x1c, 0xfb, 0x05, 0x46, 0x02, 0xf0, 0xff, 0xff, 0x02, 0x46, 0x0b, 0x46, - 0x38, 0x46, 0x41, 0x46, 0x02, 0xf0, 0xab, 0xfe, 0xdd, 0xf8, 0x18, 0x90, 0x30, 0x35, 0x06, 0x46, - 0x0f, 0x46, 0x02, 0x46, 0x0b, 0x46, 0x09, 0xf8, 0x01, 0x5b, 0x51, 0xec, 0x18, 0x0b, 0x03, 0xf0, - 0xe6, 0xfa, 0x00, 0x28, 0x40, 0xf0, 0x4c, 0x85, 0x4f, 0xf0, 0x00, 0x08, 0x09, 0xee, 0x10, 0xaa, - 0x09, 0xee, 0x90, 0x4a, 0xcd, 0xf8, 0x40, 0xb0, 0x4c, 0x46, 0xc3, 0x46, 0xdd, 0xf8, 0x48, 0xa0, - 0x59, 0xec, 0x18, 0x8b, 0x24, 0xe0, 0xd3, 0x45, 0x4e, 0xda, 0x03, 0xf0, 0x40, 0xf8, 0x76, 0x4b, - 0x00, 0x22, 0x80, 0x46, 0x89, 0x46, 0x30, 0x46, 0x39, 0x46, 0x03, 0xf0, 0x38, 0xf8, 0x0f, 0x46, - 0x06, 0x46, 0x03, 0xf0, 0xe4, 0xfa, 0x05, 0x46, 0x02, 0xf0, 0xc7, 0xff, 0x02, 0x46, 0x0b, 0x46, - 0x30, 0x46, 0x39, 0x46, 0x02, 0xf0, 0x73, 0xfe, 0x30, 0x35, 0x04, 0xf8, 0x01, 0x5b, 0x42, 0x46, - 0x4b, 0x46, 0x06, 0x46, 0x0f, 0x46, 0x03, 0xf0, 0x94, 0xfa, 0x00, 0x28, 0x40, 0xf0, 0x13, 0x85, - 0x32, 0x46, 0x3b, 0x46, 0x62, 0x49, 0x00, 0x20, 0x02, 0xf0, 0x61, 0xfe, 0x42, 0x46, 0x4b, 0x46, - 0x03, 0xf0, 0x87, 0xfa, 0x05, 0x46, 0x60, 0x4b, 0x0b, 0xf1, 0x01, 0x0b, 0x00, 0x22, 0x40, 0x46, - 0x49, 0x46, 0x00, 0x2d, 0xc7, 0xd0, 0x13, 0x9b, 0x08, 0x93, 0xa1, 0x46, 0x19, 0xee, 0x10, 0xaa, - 0x19, 0xee, 0x90, 0x4a, 0x06, 0x9b, 0x02, 0xe0, 0x99, 0x45, 0x00, 0xf0, 0xe3, 0x84, 0x4e, 0x46, - 0x19, 0xf8, 0x01, 0x2d, 0x39, 0x2a, 0xf7, 0xd0, 0x01, 0x32, 0xd2, 0xb2, 0x08, 0x9b, 0x89, 0xf8, - 0x00, 0x20, 0x01, 0x33, 0x08, 0x93, 0xb7, 0xe1, 0xdd, 0xf8, 0x40, 0xb0, 0x19, 0xee, 0x10, 0xaa, - 0x19, 0xee, 0x90, 0x4a, 0x15, 0x9b, 0x00, 0x2b, 0xc0, 0xf2, 0x9b, 0x80, 0x08, 0x9a, 0x0e, 0x2a, - 0x00, 0xf3, 0x97, 0x80, 0x44, 0x4b, 0x03, 0xeb, 0xc2, 0x03, 0x93, 0xed, 0x00, 0x7b, 0x25, 0x9b, - 0xb0, 0xee, 0x47, 0x8a, 0xf0, 0xee, 0x67, 0x8a, 0x00, 0x2b, 0x1b, 0xda, 0x0a, 0x9b, 0x00, 0x2b, - 0x18, 0xdc, 0x40, 0xf0, 0x58, 0x83, 0x51, 0xec, 0x17, 0x0b, 0x40, 0x4b, 0x00, 0x22, 0x02, 0xf0, - 0xce, 0xff, 0x02, 0x46, 0x0b, 0x46, 0xdd, 0xe9, 0x02, 0x01, 0x03, 0xf0, 0x44, 0xfa, 0xdd, 0xf8, - 0x28, 0x80, 0x45, 0x46, 0x00, 0x28, 0x00, 0xf0, 0x59, 0x82, 0x25, 0x9b, 0x06, 0x9f, 0x6f, 0xea, - 0x03, 0x09, 0x5c, 0xe2, 0xdd, 0xe9, 0x02, 0x67, 0x53, 0xec, 0x18, 0x2b, 0x30, 0x46, 0x39, 0x46, - 0x03, 0xf0, 0xdf, 0xf8, 0x03, 0xf0, 0x63, 0xfa, 0x05, 0x46, 0x02, 0xf0, 0x46, 0xff, 0x53, 0xec, - 0x18, 0x2b, 0x02, 0xf0, 0xac, 0xff, 0x0b, 0x46, 0x02, 0x46, 0x39, 0x46, 0x30, 0x46, 0x02, 0xf0, - 0xee, 0xfd, 0xdd, 0xf8, 0x18, 0x90, 0x05, 0xf1, 0x30, 0x03, 0x09, 0xf8, 0x01, 0x3b, 0x0a, 0x9b, - 0x01, 0x2b, 0x00, 0xf0, 0x94, 0x83, 0x09, 0xee, 0x10, 0xaa, 0xcb, 0x46, 0x09, 0xee, 0x90, 0x4a, - 0x5a, 0xec, 0x18, 0x9b, 0x4f, 0xf0, 0x01, 0x08, 0x1d, 0x46, 0x17, 0xe0, 0x03, 0xf0, 0xb9, 0xf8, - 0x03, 0xf0, 0x3d, 0xfa, 0x04, 0x46, 0x02, 0xf0, 0x20, 0xff, 0x4a, 0x46, 0x53, 0x46, 0x02, 0xf0, - 0x86, 0xff, 0x0b, 0x46, 0x02, 0x46, 0x39, 0x46, 0x30, 0x46, 0x02, 0xf0, 0xc8, 0xfd, 0x04, 0xf1, - 0x30, 0x03, 0xa8, 0x45, 0x0b, 0xf8, 0x01, 0x3b, 0x00, 0xf0, 0x6b, 0x83, 0x13, 0x4b, 0x00, 0x22, - 0x02, 0xf0, 0x75, 0xff, 0x00, 0x22, 0x00, 0x23, 0x06, 0x46, 0x0f, 0x46, 0x03, 0xf0, 0xd7, 0xf9, - 0x04, 0x46, 0x08, 0xf1, 0x01, 0x08, 0x4a, 0x46, 0x53, 0x46, 0x30, 0x46, 0x39, 0x46, 0x00, 0x2c, - 0xd4, 0xd0, 0x19, 0xee, 0x10, 0xaa, 0x19, 0xee, 0x90, 0x4a, 0xd9, 0x46, 0x08, 0x9b, 0x01, 0x33, - 0x08, 0x93, 0x4e, 0x46, 0x20, 0xe1, 0xe0, 0x37, 0x01, 0x10, 0xb8, 0x37, 0x01, 0x10, 0x00, 0x00, - 0xf0, 0x3f, 0x00, 0x00, 0x1c, 0x40, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x00, 0x24, 0x40, 0x00, 0x00, - 0x14, 0x40, 0x0b, 0x9a, 0x00, 0x2a, 0x43, 0xd0, 0x24, 0x9a, 0x01, 0x2a, 0x40, 0xf3, 0x91, 0x82, - 0x0a, 0x9b, 0x5f, 0x1e, 0x0c, 0x9b, 0xbb, 0x42, 0x80, 0xf2, 0x69, 0x82, 0x0c, 0x9b, 0x0c, 0x97, - 0xfb, 0x1a, 0x9b, 0x44, 0x00, 0x27, 0x0a, 0x9b, 0x00, 0x2b, 0xc0, 0xf2, 0x5e, 0x83, 0x07, 0x9a, - 0x11, 0x46, 0x09, 0x9a, 0x19, 0x44, 0x16, 0x46, 0x1a, 0x44, 0x07, 0x91, 0x09, 0x92, 0x01, 0x21, - 0x20, 0x46, 0x01, 0xf0, 0x76, 0xfd, 0x05, 0x46, 0x25, 0xe0, 0x01, 0x23, 0xa8, 0xeb, 0x05, 0x05, - 0x0d, 0x93, 0x6b, 0x1e, 0x07, 0x93, 0x7f, 0xf5, 0xad, 0xad, 0xc5, 0xf1, 0x01, 0x03, 0x09, 0x93, - 0x00, 0x23, 0x07, 0x93, 0xa8, 0xe5, 0x58, 0x46, 0x02, 0xf0, 0xaf, 0xfe, 0x32, 0x46, 0x3b, 0x46, - 0x03, 0xf0, 0x7d, 0xf9, 0x00, 0x28, 0x7f, 0xf4, 0x84, 0xad, 0x0b, 0xf1, 0xff, 0x3b, 0x80, 0xe5, - 0xc7, 0x4b, 0x06, 0x93, 0x06, 0x98, 0x17, 0xb0, 0xbd, 0xec, 0x04, 0x8b, 0xbd, 0xe8, 0xf0, 0x8f, - 0x0c, 0x9f, 0x09, 0x9e, 0x0b, 0x9d, 0x00, 0x2e, 0x0c, 0xdd, 0x07, 0x9a, 0x00, 0x2a, 0x09, 0xdd, - 0x09, 0x99, 0xb2, 0x42, 0x13, 0x46, 0xa8, 0xbf, 0x33, 0x46, 0xc9, 0x1a, 0xf6, 0x1a, 0xd3, 0x1a, - 0x09, 0x91, 0x07, 0x93, 0x0c, 0x9b, 0xd3, 0xb1, 0x0b, 0x9b, 0x00, 0x2b, 0x00, 0xf0, 0xb7, 0x81, - 0x00, 0x2f, 0x10, 0xdd, 0x29, 0x46, 0x3a, 0x46, 0x20, 0x46, 0x01, 0xf0, 0xde, 0xfd, 0x52, 0x46, - 0x01, 0x46, 0x05, 0x46, 0x20, 0x46, 0x01, 0xf0, 0x36, 0xfd, 0x51, 0x46, 0x80, 0x46, 0x20, 0x46, - 0x01, 0xf0, 0x87, 0xfc, 0xc2, 0x46, 0x0c, 0x9b, 0xda, 0x1b, 0x40, 0xf0, 0xa1, 0x81, 0x01, 0x21, - 0x20, 0x46, 0x01, 0xf0, 0x1e, 0xfd, 0xbb, 0xf1, 0x00, 0x0f, 0x80, 0x46, 0x00, 0xf3, 0xb9, 0x80, - 0x24, 0x9b, 0x01, 0x2b, 0x40, 0xf3, 0x1b, 0xb2, 0x4a, 0x21, 0x00, 0x6d, 0x70, 0x95, 0xb0, 0xe0, - 0x72, 0xb7, 0x8b, 0x8f, 0x40, 0xcf, 0xca, 0x21, 0x19, 0xfc, 0x9d, 0x02, 0xa8, 0x41, 0x61, 0x5c, - 0xa1, 0x8e, 0xdc, 0x3f, 0x16, 0x5c, 0x47, 0x0f, 0x49, 0x22, 0x7d, 0x96, 0xc0, 0x29, 0x65, 0xee, - 0x5a, 0x12, 0xf2, 0x6f, 0x22, 0x6c, 0x14, 0x07, 0xe6, 0x7f, 0x64, 0x62, 0xc3, 0x39, 0x2c, 0xf4, - 0xab, 0xa2, 0xbb, 0xea, 0x8c, 0x22, 0x7f, 0x99, 0x0a, 0x17 + 0xbe,0xef,0xed,0x05,0x20,0x2e,0x96,0x17,0x5a,0x02,0x1f,0xea,0x24,0x02,0x10,0x00, + 0xdf,0xe0,0x00,0x00,0x1f,0xe0,0x06,0x9b,0x0d,0x96,0x43,0xf0,0x10,0x05,0xaf,0x06, + 0x40,0xf1,0x29,0x84,0x0c,0x9b,0x07,0x33,0x23,0xf0,0x07,0x03,0xf3,0xe8,0x02,0xab, + 0x0c,0x93,0x01,0x23,0x00,0x22,0x8d,0xf8,0x7b,0x20,0x07,0x9a,0x11,0x46,0x01,0x31, + 0x7d,0xd0,0x25,0xf0,0x80,0x01,0x06,0x91,0x5a,0xea,0x0b,0x01,0x40,0xf0,0x71,0x82, + 0x00,0x2a,0x40,0xf0,0x85,0x86,0x00,0x2b,0xc3,0xd1,0x15,0xf0,0x01,0x03,0x0a,0x93, + 0x00,0xf0,0x6b,0x84,0x30,0x23,0x8d,0xf8,0x47,0x31,0x0d,0xf2,0x47,0x17,0x81,0xe0, + 0x06,0x9b,0x34,0x78,0x43,0xf0,0x80,0x03,0x06,0x93,0x9f,0xe5,0x32,0x46,0x12,0xf8, + 0x01,0x4b,0x2a,0x2c,0x01,0xf0,0xf0,0x82,0xa4,0xf1,0x30,0x03,0x09,0x2b,0x16,0x46, + 0x98,0xbf,0x00,0x22,0x01,0xf2,0x90,0x81,0x16,0xf8,0x01,0x4b,0x02,0xeb,0x82,0x02, + 0x03,0xeb,0x42,0x02,0xa4,0xf1,0x30,0x03,0x09,0x2b,0xf5,0xd9,0x07,0x92,0x86,0xe5, + 0x06,0x9b,0x34,0x78,0x43,0xf0,0x01,0x03,0x06,0x93,0x7f,0xe5,0x9d,0xf8,0x7b,0x30, + 0x00,0x2b,0x7f,0xf4,0x05,0xae,0x34,0x78,0x8d,0xf8,0x7b,0xa0,0x76,0xe5,0x34,0x78, + 0x06,0x9b,0x6c,0x2c,0x00,0xf0,0xc1,0x85,0x43,0xf0,0x10,0x03,0x06,0x93,0x6d,0xe5, + 0x06,0x9b,0x34,0x78,0x43,0xf0,0x08,0x03,0x06,0x93,0x67,0xe5,0x06,0x9b,0x0d,0x96, + 0x43,0xf0,0x10,0x03,0x06,0x93,0x06,0x9b,0x9d,0x06,0x3f,0xf5,0x53,0xaf,0x06,0x9b, + 0xd8,0x06,0x40,0xf1,0xf6,0x84,0x0c,0x9b,0x53,0xf8,0x04,0x2b,0x0c,0x93,0x4f,0xea, + 0xe2,0x7b,0x5b,0x46,0x00,0x2a,0x73,0xf1,0x00,0x03,0x92,0x46,0xbf,0xf6,0x51,0xaf, + 0x07,0x9a,0x06,0x9d,0xda,0xf1,0x00,0x0a,0x11,0x46,0x4f,0xf0,0x2d,0x03,0x6b,0xeb, + 0x4b,0x0b,0x01,0x31,0x8d,0xf8,0x7b,0x30,0x4f,0xf0,0x01,0x03,0x81,0xd1,0x01,0x2b, + 0x00,0xf0,0xfb,0x81,0x02,0x2b,0x52,0xaf,0x73,0xd1,0x16,0x98,0x4f,0xea,0x1a,0x13, + 0x0a,0xf0,0x0f,0x01,0x43,0xea,0x0b,0x73,0x4f,0xea,0x1b,0x12,0x9a,0x46,0x93,0x46, + 0x43,0x5c,0x07,0xf8,0x01,0x3d,0x5a,0xea,0x0b,0x03,0xef,0xd1,0x52,0xab,0xdb,0x1b, + 0x06,0x95,0x0a,0x93,0x00,0x23,0x07,0x99,0x0b,0x93,0x0e,0x93,0x11,0x93,0x0f,0x93, + 0x0a,0x9b,0x9d,0xf8,0x7b,0x20,0x8b,0x42,0xb8,0xbf,0x0b,0x46,0x9a,0x46,0xc0,0xe6, + 0x00,0xbf,0xff,0xff,0xef,0x7f,0x40,0x37,0x01,0x10,0x44,0x37,0x01,0x10,0x06,0x9b, + 0x0d,0x96,0x43,0xf0,0x10,0x03,0x06,0x93,0x06,0x9b,0x99,0x06,0x40,0xf1,0x77,0x83, + 0x0c,0x9b,0x07,0x33,0x23,0xf0,0x07,0x03,0xf3,0xe8,0x02,0xab,0x0c,0x93,0x06,0x9b, + 0x23,0xf4,0x80,0x65,0x00,0x23,0x35,0xe7,0x34,0x78,0x06,0x9b,0x68,0x2c,0x00,0xf0, + 0x3d,0x85,0x43,0xf0,0x40,0x03,0x06,0x93,0xf0,0xe4,0x0c,0x9b,0x0d,0x96,0x47,0xf6, + 0x30,0x01,0x53,0xf8,0x04,0x2b,0xad,0xf8,0x7c,0x10,0x06,0x99,0x0c,0x93,0xcd,0x4b, + 0x16,0x93,0x41,0xf0,0x02,0x05,0x92,0x46,0x4f,0xf0,0x00,0x0b,0x02,0x23,0x78,0x24, + 0x18,0xe7,0x06,0x9b,0x0d,0x96,0x9e,0x06,0x00,0xf1,0xa1,0x83,0x06,0x9b,0xdd,0x06, + 0x00,0xf1,0xac,0x85,0x06,0x9b,0x5c,0x06,0x00,0xf1,0x48,0x86,0x06,0x9b,0x98,0x05, + 0x40,0xf1,0xa4,0x85,0x0c,0x9b,0x08,0x99,0x53,0xf8,0x04,0x2b,0x0c,0x93,0x11,0x70, + 0x1a,0xe6,0x4f,0xea,0xda,0x02,0x42,0xea,0x4b,0x72,0x4f,0xea,0xdb,0x01,0x0a,0xf0, + 0x07,0x03,0x8b,0x46,0x92,0x46,0x30,0x33,0x5a,0xea,0x0b,0x01,0x3a,0x46,0x07,0xf8, + 0x01,0x3d,0xee,0xd1,0xe9,0x07,0x89,0xd5,0x30,0x2b,0x87,0xd0,0x30,0x23,0x02,0x3a, + 0x07,0xf8,0x01,0x3c,0x52,0xab,0x9b,0x1a,0x06,0x95,0x0a,0x93,0x17,0x46,0x81,0xe7, + 0x65,0x2c,0x40,0xf3,0x13,0x81,0xdd,0xe9,0x12,0x01,0x00,0x22,0x00,0x23,0x04,0xf0, + 0xee,0xff,0x00,0x28,0x00,0xf0,0x04,0x82,0x27,0x9b,0xa7,0x4a,0xc8,0xf8,0x00,0x20, + 0x01,0x33,0x01,0x35,0x01,0x22,0x07,0x2b,0xcd,0xe9,0x27,0x35,0xc8,0xf8,0x04,0x20, + 0x00,0xf3,0x40,0x85,0x08,0xf1,0x08,0x08,0x20,0x9b,0x10,0x9a,0x93,0x42,0x80,0xf2, + 0x07,0x83,0x27,0x9b,0x15,0x9a,0xc8,0xf8,0x00,0x20,0x14,0x9a,0xc8,0xf8,0x04,0x20, + 0x01,0x33,0x15,0x44,0x07,0x2b,0x28,0x95,0x27,0x93,0x00,0xf3,0xb1,0x84,0x08,0xf1, + 0x08,0x08,0x10,0x9b,0x5c,0x1e,0x00,0x2c,0x7f,0xf7,0xa9,0xad,0x10,0x2c,0x27,0x9b, + 0xdf,0xf8,0x4c,0xb2,0x40,0xf3,0x2f,0x85,0x5f,0x46,0x10,0x26,0x18,0xee,0x10,0xba, + 0x05,0xe0,0x08,0xf1,0x08,0x08,0x10,0x3c,0x10,0x2c,0x40,0xf3,0x23,0x85,0x01,0x33, + 0x10,0x35,0x07,0x2b,0xcd,0xe9,0x27,0x35,0xc8,0xe9,0x00,0x76,0xf1,0xdd,0x26,0xaa, + 0x59,0x46,0x48,0x46,0x04,0xf0,0xf3,0xf8,0x00,0x28,0x40,0xf0,0x3e,0x82,0xdd,0xe9, + 0x27,0x35,0x0d,0xf1,0xa4,0x08,0xe6,0xe7,0x09,0x9b,0xa3,0xeb,0x0a,0x06,0x00,0x2e, + 0x7f,0xf7,0x64,0xad,0x10,0x2e,0x27,0x9a,0xdf,0xf8,0xf4,0xb1,0x29,0xdd,0x58,0x46, + 0x29,0x46,0xa3,0x46,0x18,0xee,0x10,0x5a,0x10,0x23,0x04,0x46,0x04,0xe0,0x10,0x3e, + 0x10,0x2e,0x08,0xf1,0x08,0x08,0x18,0xdd,0x01,0x32,0x10,0x31,0x07,0x2a,0xcd,0xe9, + 0x27,0x21,0xc8,0xe9,0x00,0x43,0xf2,0xdd,0x26,0xaa,0x29,0x46,0x48,0x46,0x04,0xf0, + 0xc6,0xf8,0x00,0x28,0x40,0xf0,0x10,0x82,0x10,0x3e,0x10,0x2e,0xdd,0xe9,0x27,0x21, + 0x0d,0xf1,0xa4,0x08,0x4f,0xf0,0x10,0x03,0xe6,0xdc,0x23,0x46,0x0d,0x46,0x5c,0x46, + 0x9b,0x46,0x01,0x32,0x35,0x44,0x07,0x2a,0xcd,0xe9,0x27,0x25,0xc8,0xf8,0x00,0xb0, + 0xc8,0xf8,0x04,0x60,0x00,0xf3,0x36,0x84,0x07,0x9b,0x0a,0x9a,0x9e,0x1a,0x00,0x2e, + 0x08,0xf1,0x08,0x08,0x7f,0xf7,0x28,0xad,0x10,0x2e,0x27,0x9a,0xdf,0xf8,0x70,0xb1, + 0x29,0xdd,0x58,0x46,0x29,0x46,0xa3,0x46,0x18,0xee,0x10,0x5a,0x10,0x23,0x04,0x46, + 0x04,0xe0,0x10,0x3e,0x10,0x2e,0x08,0xf1,0x08,0x08,0x18,0xdd,0x01,0x32,0x10,0x31, + 0x07,0x2a,0xcd,0xe9,0x27,0x21,0xc8,0xe9,0x00,0x43,0xf2,0xdd,0x26,0xaa,0x29,0x46, + 0x48,0x46,0x04,0xf0,0x84,0xf8,0x00,0x28,0x40,0xf0,0xce,0x81,0x10,0x3e,0x10,0x2e, + 0xdd,0xe9,0x27,0x21,0x0d,0xf1,0xa4,0x08,0x4f,0xf0,0x10,0x03,0xe6,0xdc,0x23,0x46, + 0x0d,0x46,0x5c,0x46,0x9b,0x46,0x01,0x32,0x35,0x44,0x07,0x2a,0xcd,0xe9,0x27,0x25, + 0xc8,0xf8,0x00,0xb0,0xc8,0xf8,0x04,0x60,0x00,0xf3,0x17,0x82,0x08,0xf1,0x08,0x08, + 0xea,0xe4,0x18,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46,0x04,0xf0,0x60,0xf8,0x00,0x28, + 0x3f,0xf4,0x08,0xad,0x18,0xee,0x10,0xba,0xa7,0xe1,0x27,0x9b,0x15,0x99,0xc8,0xf8, + 0x00,0x10,0x14,0x99,0xc8,0xf8,0x04,0x10,0x01,0x33,0x0d,0x44,0x07,0x2b,0x28,0x95, + 0x27,0x93,0x00,0xf3,0xce,0x85,0x08,0xf1,0x08,0x08,0x00,0x2a,0xc0,0xf2,0xc5,0x87, + 0x10,0x9a,0x01,0x33,0x15,0x44,0x07,0x2b,0xcd,0xe9,0x27,0x35,0xc8,0xe9,0x00,0x72, + 0x7f,0xf7,0xd3,0xac,0x18,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46,0x04,0xf0,0x37,0xf8, + 0x00,0x28,0xd7,0xd1,0x28,0x9d,0x0d,0xf1,0xa4,0x08,0xc8,0xe4,0x10,0x9b,0x27,0x9c, + 0x01,0x2b,0x40,0xf3,0x92,0x81,0x01,0x34,0x01,0x35,0x01,0x23,0x07,0x2c,0xcd,0xe9, + 0x27,0x45,0xc8,0xf8,0x00,0x70,0xc8,0xf8,0x04,0x30,0x00,0xf3,0xf0,0x83,0x08,0xf1, + 0x08,0x08,0x14,0x9b,0x15,0x9a,0x01,0x34,0x1d,0x44,0x07,0x2c,0xcd,0xe9,0x27,0x45, + 0xc8,0xe9,0x00,0x23,0x00,0xf3,0xf1,0x83,0x08,0xf1,0x08,0x08,0x00,0x23,0xdd,0xe9, + 0x12,0x01,0x00,0x22,0x04,0xf0,0xbb,0xfe,0x10,0x9b,0x00,0x28,0x40,0xf0,0x8b,0x81, + 0x01,0x3b,0x01,0x34,0x01,0x37,0x1d,0x44,0x07,0x2c,0xcd,0xe9,0x27,0x45,0xc8,0xf8, + 0x00,0x70,0xc8,0xf8,0x04,0x30,0x00,0xf3,0x70,0x81,0x08,0xf1,0x08,0x08,0x18,0x9a, + 0x01,0x34,0x15,0x44,0x22,0xab,0x07,0x2c,0xcd,0xe9,0x27,0x45,0xc8,0xe9,0x00,0x32, + 0x7f,0xf7,0x83,0xac,0xae,0xe7,0x50,0x37,0x01,0x10,0x80,0x37,0x01,0x10,0x94,0x37, + 0x01,0x10,0x01,0x2b,0x06,0x9d,0x7f,0xf4,0x05,0xae,0xbb,0xf1,0x00,0x0f,0x08,0xbf, + 0xba,0xf1,0x0a,0x0f,0x80,0xf0,0xf6,0x82,0x0a,0xf1,0x30,0x0a,0x01,0x23,0x8d,0xf8, + 0x47,0xa1,0x06,0x95,0x0a,0x93,0x0d,0xf2,0x47,0x17,0x0b,0xe6,0x10,0x2e,0xdd,0xe9, + 0x27,0x21,0x29,0xdd,0x1b,0x93,0x10,0x25,0x43,0x46,0x08,0x46,0xb8,0x46,0x27,0x46, + 0x18,0xee,0x10,0x4a,0x04,0xe0,0x10,0x3e,0x10,0x2e,0x03,0xf1,0x08,0x03,0x16,0xdd, + 0x01,0x32,0xc4,0x49,0x10,0x30,0x07,0x2a,0xcd,0xe9,0x27,0x20,0xc3,0xe9,0x00,0x15, + 0xf1,0xdd,0x26,0xaa,0x21,0x46,0x48,0x46,0x03,0xf0,0xb1,0xff,0x00,0x28,0x40,0xf0, + 0xb3,0x83,0x10,0x3e,0x10,0x2e,0xdd,0xe9,0x27,0x20,0x29,0xab,0xe8,0xdc,0x3c,0x46, + 0x47,0x46,0x98,0x46,0x1b,0x9b,0x01,0x46,0x01,0x32,0xb6,0x48,0xc8,0xf8,0x00,0x00, + 0x75,0x18,0x07,0x2a,0xcd,0xe9,0x27,0x25,0xc8,0xf8,0x04,0x60,0x00,0xf3,0x8a,0x83, + 0x9d,0xf8,0x7b,0x20,0x08,0xf1,0x08,0x08,0xff,0xf7,0xed,0xbb,0x18,0xee,0x10,0x1a, + 0x26,0xaa,0x48,0x46,0x1b,0x93,0x03,0xf0,0x8a,0xff,0x00,0x28,0x7f,0xf4,0x2a,0xaf, + 0x28,0x9d,0x1b,0x9b,0x0d,0xf1,0xa4,0x08,0xff,0xf7,0xed,0xbb,0x18,0xee,0x10,0x1a, + 0x26,0xaa,0x48,0x46,0x03,0xf0,0x7b,0xff,0x00,0x28,0x7f,0xf4,0x1b,0xaf,0x28,0x9d, + 0x0d,0xf1,0xa4,0x08,0xff,0xf7,0xee,0xbb,0x10,0x2c,0x27,0x9b,0x20,0xdd,0x18,0xee, + 0x10,0x7a,0x10,0x26,0x04,0xe0,0x10,0x3c,0x10,0x2c,0x08,0xf1,0x08,0x08,0x17,0xdd, + 0x01,0x33,0x98,0x4a,0x10,0x35,0x07,0x2b,0xcd,0xe9,0x27,0x35,0xc8,0xe9,0x00,0x26, + 0xf1,0xdd,0x26,0xaa,0x39,0x46,0x48,0x46,0x03,0xf0,0x59,0xff,0x00,0x28,0x40,0xf0, + 0x77,0x83,0x10,0x3c,0x10,0x2c,0xdd,0xe9,0x27,0x35,0x0d,0xf1,0xa4,0x08,0xe7,0xdc, + 0x01,0x33,0x8c,0x4a,0xc8,0xf8,0x00,0x20,0x25,0x44,0x07,0x2b,0xcd,0xe9,0x27,0x35, + 0xc8,0xf8,0x04,0x40,0x7f,0xf7,0xe4,0xab,0x18,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46, + 0x03,0xf0,0x3d,0xff,0x00,0x28,0x7f,0xf4,0xdd,0xae,0x28,0x9d,0xff,0xf7,0xd8,0xbb, + 0x20,0x9a,0x00,0x2a,0x40,0xf3,0x26,0x81,0xdd,0xe9,0x0f,0x32,0x93,0x42,0xa8,0xbf, + 0x13,0x46,0x00,0x2b,0x1c,0x46,0x0d,0xdd,0x27,0x9b,0xc8,0xf8,0x00,0x70,0x01,0x33, + 0x25,0x44,0x07,0x2b,0x28,0x95,0xc8,0xf8,0x04,0x40,0x27,0x93,0x00,0xf3,0xd5,0x85, + 0x08,0xf1,0x08,0x08,0x0f,0x9b,0x00,0x2c,0xa8,0xbf,0x1b,0x1b,0x00,0x2b,0x1c,0x46, + 0x00,0xf3,0x54,0x83,0x0f,0x9b,0x3b,0x44,0x9b,0x46,0x06,0x9b,0x59,0x05,0x00,0xf1, + 0x00,0x85,0x20,0x9b,0x10,0x9a,0x93,0x42,0x03,0xdb,0x06,0x9a,0xd2,0x07,0x40,0xf1, + 0xce,0x83,0x27,0x9a,0x15,0x99,0xc8,0xf8,0x00,0x10,0x14,0x99,0xc8,0xf8,0x04,0x10, + 0x01,0x32,0x0d,0x44,0x07,0x2a,0x28,0x95,0x27,0x92,0x00,0xf3,0xe6,0x85,0x08,0xf1, + 0x08,0x08,0x10,0x9a,0xbc,0x18,0xa4,0xeb,0x0b,0x04,0xd3,0x1a,0x9c,0x42,0xa8,0xbf, + 0x1c,0x46,0x00,0x2c,0x0d,0xdd,0x27,0x9a,0xc8,0xf8,0x00,0xb0,0x01,0x32,0x25,0x44, + 0x07,0x2a,0x28,0x95,0xc8,0xf8,0x04,0x40,0x27,0x92,0x00,0xf3,0x2c,0x86,0x08,0xf1, + 0x08,0x08,0x00,0x2c,0xac,0xbf,0x1c,0x1b,0x1c,0x46,0x00,0x2c,0x7f,0xf7,0x6f,0xab, + 0x10,0x2c,0x27,0x9b,0xdf,0xf8,0x44,0xb1,0x40,0xf3,0xf5,0x82,0x5f,0x46,0x10,0x26, + 0x18,0xee,0x10,0xba,0x05,0xe0,0x08,0xf1,0x08,0x08,0x10,0x3c,0x10,0x2c,0x40,0xf3, + 0xe9,0x82,0x01,0x33,0x10,0x35,0x07,0x2b,0xcd,0xe9,0x27,0x35,0xc8,0xe9,0x00,0x76, + 0xf1,0xdd,0x26,0xaa,0x59,0x46,0x48,0x46,0x03,0xf0,0xb9,0xfe,0x28,0xb9,0xdd,0xe9, + 0x27,0x35,0x0d,0xf1,0xa4,0x08,0xe8,0xe7,0xab,0x46,0x0b,0x99,0x11,0xb1,0x48,0x46, + 0x02,0xf0,0xd7,0xf9,0xdb,0xf8,0x64,0x30,0x13,0xf0,0x01,0x0f,0xbb,0xf8,0x0c,0x30, + 0x02,0xd1,0x98,0x05,0x40,0xf1,0x8f,0x82,0x59,0x06,0x00,0xf1,0x10,0x86,0x08,0x98, + 0x53,0xb0,0xbd,0xec,0x06,0x8b,0xbd,0xe8,0xf0,0x8f,0x06,0x9b,0xde,0x07,0x3f,0xf5, + 0x6a,0xae,0x01,0x34,0x01,0x35,0x01,0x23,0x07,0x2c,0xcd,0xe9,0x27,0x45,0xc8,0xf8, + 0x00,0x70,0xc8,0xf8,0x04,0x30,0x7f,0xf7,0x90,0xae,0x18,0xee,0x10,0x1a,0x26,0xaa, + 0x48,0x46,0x03,0xf0,0x84,0xfe,0x00,0x28,0x7f,0xf4,0x24,0xae,0xdd,0xe9,0x27,0x45, + 0x0d,0xf1,0xa4,0x08,0x83,0xe6,0x5e,0x1e,0x00,0x2e,0x7f,0xf7,0x80,0xae,0x10,0x2e, + 0xdf,0xf8,0x88,0xb0,0x40,0xf3,0xe2,0x82,0xcd,0xf8,0x1c,0xa0,0x10,0x27,0x18,0xee, + 0x10,0xaa,0x05,0xe0,0x08,0xf1,0x08,0x08,0x10,0x3e,0x10,0x2e,0x40,0xf3,0xd4,0x82, + 0x01,0x34,0x10,0x35,0x07,0x2c,0xcd,0xe9,0x27,0x45,0xc8,0xe9,0x00,0xb7,0xf1,0xdd, + 0x26,0xaa,0x51,0x46,0x48,0x46,0x03,0xf0,0x5a,0xfe,0x00,0x28,0x40,0xf0,0xb8,0x85, + 0xdd,0xe9,0x27,0x45,0x0d,0xf1,0xa4,0x08,0xe6,0xe7,0x18,0xee,0x10,0x1a,0x26,0xaa, + 0x48,0x46,0x03,0xf0,0x4c,0xfe,0x00,0x28,0x7f,0xf4,0xec,0xad,0x28,0x9d,0x0d,0xf1, + 0xa4,0x08,0xff,0xf7,0xc9,0xba,0x0c,0x9a,0xee,0x06,0x52,0xf8,0x04,0x1b,0x0c,0x92, + 0x4f,0xf0,0x01,0x03,0x5e,0xd4,0x68,0x06,0x59,0xd5,0x1f,0xfa,0x81,0xfa,0x4f,0xf0, + 0x00,0x0b,0xff,0xf7,0xcf,0xbb,0x84,0x37,0x01,0x10,0x94,0x37,0x01,0x10,0x06,0x9b, + 0xda,0x06,0x00,0xf1,0x36,0x81,0x06,0x9b,0x5b,0x06,0x40,0xf1,0xaf,0x82,0x0c,0x9b, + 0x53,0xf8,0x04,0x2b,0x0c,0x93,0x1f,0xfa,0x82,0xfa,0x4f,0xf0,0x00,0x0b,0x7e,0xe4, + 0x06,0x9b,0xd8,0x07,0x7f,0xf5,0xb3,0xaa,0xf3,0xe4,0xdb,0xf8,0x58,0x00,0x02,0xf0, + 0xe0,0xfb,0xbb,0xf9,0x0c,0x20,0x93,0xb2,0xff,0xf7,0x22,0xb9,0x34,0x78,0x0c,0x93, + 0xff,0xf7,0x6c,0xb9,0x27,0x9b,0xc4,0x49,0xc8,0xf8,0x00,0x10,0x01,0x33,0x01,0x35, + 0x01,0x21,0x07,0x2b,0xcd,0xe9,0x27,0x35,0xc8,0xf8,0x04,0x10,0x00,0xf3,0x97,0x84, + 0x08,0xf1,0x08,0x08,0x00,0x2a,0x7f,0xf4,0xa0,0xad,0x06,0x9b,0x10,0x9a,0x03,0xf0, + 0x01,0x03,0x13,0x43,0x3f,0xf4,0x8b,0xaa,0x27,0x9b,0x15,0x9a,0xc8,0xf8,0x00,0x20, + 0x14,0x9a,0xc8,0xf8,0x04,0x20,0x01,0x33,0x15,0x44,0x07,0x2b,0x28,0x95,0x27,0x93, + 0x00,0xf3,0x67,0x83,0x08,0xf1,0x08,0x08,0x9a,0xe5,0x52,0xaf,0x1a,0xe4,0xaa,0x05, + 0x00,0xf1,0xae,0x82,0x8a,0x46,0x4f,0xf0,0x00,0x0b,0xff,0xf7,0x73,0xbb,0x0c,0x9b, + 0x53,0xf8,0x04,0x1b,0x0c,0x93,0x08,0x9b,0xdd,0x17,0x1a,0x46,0x2b,0x46,0xc1,0xe9, + 0x00,0x23,0xff,0xf7,0x81,0xba,0xdd,0xe9,0x12,0x01,0x0b,0x46,0x02,0x46,0x04,0xf0, + 0xa8,0xfc,0x01,0x46,0x00,0x28,0x40,0xf0,0x2f,0x86,0x61,0x2c,0x00,0xf0,0xa2,0x85, + 0x41,0x2c,0x00,0xf0,0xa2,0x82,0x07,0x9b,0x24,0xf0,0x20,0x06,0x5a,0x1c,0x0a,0x96, + 0x00,0xf0,0xc3,0x85,0x47,0x2e,0x00,0xf0,0x9a,0x85,0xdd,0xe9,0x12,0x01,0x06,0x9a, + 0x00,0x29,0x42,0xf4,0x80,0x72,0x0e,0x92,0x4f,0xf0,0x00,0x03,0xc0,0xf2,0xe4,0x85, + 0x41,0xec,0x1a,0x0b,0x1b,0x93,0x0b,0x93,0x46,0x2e,0x00,0xf0,0x9d,0x84,0x45,0x2e, + 0x40,0xf0,0x6d,0x84,0x07,0x9b,0x24,0xa8,0x5d,0x1c,0x21,0xa9,0x20,0xaa,0x02,0x23, + 0xcd,0xe9,0x03,0x10,0x01,0x95,0x02,0x92,0x00,0x93,0x48,0x46,0x53,0xec,0x1a,0x2b, + 0x00,0xf0,0xb1,0xff,0x07,0x46,0x05,0x44,0x0e,0x9b,0xdd,0xf8,0x18,0xb0,0x06,0x93, + 0x51,0xec,0x1a,0x0b,0x00,0x22,0x00,0x23,0x04,0xf0,0x31,0xfc,0x00,0x28,0x00,0xf0, + 0x52,0x83,0x2b,0x46,0xdb,0x1b,0x10,0x93,0x0a,0x9b,0x47,0x2b,0x00,0xf0,0x1d,0x83, + 0x0a,0x9b,0x46,0x2b,0x00,0xf0,0x9f,0x84,0x20,0x9b,0x0f,0x93,0x0f,0x9b,0x0a,0x9a, + 0x01,0x3b,0x41,0x2a,0x20,0x93,0x00,0xf0,0xa1,0x85,0xe2,0xb2,0x00,0x21,0x00,0x2b, + 0xb8,0xbf,0x0f,0x9b,0x8d,0xf8,0x88,0x20,0xba,0xbf,0xc3,0xf1,0x01,0x03,0x2d,0x22, + 0x2b,0x22,0x09,0x2b,0x8d,0xf8,0x89,0x20,0x40,0xf3,0x81,0x85,0x0d,0xf1,0x97,0x0e, + 0xdf,0xf8,0xb0,0xc1,0x75,0x46,0x8c,0xfb,0x03,0x21,0xda,0x17,0xc2,0xeb,0xa1,0x02, + 0x02,0xeb,0x82,0x01,0xa3,0xeb,0x41,0x01,0x1e,0x46,0x30,0x31,0x63,0x2e,0x28,0x46, + 0x05,0xf8,0x01,0x1c,0x13,0x46,0x05,0xf1,0xff,0x35,0xec,0xdc,0x30,0x33,0xda,0xb2, + 0x83,0x1e,0x9e,0x45,0x29,0x46,0x05,0xf8,0x01,0x2c,0x40,0xf2,0xf8,0x85,0x0d,0xf1, + 0x8a,0x03,0x01,0xe0,0x11,0xf8,0x01,0x2b,0x03,0xf8,0x01,0x2b,0x8e,0x45,0xf9,0xd1, + 0x0d,0xf1,0x99,0x03,0x0d,0xf1,0x8a,0x02,0x1b,0x1a,0x13,0x44,0x22,0xaa,0x9b,0x1a, + 0x18,0x93,0x10,0x9b,0x18,0x9a,0x01,0x2b,0x1a,0x44,0x0a,0x92,0x40,0xf3,0xae,0x85, + 0x0a,0x9b,0x14,0x9a,0x13,0x44,0x0a,0x93,0x00,0x23,0x2b,0xf4,0x80,0x66,0x0e,0x93, + 0x11,0x93,0x0f,0x93,0x0a,0x9b,0x46,0xf4,0x80,0x72,0x06,0x92,0x23,0xea,0xe3,0x7a, + 0x1b,0x9b,0x00,0x2b,0x40,0xf0,0xd8,0x82,0x9d,0xf8,0x7b,0x20,0x07,0x93,0xff,0xf7, + 0x10,0xba,0x06,0x9b,0x59,0x06,0x40,0xf1,0x98,0x81,0x0c,0x9b,0x53,0xf8,0x04,0x2b, + 0x0c,0x93,0x0f,0xfa,0x82,0xfa,0x4f,0xea,0xea,0x7b,0x52,0x46,0x5b,0x46,0xff,0xf7, + 0x53,0xba,0x0c,0x9b,0x53,0xf8,0x04,0x2b,0x0c,0x93,0x92,0x46,0x4f,0xf0,0x00,0x0b, + 0xff,0xf7,0x4d,0xbb,0xbb,0xf1,0x00,0x0f,0x08,0xbf,0xba,0xf1,0x0a,0x0f,0x06,0x9d, + 0xff,0xf4,0x0a,0xad,0x05,0xf4,0x80,0x66,0x00,0x23,0x06,0x95,0xcd,0xf8,0x28,0x80, + 0x17,0x9d,0xa0,0x46,0x52,0xaf,0x34,0x46,0x1e,0x46,0x09,0xe0,0x04,0xf0,0xf7,0xfb, + 0xbb,0xf1,0x00,0x0f,0x08,0xbf,0xba,0xf1,0x0a,0x0f,0x1f,0xd3,0x82,0x46,0x8b,0x46, + 0x0a,0x22,0x00,0x23,0x50,0x46,0x59,0x46,0x04,0xf0,0xe9,0xfb,0x94,0x46,0x0c,0xf1, + 0x30,0x0c,0x07,0xf8,0x01,0xcc,0x50,0x46,0x59,0x46,0x0a,0x22,0x00,0x23,0x01,0x36, + 0x01,0x3f,0x00,0x2c,0xe2,0xd0,0x95,0xf8,0x00,0xc0,0x66,0x45,0xde,0xd1,0xff,0x2e, + 0xdc,0xd0,0x9b,0x45,0x08,0xbf,0x92,0x45,0x80,0xf0,0x91,0x82,0x52,0xab,0xdb,0x1b, + 0x44,0x46,0x17,0x95,0xdd,0xf8,0x28,0x80,0x10,0x96,0x0a,0x93,0xff,0xf7,0xe2,0xba, + 0x13,0x4b,0x0d,0x96,0x16,0x93,0x06,0x9b,0x9f,0x06,0x65,0xd5,0x0c,0x9b,0x07,0x33, + 0x23,0xf0,0x07,0x03,0xf3,0xe8,0x02,0xab,0x0c,0x93,0x06,0x9a,0xd0,0x07,0x0a,0xd5, + 0x5a,0xea,0x0b,0x03,0x07,0xd0,0x30,0x23,0x42,0xf0,0x02,0x02,0x8d,0xf8,0x7d,0x40, + 0x06,0x92,0x8d,0xf8,0x7c,0x30,0x06,0x9b,0x23,0xf4,0x80,0x65,0x02,0x23,0xff,0xf7, + 0x21,0xba,0x06,0x9d,0x0d,0x96,0xff,0xf7,0x12,0xba,0x80,0x37,0x01,0x10,0x50,0x37, + 0x01,0x10,0x67,0x66,0x66,0x66,0x0d,0x96,0xff,0xf7,0xce,0xba,0xac,0x4b,0x0d,0x96, + 0x16,0x93,0xd0,0xe7,0x18,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46,0x03,0xf0,0x6f,0xfc, + 0x00,0x28,0x7f,0xf4,0x0f,0xac,0x28,0x9d,0x0d,0xf1,0xa4,0x08,0xff,0xf7,0xe6,0xb8, + 0x18,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46,0x03,0xf0,0x61,0xfc,0x00,0x28,0x7f,0xf4, + 0x01,0xac,0x28,0x9d,0x0d,0xf1,0xa4,0x08,0xff,0xf7,0x43,0xbb,0x43,0xf4,0x00,0x73, + 0x74,0x78,0x06,0x93,0x01,0x36,0xfe,0xf7,0xb1,0xbf,0x43,0xf0,0x20,0x03,0x74,0x78, + 0x06,0x93,0x01,0x36,0xfe,0xf7,0xaa,0xbf,0x07,0x9b,0x0e,0x97,0x06,0x2b,0x28,0xbf, + 0x06,0x23,0x07,0x97,0x11,0x97,0x0f,0x97,0x0b,0x97,0x3a,0x46,0x9a,0x46,0x90,0x4f, + 0x0c,0x95,0x0a,0x93,0xff,0xf7,0x45,0xb9,0x06,0x9b,0xde,0x06,0x3e,0xd5,0x0c,0x9b, + 0x53,0xf8,0x04,0x2b,0x0c,0x93,0x92,0x46,0x4f,0xf0,0x00,0x0b,0x95,0xe7,0x18,0xee, + 0x10,0x1a,0x26,0xaa,0x48,0x46,0x03,0xf0,0x2a,0xfc,0x00,0x28,0x7f,0xf4,0xca,0xab, + 0xdd,0xe9,0x27,0x45,0x0d,0xf1,0xa4,0x08,0x03,0xe4,0x18,0xee,0x10,0x1a,0x26,0xaa, + 0x48,0x46,0x03,0xf0,0x1c,0xfc,0x00,0x28,0x7f,0xf4,0xbc,0xab,0xdd,0xe9,0x27,0x45, + 0x0d,0xf1,0xa4,0x08,0x02,0xe4,0xdb,0xf8,0x58,0x00,0x02,0xf0,0xdc,0xf9,0xbb,0xf8, + 0x0c,0x30,0x69,0xe5,0x18,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46,0x1b,0x93,0x03,0xf0, + 0x06,0xfc,0x00,0x28,0x7f,0xf4,0xa6,0xab,0x9d,0xf8,0x7b,0x20,0x28,0x9d,0x1b,0x9b, + 0x0d,0xf1,0xa4,0x08,0xff,0xf7,0x57,0xb8,0xa3,0x46,0x46,0xe5,0x06,0x9b,0x5d,0x06, + 0x6e,0xd5,0x0c,0x9b,0x53,0xf8,0x04,0x2b,0x0c,0x93,0x1f,0xfa,0x82,0xfa,0x4f,0xf0, + 0x00,0x0b,0x52,0xe7,0x18,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46,0x03,0xf0,0xe7,0xfb, + 0x00,0x28,0x7f,0xf4,0x87,0xab,0x28,0x9d,0x0d,0xf1,0xa4,0x08,0xff,0xf7,0xb4,0xba, + 0xbb,0x46,0x2a,0xe5,0xbb,0x46,0x01,0x33,0x25,0x44,0x07,0x2b,0xc8,0xf8,0x00,0xb0, + 0xcd,0xe9,0x27,0x35,0xc8,0xf8,0x04,0x40,0x7f,0xf7,0x67,0xa8,0xff,0xf7,0x92,0xbb, + 0x01,0x2b,0x06,0x9d,0x7f,0xf4,0xee,0xa9,0xff,0xf7,0xee,0xbb,0x0c,0x9b,0x08,0x99, + 0x53,0xf8,0x04,0x2b,0x11,0x60,0x0c,0x93,0xff,0xf7,0x76,0xb8,0x10,0x2c,0x27,0x9b, + 0xdf,0xf8,0x44,0xb1,0x64,0xdd,0x2a,0x46,0x10,0x26,0x5d,0x46,0x18,0xee,0x10,0xba, + 0x04,0xe0,0x08,0xf1,0x08,0x08,0x10,0x3c,0x10,0x2c,0x57,0xdd,0x01,0x33,0x10,0x32, + 0x07,0x2b,0xcd,0xe9,0x27,0x32,0xc8,0xe9,0x00,0x56,0xf2,0xdd,0x26,0xaa,0x59,0x46, + 0x48,0x46,0x03,0xf0,0xa4,0xfb,0x00,0x28,0x7f,0xf4,0xef,0xac,0xdd,0xe9,0x27,0x32, + 0x0d,0xf1,0xa4,0x08,0xe7,0xe7,0x38,0x46,0xfe,0xf7,0x15,0xfe,0x33,0x46,0x07,0x96, + 0x02,0x46,0x0a,0x90,0xff,0xf7,0xd7,0xb8,0xdd,0xf8,0x1c,0xa0,0x01,0x34,0x35,0x44, + 0x07,0x2c,0xcd,0xe9,0x27,0x45,0xc8,0xe9,0x00,0xb6,0x7f,0xf7,0x8e,0xab,0xfc,0xe4, + 0x06,0x9b,0x13,0xf4,0x00,0x7f,0x0c,0x9b,0x53,0xf8,0x04,0x2b,0x0c,0x93,0x14,0xbf, + 0x5f,0xfa,0x82,0xfa,0x92,0x46,0x4f,0xf0,0x00,0x0b,0xde,0xe6,0x06,0x9b,0x13,0xf4, + 0x00,0x7f,0x0c,0x9b,0x53,0xf8,0x04,0x2b,0x0c,0x93,0x14,0xbf,0x5f,0xfa,0x82,0xfa, + 0x92,0x46,0x4f,0xf0,0x00,0x0b,0xff,0xf7,0xca,0xb9,0x06,0x9b,0x13,0xf4,0x00,0x7f, + 0x0c,0x9b,0x53,0xf8,0x04,0x2b,0x3f,0xf4,0x69,0xa9,0x4f,0xfa,0x82,0xfa,0x4f,0xea, + 0xea,0x7b,0x0c,0x93,0x52,0x46,0x5b,0x46,0xff,0xf7,0xb6,0xb8,0xab,0x46,0x15,0x46, + 0x01,0x33,0x25,0x44,0x07,0x2b,0xcd,0xe9,0x27,0x35,0xc8,0xf8,0x00,0xb0,0xc8,0xf8, + 0x04,0x40,0x00,0xf3,0xe4,0x80,0x08,0xf1,0x08,0x08,0x33,0xe4,0x18,0xee,0x10,0x1a, + 0x48,0x46,0x26,0xaa,0x03,0xf0,0x43,0xfb,0x00,0x28,0x3f,0xf4,0x00,0xa8,0x91,0xe4, + 0x06,0x9b,0x34,0x78,0x43,0xf4,0x80,0x63,0x06,0x93,0xfe,0xf7,0x97,0xbe,0x10,0x9a, + 0xbc,0x18,0xa4,0xeb,0x0b,0x04,0xd3,0x1a,0x9c,0x42,0xa8,0xbf,0x1c,0x46,0x50,0xe4, + 0x5f,0xfa,0x81,0xfa,0x4f,0xf0,0x00,0x0b,0xff,0xf7,0xc4,0xb8,0x0c,0x9b,0x08,0x99, + 0x53,0xf8,0x04,0x2b,0x0c,0x93,0x11,0x80,0xfe,0xf7,0xd6,0xbf,0x00,0xbf,0x64,0x37, + 0x01,0x10,0x78,0x37,0x01,0x10,0x94,0x37,0x01,0x10,0x30,0x23,0x8d,0xf8,0x7c,0x30, + 0x58,0x23,0x8d,0xf8,0x7d,0x30,0x06,0x9b,0x43,0xf0,0x02,0x05,0x07,0x9b,0x63,0x2b, + 0x00,0xf3,0xca,0x82,0x00,0x23,0x0b,0x93,0x39,0xaf,0xdd,0xe9,0x12,0x01,0x06,0x9a, + 0x06,0x95,0x42,0xf4,0x81,0x72,0x24,0xf0,0x20,0x06,0x00,0x29,0x0e,0x92,0x0a,0x96, + 0xc0,0xf2,0xa8,0x81,0x00,0x23,0x41,0xec,0x1a,0x0b,0x1b,0x93,0x61,0x2c,0x00,0xf0, + 0x08,0x83,0x41,0x2c,0x7f,0xf4,0x50,0xad,0x20,0xaa,0x51,0xec,0x1a,0x0b,0x03,0xf0, + 0xee,0xf9,0x00,0x22,0x4f,0xf0,0x7f,0x53,0x03,0xf0,0x31,0xff,0x00,0x22,0x00,0x23, + 0x82,0x46,0x8b,0x46,0x04,0xf0,0x93,0xf9,0x08,0xb1,0x01,0x23,0x20,0x93,0xb7,0x4b, + 0x0f,0x93,0x07,0x9b,0x1d,0x97,0x3e,0x46,0x08,0xee,0x90,0x9a,0x0f,0x9f,0x1c,0x94, + 0x5d,0x1e,0xcd,0xf8,0x44,0x80,0x03,0xe0,0x04,0xf0,0x81,0xf9,0x01,0x3d,0x08,0xbb, + 0xb0,0x4b,0x00,0x22,0x50,0x46,0x59,0x46,0x03,0xf0,0x11,0xff,0x89,0x46,0x80,0x46, + 0x04,0xf0,0xbd,0xf9,0x04,0x46,0x03,0xf0,0xa0,0xfe,0x02,0x46,0x0b,0x46,0x40,0x46, + 0x49,0x46,0x03,0xf0,0x4c,0xfd,0x17,0xf8,0x04,0xc0,0xb5,0xf1,0xff,0x3f,0xb0,0x46, + 0x82,0x46,0x06,0xf8,0x01,0xcb,0x8b,0x46,0x4f,0xf0,0x00,0x02,0x4f,0xf0,0x00,0x03, + 0xa9,0x46,0xd9,0xd1,0xa0,0x4b,0xcd,0xf8,0x40,0x80,0x00,0x22,0x50,0x46,0x59,0x46, + 0xdd,0xf8,0x44,0x80,0x1d,0x9f,0x11,0x94,0x4d,0x46,0x1c,0x9c,0x18,0xee,0x90,0x9a, + 0x04,0xf0,0x75,0xf9,0x00,0x28,0x40,0xf0,0x61,0x82,0x96,0x4b,0x50,0x46,0x59,0x46, + 0x00,0x22,0x04,0xf0,0x44,0xf9,0x18,0xb1,0x11,0x9b,0xd9,0x07,0x00,0xf1,0x56,0x82, + 0x00,0x2d,0x2b,0x46,0x06,0xdb,0x01,0x33,0x33,0x44,0x30,0x22,0x06,0xf8,0x01,0x2b, + 0xb3,0x42,0xfb,0xd1,0xf3,0x1b,0x10,0x93,0x0e,0x9b,0xdd,0xf8,0x18,0xb0,0x06,0x93, + 0x02,0xe5,0x18,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46,0x03,0xf0,0x78,0xfa,0x00,0x28, + 0x7f,0xf4,0x18,0xaa,0xdd,0xe9,0x27,0x35,0x20,0x9a,0x0d,0xf1,0xa4,0x08,0xff,0xf7, + 0x24,0xba,0xdb,0xf8,0x58,0x00,0x02,0xf0,0x36,0xf8,0xfe,0xf7,0x6d,0xbe,0x18,0xee, + 0x10,0x1a,0x26,0xaa,0x48,0x46,0x03,0xf0,0x62,0xfa,0x00,0x28,0x7f,0xf4,0x02,0xaa, + 0x28,0x9d,0x0d,0xf1,0xa4,0x08,0xff,0xf7,0x45,0xbb,0x20,0x9b,0x0f,0x93,0xda,0x1c, + 0x02,0xdb,0x07,0x9a,0x93,0x42,0x04,0xdd,0x02,0x3c,0x24,0xf0,0x20,0x03,0x0a,0x93, + 0xdc,0xe4,0xdd,0xe9,0x0f,0x31,0x8b,0x42,0xc0,0xf2,0x8b,0x81,0x1b,0xf0,0x01,0x0f, + 0x00,0xf0,0xbf,0x82,0x14,0x9a,0x13,0x44,0x0a,0x93,0x1b,0xf4,0x80,0x6f,0x03,0xd0, + 0x0f,0x9b,0x00,0x2b,0x00,0xf3,0x7a,0x82,0x0a,0x9b,0x67,0x24,0x23,0xea,0xe3,0x7a, + 0x00,0x23,0x0e,0x93,0x11,0x93,0x23,0xe5,0x2d,0x22,0x00,0x23,0x8d,0xf8,0x7b,0x20, + 0x07,0x93,0xfe,0xf7,0x39,0xbf,0x24,0x9b,0xab,0x42,0xbf,0xf4,0xab,0xac,0x30,0x21, + 0x5a,0x1c,0x24,0x92,0x19,0x70,0x24,0x9b,0x9d,0x42,0xf9,0xd8,0xa2,0xe4,0x1a,0x9b, + 0x19,0x99,0xff,0x1a,0x1a,0x46,0x38,0x46,0x03,0xf0,0xa9,0xf9,0x6b,0x78,0x03,0xb1, + 0x01,0x35,0x0a,0x22,0x00,0x23,0x50,0x46,0x59,0x46,0x00,0x26,0x04,0xf0,0x2f,0xf9, + 0x3c,0xe5,0x10,0x9b,0xcd,0xf8,0x28,0xa0,0x5e,0x46,0xdd,0xf8,0x44,0xb0,0x0f,0x97, + 0xfb,0x18,0x07,0x93,0x42,0x46,0xdd,0xf8,0x68,0xa0,0x17,0x9f,0x0e,0x9b,0x18,0xee, + 0x10,0x8a,0x28,0x46,0xbb,0xf1,0x00,0x0f,0x2e,0xd0,0x00,0x2b,0x6b,0xd1,0x01,0x3f, + 0x0b,0xf1,0xff,0x3b,0x27,0x9b,0x19,0x99,0x11,0x60,0x01,0x33,0x50,0x44,0x07,0x2b, + 0x28,0x90,0xc2,0xf8,0x04,0xa0,0x27,0x93,0x61,0xdc,0x08,0x32,0x07,0x99,0x3b,0x78, + 0x8c,0x1b,0x9c,0x42,0xa8,0xbf,0x1c,0x46,0x00,0x2c,0x0a,0xdd,0x27,0x9b,0x16,0x60, + 0x01,0x33,0x20,0x44,0x07,0x2b,0x28,0x90,0x54,0x60,0x27,0x93,0x58,0xdc,0x3b,0x78, + 0x08,0x32,0x00,0x2c,0xac,0xbf,0x1c,0x1b,0x1c,0x46,0x00,0x2c,0x14,0xdc,0x1e,0x44, + 0x0e,0x9b,0xbb,0xf1,0x00,0x0f,0xd0,0xd1,0x00,0x2b,0x3c,0xd1,0x17,0x97,0xdd,0xe9, + 0x0f,0x73,0xfb,0x18,0x9e,0x42,0xb3,0x46,0xdd,0xf8,0x28,0xa0,0x90,0x46,0x05,0x46, + 0x28,0xbf,0x9b,0x46,0xff,0xf7,0xad,0xba,0x10,0x2c,0x27,0x99,0x1e,0xdd,0x10,0x25, + 0x0b,0x46,0x04,0xe0,0x10,0x3c,0x10,0x2c,0x02,0xf1,0x08,0x02,0x15,0xdd,0x01,0x33, + 0x22,0x49,0x10,0x30,0x07,0x2b,0xcd,0xe9,0x27,0x30,0xc2,0xe9,0x00,0x15,0xf1,0xdd, + 0x26,0xaa,0x41,0x46,0x48,0x46,0x03,0xf0,0xa2,0xf9,0x00,0x28,0x46,0xd1,0x10,0x3c, + 0x10,0x2c,0xdd,0xe9,0x27,0x30,0x29,0xaa,0xe9,0xdc,0x19,0x46,0x17,0x4b,0x13,0x60, + 0x4b,0x1c,0x20,0x44,0x07,0x2b,0xcd,0xe9,0x27,0x30,0x54,0x60,0x53,0xdc,0x3b,0x78, + 0x08,0x32,0x1e,0x44,0xbc,0xe7,0x0e,0x9b,0x01,0x3b,0x0e,0x93,0x92,0xe7,0x26,0xaa, + 0x41,0x46,0x48,0x46,0x03,0xf0,0x83,0xf9,0x40,0xbb,0x28,0x98,0x29,0xaa,0x95,0xe7, + 0x26,0xaa,0x41,0x46,0x48,0x46,0x03,0xf0,0x7a,0xf9,0xf8,0xb9,0x3b,0x78,0x28,0x98, + 0x29,0xaa,0x9e,0xe7,0x2d,0x22,0x8d,0xf8,0x7b,0x20,0xfe,0xf7,0x67,0xbe,0x64,0x37, + 0x01,0x10,0x00,0x00,0x30,0x40,0x00,0x00,0xe0,0x3f,0x94,0x37,0x01,0x10,0x18,0xee, + 0x10,0x1a,0x26,0xaa,0x48,0x46,0x03,0xf0,0x62,0xf9,0x00,0x28,0x7f,0xf4,0x02,0xa9, + 0x20,0x9a,0x28,0x9d,0x0d,0xf1,0xa4,0x08,0xff,0xf7,0x5c,0xbb,0xc3,0x46,0xff,0xf7, + 0xa4,0xba,0x0b,0x90,0xdd,0xe9,0x12,0x12,0x02,0xf1,0x00,0x43,0x0a,0xee,0x90,0x3a, + 0x2d,0x23,0x0a,0xee,0x10,0x1a,0x1b,0x93,0x50,0xe6,0x18,0xee,0x10,0x1a,0x26,0xaa, + 0x48,0x46,0x03,0xf0,0x44,0xf9,0x00,0x28,0x7f,0xf4,0xe4,0xa8,0x28,0x9d,0x0d,0xf1, + 0xa4,0x08,0xff,0xf7,0x1f,0xba,0x26,0xaa,0x41,0x46,0x48,0x46,0x03,0xf0,0x37,0xf9, + 0x00,0x28,0xdb,0xd1,0x3b,0x78,0x28,0x98,0x29,0xaa,0x1e,0x44,0x60,0xe7,0x07,0x9d, + 0x01,0x95,0x24,0xa8,0x21,0xa9,0x20,0xaa,0x02,0x23,0xcd,0xe9,0x03,0x10,0x02,0x92, + 0x00,0x93,0x48,0x46,0x53,0xec,0x1a,0x2b,0x00,0xf0,0x45,0xfb,0x47,0x2e,0x07,0x46, + 0x2a,0xd1,0x06,0x9b,0xda,0x07,0x00,0xf1,0x8f,0x80,0x0e,0x9a,0x06,0x92,0x47,0x22, + 0x9b,0x46,0x0a,0x92,0x24,0x9b,0xff,0xf7,0x95,0xbb,0x18,0xee,0x10,0x1a,0x26,0xaa, + 0x48,0x46,0x03,0xf0,0x0c,0xf9,0x00,0x28,0x7f,0xf4,0xac,0xa8,0x20,0x9b,0x28,0x9d, + 0x0d,0xf1,0xa4,0x08,0xff,0xf7,0x0d,0xba,0x07,0x9d,0x01,0x95,0x24,0xa8,0x21,0xa9, + 0x20,0xaa,0x03,0x23,0xcd,0xe9,0x03,0x10,0x02,0x92,0x00,0x93,0x48,0x46,0x53,0xec, + 0x1a,0x2b,0x00,0xf0,0x18,0xfb,0x07,0x46,0x07,0x9b,0x46,0x2e,0x07,0xeb,0x03,0x05, + 0x7f,0xf4,0x62,0xab,0x3b,0x78,0x30,0x2b,0x00,0xf0,0x6a,0x81,0x20,0x9b,0xdd,0xf8, + 0x18,0xb0,0x1d,0x44,0x0e,0x9b,0x06,0x93,0xff,0xf7,0x5a,0xbb,0xdd,0xf8,0x1c,0xa0, + 0x9d,0xf8,0x7b,0x20,0xcd,0xf8,0x28,0xa0,0x07,0x90,0x0c,0x95,0x0e,0x90,0x11,0x90, + 0x0f,0x90,0xfe,0xf7,0xde,0xbd,0x20,0x9a,0x0f,0x92,0x00,0x2a,0x40,0xf3,0x6f,0x81, + 0x07,0x99,0x0b,0xf0,0x01,0x03,0x0b,0x43,0x40,0xf0,0x2f,0x81,0x0f,0x9b,0x0a,0x93, + 0x66,0x24,0x1b,0xf4,0x80,0x6f,0x40,0xf0,0x02,0x81,0x0a,0x9b,0x23,0xea,0xe3,0x7a, + 0x86,0xe6,0x10,0x9b,0x14,0x9a,0x9a,0x18,0x0f,0x9b,0x0a,0x92,0x00,0x2b,0x40,0xf3, + 0x4b,0x81,0x67,0x24,0xed,0xe7,0x18,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46,0x03,0xf0, + 0xae,0xf8,0x00,0x28,0x7f,0xf4,0x4e,0xa8,0x20,0x9b,0x10,0x9a,0x28,0x9d,0xd3,0x1a, + 0x0d,0xf1,0xa4,0x08,0xff,0xf7,0xc5,0xb9,0x00,0x23,0x07,0x93,0xfe,0xf7,0xff,0xbb, + 0xd3,0x46,0xff,0xf7,0xea,0xb9,0xdb,0xf8,0x64,0x30,0xd8,0x07,0x07,0xd4,0xbb,0xf8, + 0x0c,0x30,0x99,0x05,0x03,0xd4,0xdb,0xf8,0x58,0x00,0x01,0xf0,0x5c,0xfe,0x4f,0xf0, + 0xff,0x33,0x08,0x93,0xff,0xf7,0xeb,0xb9,0xdd,0xe9,0x06,0xb3,0xfd,0x18,0x0e,0x9b, + 0x06,0x93,0x47,0x23,0x0a,0x93,0xff,0xf7,0xfb,0xba,0x54,0x42,0x10,0x32,0xdf,0xf8, + 0xac,0xb2,0x21,0xda,0x2a,0x46,0x10,0x26,0x5d,0x46,0x18,0xee,0x10,0xba,0x04,0xe0, + 0x08,0xf1,0x08,0x08,0x10,0x3c,0x10,0x2c,0x14,0xdd,0x01,0x33,0x10,0x32,0x07,0x2b, + 0xcd,0xe9,0x27,0x32,0xc8,0xe9,0x00,0x56,0xf2,0xdd,0x26,0xaa,0x59,0x46,0x48,0x46, + 0x03,0xf0,0x65,0xf8,0x00,0x28,0x7f,0xf4,0xb0,0xa9,0xdd,0xe9,0x27,0x32,0x0d,0xf1, + 0xa4,0x08,0xe7,0xe7,0xab,0x46,0x15,0x46,0x01,0x33,0x25,0x44,0x07,0x2b,0xcd,0xe9, + 0x27,0x35,0xc8,0xe9,0x00,0xb4,0x7f,0xf7,0x6d,0xaa,0x18,0xee,0x10,0x1a,0x26,0xaa, + 0x48,0x46,0x03,0xf0,0x4c,0xf8,0x00,0x28,0x7e,0xf4,0xec,0xaf,0xdd,0xe9,0x27,0x35, + 0x0d,0xf1,0xa4,0x08,0xfe,0xf7,0xfc,0xbf,0x59,0x1c,0x48,0x46,0x01,0xf0,0x87,0xfe, + 0x07,0x46,0x00,0x28,0x00,0xf0,0xff,0x80,0x0b,0x90,0x2e,0xe5,0x10,0x9b,0x24,0x93, + 0x0f,0x9b,0x16,0xf8,0x01,0x2c,0xd9,0x7b,0x8a,0x42,0x33,0x46,0x09,0xd1,0x30,0x20, + 0x03,0xf8,0x01,0x0c,0x24,0x9b,0x5a,0x1e,0x24,0x92,0x13,0xf8,0x01,0x2c,0x91,0x42, + 0xf6,0xd0,0x39,0x2a,0x0b,0xbf,0x0f,0x9a,0x01,0x32,0x92,0x7a,0xd2,0xb2,0x03,0xf8, + 0x01,0x2c,0x97,0xe5,0x30,0x23,0x8d,0xf8,0x7c,0x30,0x78,0x23,0x01,0xe5,0x00,0x2b, + 0x1a,0x46,0x08,0xbf,0x01,0x22,0x13,0x9b,0x07,0x92,0x06,0x9a,0x00,0x2b,0x42,0xf4, + 0x80,0x72,0x0e,0x92,0xff,0xf6,0xb5,0xae,0x07,0x9e,0x01,0x96,0x24,0xad,0x21,0xa8, + 0xcd,0xe9,0x03,0x05,0xdd,0xe9,0x12,0x56,0x20,0xaa,0x02,0x23,0x02,0x92,0x00,0x93, + 0x2a,0x46,0x33,0x46,0x48,0x46,0x8a,0x46,0x0b,0x91,0x00,0xf0,0x1c,0xfa,0x46,0xec, + 0x1a,0x5b,0x07,0x46,0xcd,0xf8,0x6c,0xa0,0xd3,0xe6,0x06,0x23,0x07,0x93,0xff,0xf7, + 0x3c,0xba,0x20,0xaa,0x51,0xec,0x1a,0x0b,0x02,0xf0,0xe9,0xfe,0x00,0x22,0x4f,0xf0, + 0x7f,0x53,0x03,0xf0,0x2c,0xfc,0x00,0x22,0x00,0x23,0x82,0x46,0x8b,0x46,0x03,0xf0, + 0x8e,0xfe,0x08,0xb1,0x01,0x23,0x20,0x93,0x56,0x4b,0x0f,0x93,0xf9,0xe4,0x00,0x29, + 0x72,0xd1,0x30,0x22,0x8d,0xf8,0x8a,0x20,0x0d,0xf1,0x8b,0x02,0x30,0x33,0x02,0xf8, + 0x01,0x3b,0x22,0xab,0xd3,0x1a,0x18,0x93,0xff,0xf7,0xa3,0xba,0x04,0xf1,0x0f,0x02, + 0xd2,0xb2,0x01,0x21,0xff,0xf7,0x5b,0xba,0x0b,0x93,0x6b,0xe6,0x67,0x24,0x17,0x99, + 0x0b,0x78,0xff,0x2b,0x00,0xf0,0x89,0x80,0x00,0x25,0x0f,0x9a,0x28,0x46,0x03,0xe0, + 0x01,0x30,0x01,0x31,0xff,0x2b,0x08,0xd0,0x93,0x42,0x06,0xda,0xd2,0x1a,0x4b,0x78, + 0x00,0x2b,0xf5,0xd1,0x0b,0x78,0x01,0x35,0xf4,0xe7,0x17,0x91,0x0f,0x92,0x11,0x90, + 0x0e,0x95,0x0e,0x9a,0x11,0x9b,0x0a,0x99,0x13,0x44,0x1a,0x9a,0x02,0xfb,0x03,0x13, + 0x0a,0x93,0x23,0xea,0xe3,0x7a,0xff,0xf7,0x8b,0xba,0x14,0x9b,0x02,0xeb,0x03,0x0a, + 0x51,0x44,0x0a,0x91,0x66,0x24,0xcc,0xe6,0x13,0x9b,0x32,0x4f,0x00,0x2b,0xb4,0xbf, + 0x2d,0x22,0x9d,0xf8,0x7b,0x20,0x30,0x4b,0xb8,0xbf,0x8d,0xf8,0x7b,0x20,0xfe,0xf7, + 0x7f,0xbc,0x0f,0x9b,0x0a,0x93,0x40,0xe5,0x18,0xee,0x10,0xba,0xff,0xf7,0xd2,0xb8, + 0x51,0xec,0x1a,0x0b,0x00,0x22,0x00,0x23,0x03,0xf0,0x29,0xfe,0x00,0x28,0x7f,0xf4, + 0x8d,0xae,0x07,0x9b,0xc3,0xf1,0x01,0x03,0x20,0x93,0x88,0xe6,0x1b,0xf0,0x01,0x0f, + 0x3f,0xf4,0x52,0xaa,0xff,0xf7,0x4c,0xba,0xc3,0xf1,0x01,0x03,0x1a,0x44,0x0a,0x92, + 0x22,0xea,0xe2,0x7a,0x67,0x24,0x2b,0xe5,0x0d,0xf1,0x8a,0x02,0x8e,0xe7,0x07,0x9b, + 0x0b,0xf0,0x01,0x06,0x56,0xea,0x03,0x02,0x05,0xd1,0x4f,0xf0,0x01,0x0a,0xcd,0xf8, + 0x28,0xa0,0x66,0x24,0x1c,0xe5,0x14,0x9a,0x02,0xf1,0x01,0x0a,0x53,0x44,0x0a,0x93, + 0x23,0xea,0xe3,0x7a,0x66,0x24,0x13,0xe5,0x0c,0x9b,0x74,0x78,0x53,0xf8,0x04,0x1b, + 0x0c,0x93,0x16,0x46,0x41,0xea,0xe1,0x72,0x07,0x92,0xfe,0xf7,0x9f,0xba,0x02,0x23, + 0x18,0x93,0xff,0xf7,0x16,0xba,0x18,0xee,0x10,0xba,0xbb,0xf8,0x0c,0x30,0x43,0xf0, + 0x40,0x03,0xab,0xf8,0x0c,0x30,0xff,0xf7,0x85,0xb8,0x00,0x23,0x0e,0x93,0x11,0x93, + 0x87,0xe7,0x50,0x37,0x01,0x10,0x48,0x37,0x01,0x10,0x4c,0x37,0x01,0x10,0x94,0x37, + 0x01,0x10,0xf0,0xb5,0x0c,0x46,0x89,0x89,0x65,0x6e,0xb4,0xf8,0x0e,0xc0,0xe7,0x69, + 0xad,0xf2,0x74,0x4d,0x21,0xf0,0x02,0x01,0x06,0x46,0xad,0xf8,0x14,0x10,0x00,0x20, + 0x61,0x6a,0x1b,0x95,0x0b,0x91,0x1c,0xad,0x4f,0xf4,0x80,0x61,0x08,0x90,0x18,0xa8, + 0xcd,0xe9,0x00,0x32,0xad,0xf8,0x16,0xc0,0x02,0x95,0x06,0x95,0x04,0x91,0x07,0x91, + 0x09,0x97,0x01,0xf0,0xca,0xfc,0xdd,0xe9,0x00,0x32,0x02,0xa9,0x30,0x46,0xfe,0xf7, + 0xea,0xf9,0x05,0x1e,0x07,0xdb,0x30,0x46,0x02,0xa9,0x01,0xf0,0x2a,0xf9,0x00,0x28, + 0x18,0xbf,0x4f,0xf0,0xff,0x35,0xbd,0xf8,0x14,0x30,0x5b,0x06,0x03,0xd5,0xa3,0x89, + 0x43,0xf0,0x40,0x03,0xa3,0x81,0x18,0x98,0x01,0xf0,0xb1,0xfc,0x28,0x46,0x0d,0xf2, + 0x74,0x4d,0xf0,0xbd,0x00,0xbf,0x38,0xb5,0x32,0x4b,0x1b,0x68,0x05,0x46,0x0c,0x46, + 0x13,0xb1,0x9a,0x6b,0x00,0x2a,0x3c,0xd0,0xb4,0xf9,0x0c,0x30,0x18,0x07,0x9a,0xb2, + 0x0c,0xd5,0x21,0x69,0xa9,0xb1,0x12,0xf0,0x01,0x00,0x22,0xd0,0x60,0x69,0x00,0x25, + 0x40,0x42,0xa0,0x61,0xa5,0x60,0x11,0xb3,0x00,0x20,0x38,0xbd,0xd1,0x06,0x40,0xd5, + 0x52,0x07,0x2a,0xd4,0x21,0x69,0x43,0xf0,0x08,0x03,0xa3,0x81,0x9a,0xb2,0x00,0x29, + 0xe9,0xd1,0x02,0xf4,0x20,0x70,0xb0,0xf5,0x00,0x7f,0xe4,0xd0,0x28,0x46,0x21,0x46, + 0x01,0xf0,0xb1,0xfc,0xb4,0xf9,0x0c,0x30,0x21,0x69,0x9a,0xb2,0x12,0xf0,0x01,0x00, + 0xdc,0xd1,0x95,0x07,0x58,0xbf,0x60,0x69,0xa0,0x60,0x00,0x29,0xdc,0xd1,0x12,0x06, + 0x58,0xbf,0x08,0x46,0xd9,0xd5,0x43,0xf0,0x40,0x03,0xa3,0x81,0x4f,0xf0,0xff,0x30, + 0x38,0xbd,0x18,0x46,0x01,0xf0,0x29,0xf9,0xbe,0xe7,0x21,0x6b,0x51,0xb1,0x04,0xf1, + 0x40,0x02,0x91,0x42,0x04,0xd0,0x28,0x46,0x01,0xf0,0xbb,0xf9,0xb4,0xf9,0x0c,0x30, + 0x00,0x22,0x22,0x63,0x21,0x69,0x21,0x60,0x00,0x22,0x62,0x60,0x23,0xf0,0x24,0x03, + 0xc1,0xe7,0x43,0xf0,0x40,0x03,0x09,0x22,0x2a,0x60,0x4f,0xf0,0xff,0x30,0xa3,0x81, + 0x38,0xbd,0x0c,0x00,0x00,0x20,0x02,0x4b,0x13,0xb1,0x02,0x48,0x00,0xf0,0x05,0xb8, + 0x70,0x47,0x00,0x00,0x00,0x00,0x51,0x0a,0x01,0x10,0x00,0x23,0x01,0x46,0x1a,0x46, + 0x18,0x46,0x02,0xf0,0x8e,0xbe,0x2d,0xe9,0xf0,0x4f,0x03,0x69,0x0e,0x69,0xb3,0x42, + 0x83,0xb0,0xc0,0xf2,0x82,0x80,0x01,0x3e,0x01,0xf1,0x14,0x07,0x00,0xf1,0x14,0x0a, + 0x57,0xf8,0x26,0x30,0x5a,0xf8,0x26,0x20,0x01,0x33,0x83,0x46,0xb0,0x00,0x00,0x90, + 0x9a,0x42,0x0a,0xeb,0x86,0x00,0x07,0xeb,0x86,0x09,0x01,0x90,0xb2,0xfb,0xf3,0xf8, + 0x36,0xd3,0x00,0x25,0x2a,0x46,0xbc,0x46,0x50,0x46,0x5c,0xf8,0x04,0x4b,0x03,0x68, + 0x1f,0xfa,0x84,0xfe,0x08,0xfb,0x0e,0x55,0x4f,0xea,0x15,0x4e,0x24,0x0c,0x08,0xfb, + 0x04,0xe4,0xad,0xb2,0x55,0x1b,0xa2,0xb2,0xc2,0xeb,0x13,0x42,0x15,0xfa,0x83,0xf3, + 0x02,0xeb,0x23,0x42,0x9b,0xb2,0x43,0xea,0x02,0x43,0xe1,0x45,0x40,0xf8,0x04,0x3b, + 0x4f,0xea,0x14,0x45,0x4f,0xea,0x22,0x42,0xdf,0xd2,0x00,0x9b,0x5a,0xf8,0x03,0x30, + 0x73,0xb9,0x01,0x9b,0x04,0x3b,0x9a,0x45,0x04,0xd3,0x07,0xe0,0x9a,0x45,0x06,0xf1, + 0xff,0x36,0x03,0xd2,0x53,0xf8,0x04,0x29,0x00,0x2a,0xf7,0xd0,0xcb,0xf8,0x10,0x60, + 0x58,0x46,0x02,0xf0,0x0c,0xfa,0x00,0x28,0x2b,0xdb,0x08,0xf1,0x01,0x08,0x50,0x46, + 0x00,0x23,0x57,0xf8,0x04,0x1b,0x04,0x68,0x8a,0xb2,0x9a,0x1a,0x0b,0x0c,0x12,0xfa, + 0x84,0xf2,0xc3,0xeb,0x14,0x43,0x03,0xeb,0x22,0x43,0x92,0xb2,0x42,0xea,0x03,0x42, + 0xb9,0x45,0x40,0xf8,0x04,0x2b,0x4f,0xea,0x23,0x43,0xea,0xd2,0x5a,0xf8,0x26,0x20, + 0x0a,0xeb,0x86,0x03,0x6a,0xb9,0x04,0x3b,0x9a,0x45,0x04,0xd3,0x07,0xe0,0x9a,0x45, + 0x06,0xf1,0xff,0x36,0x03,0xd2,0x53,0xf8,0x04,0x29,0x00,0x2a,0xf7,0xd0,0xcb,0xf8, + 0x10,0x60,0x40,0x46,0x03,0xb0,0xbd,0xe8,0xf0,0x8f,0x00,0x20,0x03,0xb0,0xbd,0xe8, + 0xf0,0x8f,0x00,0x00,0x00,0x00,0x2d,0xe9,0xf0,0x4f,0x2d,0xed,0x04,0x8b,0x01,0x6c, + 0x97,0xb0,0x16,0x46,0x1f,0x46,0xcd,0xe9,0x04,0x67,0x27,0x9d,0x04,0x46,0x41,0xb1, + 0x42,0x6c,0x4a,0x60,0x01,0x23,0x93,0x40,0x8b,0x60,0x01,0xf0,0xba,0xff,0x00,0x23, + 0x23,0x64,0xb7,0xf1,0x00,0x09,0xb4,0xbf,0x01,0x23,0x00,0x23,0x2b,0x60,0x79,0x4b, + 0xbc,0xbf,0x29,0xf0,0x00,0x49,0xcd,0xf8,0x14,0x90,0x33,0xea,0x09,0x03,0x00,0xf0, + 0xad,0x80,0x9d,0xed,0x04,0x7b,0x00,0x22,0x51,0xec,0x17,0x0b,0x00,0x23,0x8d,0xed, + 0x02,0x7b,0x03,0xf0,0x5c,0xfc,0x80,0x46,0x80,0xb1,0x26,0x9a,0x01,0x23,0x13,0x60, + 0x28,0x9b,0x00,0x2b,0x00,0xf0,0xdc,0x82,0x6c,0x48,0x18,0x60,0x43,0x1e,0x06,0x93, + 0x06,0x98,0x17,0xb0,0xbd,0xec,0x04,0x8b,0xbd,0xe8,0xf0,0x8f,0x14,0xaa,0x15,0xab, + 0xcd,0xe9,0x00,0x32,0x20,0x46,0xdd,0xe9,0x02,0x23,0x02,0xf0,0x42,0xfa,0x5f,0xea, + 0x19,0x55,0x82,0x46,0x40,0xf0,0x9a,0x80,0xdd,0xe9,0x14,0x85,0x45,0x44,0x05,0xf2, + 0x32,0x40,0x20,0x28,0x40,0xf3,0xb0,0x83,0xc0,0xf1,0x40,0x03,0x05,0xf2,0x12,0x40, + 0x09,0xfa,0x03,0xf9,0x26,0xfa,0x00,0xf0,0x49,0xea,0x00,0x00,0x03,0xf0,0x45,0xf9, + 0x01,0x23,0x01,0x3d,0xa1,0xf1,0xf8,0x71,0x0e,0x93,0x54,0x4b,0x00,0x22,0x02,0xf0, + 0xfe,0xff,0x4a,0xa3,0xd3,0xe9,0x00,0x23,0x03,0xf0,0xb1,0xf9,0x4a,0xa3,0xd3,0xe9, + 0x00,0x23,0x02,0xf0,0xf6,0xff,0x06,0x46,0x28,0x46,0x0f,0x46,0x03,0xf0,0x3d,0xf9, + 0x47,0xa3,0xd3,0xe9,0x00,0x23,0x03,0xf0,0xa2,0xf9,0x02,0x46,0x0b,0x46,0x30,0x46, + 0x39,0x46,0x02,0xf0,0xe6,0xff,0x06,0x46,0x0f,0x46,0x03,0xf0,0x48,0xfc,0x00,0x22, + 0x83,0x46,0x00,0x23,0x30,0x46,0x39,0x46,0x03,0xf0,0x03,0xfc,0x00,0x28,0x40,0xf0, + 0x72,0x82,0xbb,0xf1,0x16,0x0f,0x00,0xf2,0x60,0x82,0x3d,0x4b,0x03,0xeb,0xcb,0x03, + 0xd3,0xe9,0x00,0x23,0xdd,0xe9,0x02,0x01,0x03,0xf0,0xf3,0xfb,0x00,0x28,0x76,0xd0, + 0x00,0x23,0xa8,0xeb,0x05,0x05,0x0d,0x93,0x6b,0x1e,0x0b,0xf1,0xff,0x3b,0x07,0x93, + 0x00,0xf1,0x53,0x82,0x00,0x23,0x09,0x93,0xbb,0xf1,0x00,0x0f,0x6f,0xda,0x09,0x9b, + 0xcd,0xf8,0x20,0xb0,0xa3,0xeb,0x0b,0x03,0x09,0x93,0xcb,0xf1,0x00,0x03,0x0c,0x93, + 0x24,0x9b,0x09,0x2b,0x4f,0xf0,0x00,0x0b,0x6a,0xd8,0x05,0x2b,0x40,0xf3,0x42,0x83, + 0x04,0x3b,0x24,0x93,0x00,0x25,0x24,0x9b,0x02,0x3b,0x03,0x2b,0x00,0xf2,0x8e,0x86, + 0xdf,0xe8,0x13,0xf0,0x5e,0x04,0x5b,0x04,0x52,0x04,0x35,0x04,0x26,0x9a,0x42,0xf2, + 0x0f,0x73,0xc9,0xf3,0x13,0x09,0x13,0x60,0x59,0xea,0x06,0x03,0x1e,0xd1,0x28,0x9b, + 0x00,0x2b,0x00,0xf0,0x72,0x86,0x1b,0x4b,0x06,0x93,0x08,0x33,0x28,0x9a,0x06,0x98, + 0x13,0x60,0x17,0xb0,0xbd,0xec,0x04,0x8b,0xbd,0xe8,0xf0,0x8f,0xdd,0xe9,0x02,0x12, + 0xc2,0xf3,0x13,0x03,0x08,0x46,0x43,0xf0,0x7f,0x51,0xcd,0xf8,0x38,0x80,0xa5,0xf2, + 0xff,0x35,0xdd,0xf8,0x50,0x80,0x41,0xf4,0x40,0x11,0x6e,0xe7,0x28,0x9b,0x00,0x2b, + 0x40,0xf0,0xf4,0x83,0x0d,0x4b,0x06,0x93,0x3a,0xe7,0xaf,0xf3,0x00,0x80,0x61,0x43, + 0x6f,0x63,0xa7,0x87,0xd2,0x3f,0xb3,0xc8,0x60,0x8b,0x28,0x8a,0xc6,0x3f,0xfb,0x79, + 0x9f,0x50,0x13,0x44,0xd3,0x3f,0x00,0x00,0xf0,0x7f,0x81,0x37,0x01,0x10,0x00,0x00, + 0xf8,0x3f,0xe0,0x37,0x01,0x10,0xa8,0x37,0x01,0x10,0xa4,0x37,0x01,0x10,0xa8,0xeb, + 0x05,0x05,0x6b,0x1e,0x07,0x93,0x00,0xf1,0xc0,0x84,0x0d,0x90,0x09,0x90,0x07,0x9b, + 0x5b,0x44,0xcd,0xe9,0x07,0x3b,0x00,0x23,0x0c,0x93,0x24,0x9b,0x09,0x2b,0x94,0xd9, + 0x4f,0xf0,0xff,0x36,0x01,0x25,0xcd,0xe9,0x0a,0x65,0x00,0x23,0x24,0x93,0x25,0x93, + 0x00,0x21,0x61,0x64,0x0f,0x96,0x20,0x46,0x01,0xf0,0x6d,0xfe,0x0e,0x2e,0x06,0x90, + 0x20,0x64,0x00,0xf2,0xf7,0x80,0x00,0x2d,0x00,0xf0,0xf4,0x80,0x08,0x99,0x00,0x29, + 0x40,0xf3,0x65,0x84,0xc0,0x4b,0x01,0xf0,0x0f,0x02,0x03,0xeb,0xc2,0x03,0xca,0x05, + 0xd3,0xe9,0x00,0x67,0x4f,0xea,0x21,0x15,0x40,0xf1,0xfb,0x83,0xbb,0x4b,0xdd,0xe9, + 0x02,0x01,0xd3,0xe9,0x08,0x23,0x03,0xf0,0xf4,0xf9,0x41,0xec,0x18,0x0b,0x05,0xf0, + 0x0f,0x05,0x4f,0xf0,0x03,0x09,0x8d,0xb1,0xdf,0xf8,0xd0,0x82,0xeb,0x07,0x30,0x46, + 0x39,0x46,0x07,0xd5,0xd8,0xe9,0x00,0x23,0x03,0xf0,0xb9,0xf8,0x09,0xf1,0x01,0x09, + 0x06,0x46,0x0f,0x46,0x6d,0x10,0x08,0xf1,0x08,0x08,0xef,0xd1,0x3b,0x46,0x51,0xec, + 0x18,0x0b,0x32,0x46,0x03,0xf0,0xd5,0xf9,0x07,0x46,0x88,0x46,0x0d,0x9b,0x43,0xb1, + 0xa7,0x4b,0x00,0x22,0x38,0x46,0x41,0x46,0x03,0xf0,0x13,0xfb,0x00,0x28,0x40,0xf0, + 0x53,0x85,0x48,0x46,0x03,0xf0,0x31,0xf8,0x3a,0x46,0x43,0x46,0x03,0xf0,0x97,0xf8, + 0xa0,0x4b,0x00,0x22,0x02,0xf0,0xdd,0xfe,0xa1,0xf1,0x50,0x73,0xcd,0xe9,0x10,0x01, + 0x11,0x93,0x0a,0x9b,0x00,0x2b,0x00,0xf0,0xf3,0x83,0x08,0x9b,0x13,0x93,0x0a,0x9b, + 0x12,0x93,0x0b,0x9b,0x00,0x2b,0x00,0xf0,0xc6,0x84,0x12,0x9a,0x92,0x4b,0x95,0x49, + 0x03,0xeb,0xc2,0x03,0x53,0xe9,0x02,0x23,0x00,0x20,0x03,0xf0,0xa2,0xf9,0xdd,0xe9, + 0x10,0x23,0x02,0xf0,0xbc,0xfe,0x02,0x46,0x0b,0x46,0x38,0x46,0x41,0x46,0x43,0xec, + 0x18,0x2b,0x03,0xf0,0x1c,0xfb,0x05,0x46,0x02,0xf0,0xff,0xff,0x02,0x46,0x0b,0x46, + 0x38,0x46,0x41,0x46,0x02,0xf0,0xab,0xfe,0xdd,0xf8,0x18,0x90,0x30,0x35,0x06,0x46, + 0x0f,0x46,0x02,0x46,0x0b,0x46,0x09,0xf8,0x01,0x5b,0x51,0xec,0x18,0x0b,0x03,0xf0, + 0xe6,0xfa,0x00,0x28,0x40,0xf0,0x4c,0x85,0x4f,0xf0,0x00,0x08,0x09,0xee,0x10,0xaa, + 0x09,0xee,0x90,0x4a,0xcd,0xf8,0x40,0xb0,0x4c,0x46,0xc3,0x46,0xdd,0xf8,0x48,0xa0, + 0x59,0xec,0x18,0x8b,0x24,0xe0,0xd3,0x45,0x4e,0xda,0x03,0xf0,0x40,0xf8,0x76,0x4b, + 0x00,0x22,0x80,0x46,0x89,0x46,0x30,0x46,0x39,0x46,0x03,0xf0,0x38,0xf8,0x0f,0x46, + 0x06,0x46,0x03,0xf0,0xe4,0xfa,0x05,0x46,0x02,0xf0,0xc7,0xff,0x02,0x46,0x0b,0x46, + 0x30,0x46,0x39,0x46,0x02,0xf0,0x73,0xfe,0x30,0x35,0x04,0xf8,0x01,0x5b,0x42,0x46, + 0x4b,0x46,0x06,0x46,0x0f,0x46,0x03,0xf0,0x94,0xfa,0x00,0x28,0x40,0xf0,0x13,0x85, + 0x32,0x46,0x3b,0x46,0x62,0x49,0x00,0x20,0x02,0xf0,0x61,0xfe,0x42,0x46,0x4b,0x46, + 0x03,0xf0,0x87,0xfa,0x05,0x46,0x60,0x4b,0x0b,0xf1,0x01,0x0b,0x00,0x22,0x40,0x46, + 0x49,0x46,0x00,0x2d,0xc7,0xd0,0x13,0x9b,0x08,0x93,0xa1,0x46,0x19,0xee,0x10,0xaa, + 0x19,0xee,0x90,0x4a,0x06,0x9b,0x02,0xe0,0x99,0x45,0x00,0xf0,0xe3,0x84,0x4e,0x46, + 0x19,0xf8,0x01,0x2d,0x39,0x2a,0xf7,0xd0,0x01,0x32,0xd2,0xb2,0x08,0x9b,0x89,0xf8, + 0x00,0x20,0x01,0x33,0x08,0x93,0xb7,0xe1,0xdd,0xf8,0x40,0xb0,0x19,0xee,0x10,0xaa, + 0x19,0xee,0x90,0x4a,0x15,0x9b,0x00,0x2b,0xc0,0xf2,0x9b,0x80,0x08,0x9a,0x0e,0x2a, + 0x00,0xf3,0x97,0x80,0x44,0x4b,0x03,0xeb,0xc2,0x03,0x93,0xed,0x00,0x7b,0x25,0x9b, + 0xb0,0xee,0x47,0x8a,0xf0,0xee,0x67,0x8a,0x00,0x2b,0x1b,0xda,0x0a,0x9b,0x00,0x2b, + 0x18,0xdc,0x40,0xf0,0x58,0x83,0x51,0xec,0x17,0x0b,0x40,0x4b,0x00,0x22,0x02,0xf0, + 0xce,0xff,0x02,0x46,0x0b,0x46,0xdd,0xe9,0x02,0x01,0x03,0xf0,0x44,0xfa,0xdd,0xf8, + 0x28,0x80,0x45,0x46,0x00,0x28,0x00,0xf0,0x59,0x82,0x25,0x9b,0x06,0x9f,0x6f,0xea, + 0x03,0x09,0x5c,0xe2,0xdd,0xe9,0x02,0x67,0x53,0xec,0x18,0x2b,0x30,0x46,0x39,0x46, + 0x03,0xf0,0xdf,0xf8,0x03,0xf0,0x63,0xfa,0x05,0x46,0x02,0xf0,0x46,0xff,0x53,0xec, + 0x18,0x2b,0x02,0xf0,0xac,0xff,0x0b,0x46,0x02,0x46,0x39,0x46,0x30,0x46,0x02,0xf0, + 0xee,0xfd,0xdd,0xf8,0x18,0x90,0x05,0xf1,0x30,0x03,0x09,0xf8,0x01,0x3b,0x0a,0x9b, + 0x01,0x2b,0x00,0xf0,0x94,0x83,0x09,0xee,0x10,0xaa,0xcb,0x46,0x09,0xee,0x90,0x4a, + 0x5a,0xec,0x18,0x9b,0x4f,0xf0,0x01,0x08,0x1d,0x46,0x17,0xe0,0x03,0xf0,0xb9,0xf8, + 0x03,0xf0,0x3d,0xfa,0x04,0x46,0x02,0xf0,0x20,0xff,0x4a,0x46,0x53,0x46,0x02,0xf0, + 0x86,0xff,0x0b,0x46,0x02,0x46,0x39,0x46,0x30,0x46,0x02,0xf0,0xc8,0xfd,0x04,0xf1, + 0x30,0x03,0xa8,0x45,0x0b,0xf8,0x01,0x3b,0x00,0xf0,0x6b,0x83,0x13,0x4b,0x00,0x22, + 0x02,0xf0,0x75,0xff,0x00,0x22,0x00,0x23,0x06,0x46,0x0f,0x46,0x03,0xf0,0xd7,0xf9, + 0x04,0x46,0x08,0xf1,0x01,0x08,0x4a,0x46,0x53,0x46,0x30,0x46,0x39,0x46,0x00,0x2c, + 0xd4,0xd0,0x19,0xee,0x10,0xaa,0x19,0xee,0x90,0x4a,0xd9,0x46,0x08,0x9b,0x01,0x33, + 0x08,0x93,0x4e,0x46,0x20,0xe1,0xe0,0x37,0x01,0x10,0xb8,0x37,0x01,0x10,0x00,0x00, + 0xf0,0x3f,0x00,0x00,0x1c,0x40,0x00,0x00,0xe0,0x3f,0x00,0x00,0x24,0x40,0x00,0x00, + 0x14,0x40,0x0b,0x9a,0x00,0x2a,0x43,0xd0,0x24,0x9a,0x01,0x2a,0x40,0xf3,0x91,0x82, + 0x0a,0x9b,0x5f,0x1e,0x0c,0x9b,0xbb,0x42,0x80,0xf2,0x69,0x82,0x0c,0x9b,0x0c,0x97, + 0xfb,0x1a,0x9b,0x44,0x00,0x27,0x0a,0x9b,0x00,0x2b,0xc0,0xf2,0x5e,0x83,0x07,0x9a, + 0x11,0x46,0x09,0x9a,0x19,0x44,0x16,0x46,0x1a,0x44,0x07,0x91,0x09,0x92,0x01,0x21, + 0x20,0x46,0x01,0xf0,0x76,0xfd,0x05,0x46,0x25,0xe0,0x01,0x23,0xa8,0xeb,0x05,0x05, + 0x0d,0x93,0x6b,0x1e,0x07,0x93,0x7f,0xf5,0xad,0xad,0xc5,0xf1,0x01,0x03,0x09,0x93, + 0x00,0x23,0x07,0x93,0xa8,0xe5,0x58,0x46,0x02,0xf0,0xaf,0xfe,0x32,0x46,0x3b,0x46, + 0x03,0xf0,0x7d,0xf9,0x00,0x28,0x7f,0xf4,0x84,0xad,0x0b,0xf1,0xff,0x3b,0x80,0xe5, + 0xc7,0x4b,0x06,0x93,0x06,0x98,0x17,0xb0,0xbd,0xec,0x04,0x8b,0xbd,0xe8,0xf0,0x8f, + 0x0c,0x9f,0x09,0x9e,0x0b,0x9d,0x00,0x2e,0x0c,0xdd,0x07,0x9a,0x00,0x2a,0x09,0xdd, + 0x09,0x99,0xb2,0x42,0x13,0x46,0xa8,0xbf,0x33,0x46,0xc9,0x1a,0xf6,0x1a,0xd3,0x1a, + 0x09,0x91,0x07,0x93,0x0c,0x9b,0xd3,0xb1,0x0b,0x9b,0x00,0x2b,0x00,0xf0,0xb7,0x81, + 0x00,0x2f,0x10,0xdd,0x29,0x46,0x3a,0x46,0x20,0x46,0x01,0xf0,0xde,0xfd,0x52,0x46, + 0x01,0x46,0x05,0x46,0x20,0x46,0x01,0xf0,0x36,0xfd,0x51,0x46,0x80,0x46,0x20,0x46, + 0x01,0xf0,0x87,0xfc,0xc2,0x46,0x0c,0x9b,0xda,0x1b,0x40,0xf0,0xa1,0x81,0x01,0x21, + 0x20,0x46,0x01,0xf0,0x1e,0xfd,0xbb,0xf1,0x00,0x0f,0x80,0x46,0x00,0xf3,0xb9,0x80, + 0x24,0x9b,0x01,0x2b,0x40,0xf3,0x1b,0xb2,0x4a,0x21,0x00,0x6d,0x70,0x95,0xb0,0xe0, + 0x72,0xb7,0x8b,0x8f,0x40,0xcf,0xca,0x21,0x19,0xfc,0x9d,0x02,0xa8,0x41,0x61,0x5c, + 0xa1,0x8e,0xdc,0x3f,0x16,0x5c,0x47,0x0f,0x49,0x22,0x7d,0x96,0xc0,0x29,0x65,0xee, + 0x5a,0x12,0xf2,0x6f,0x22,0x6c,0x14,0x07,0xe6,0x7f,0x64,0x62,0xc3,0x39,0x2c,0xf4, + 0xab,0xa2,0xbb,0xea,0x8c,0x22,0x7f,0x99,0x0a,0x17 }; -static const unsigned char scp_0000017_ack[] = { 0xbe, 0xef, 0xed, 0x06, 0x00, 0x00, 0x96, 0xf9 }; +static const unsigned char scp_0000017_ack[] = { 0xbe,0xef,0xed,0x06,0x00,0x00,0x96,0xf9 }; -static const unsigned char scp_0000018_write_mem_response[] = { 0xbe, 0xef, 0xed, 0x05, 0x00, - 0x08, 0x97, 0x99, 0x5a, 0x02, - 0x00, 0x04, 0x00, 0x00, 0x00, - 0x00, 0xcb, 0x4a, 0xc5, 0x96 }; +static const unsigned char scp_0000018_write_mem_response[] = { 0xbe,0xef,0xed,0x05,0x00, + 0x08,0x97,0x99,0x5a,0x02, + 0x00,0x04,0x00,0x00,0x00, + 0x00,0xcb,0x4a,0xc5,0x96 }; -static const unsigned char scp_0000019_ack[] = { 0xbe, 0xef, 0xed, 0x06, 0x00, 0x00, 0x97, 0xe1 }; +static const unsigned char scp_0000019_ack[] = { 0xbe,0xef,0xed,0x06,0x00,0x00,0x97,0xe1 }; static const unsigned char scp_0000020_write_mem[] = { - 0xbe, 0xef, 0xed, 0x05, 0x20, 0x2e, 0x98, 0xda, 0x5a, 0x03, 0x1f, 0xea, 0x24, 0x02, 0x10, 0x00, - 0xff, 0xc0, 0x00, 0x00, 0x1f, 0xe0, 0x9f, 0x81, 0x00, 0x27, 0x01, 0x20, 0xbb, 0xf1, 0x00, 0x0f, - 0x40, 0xf0, 0xba, 0x80, 0x07, 0x9a, 0x10, 0x44, 0x10, 0xf0, 0x1f, 0x00, 0x00, 0xf0, 0x99, 0x80, - 0xc0, 0xf1, 0x20, 0x03, 0x04, 0x2b, 0x40, 0xf3, 0xec, 0x83, 0x09, 0x9b, 0xc0, 0xf1, 0x1c, 0x00, - 0x03, 0x44, 0x02, 0x44, 0x09, 0x93, 0x06, 0x44, 0x07, 0x92, 0x09, 0x9b, 0x00, 0x2b, 0x05, 0xdd, - 0x51, 0x46, 0x1a, 0x46, 0x20, 0x46, 0x01, 0xf0, 0xf0, 0xfd, 0x82, 0x46, 0x07, 0x9b, 0x00, 0x2b, - 0x05, 0xdd, 0x41, 0x46, 0x1a, 0x46, 0x20, 0x46, 0x01, 0xf0, 0xe7, 0xfd, 0x80, 0x46, 0x0d, 0x9b, - 0x00, 0x2b, 0x40, 0xf0, 0x49, 0x81, 0x0a, 0x9b, 0x00, 0x2b, 0x40, 0xf3, 0x1a, 0x81, 0x0b, 0x9b, - 0x00, 0x2b, 0x40, 0xf0, 0x9b, 0x80, 0x08, 0x9b, 0x01, 0x33, 0x08, 0x93, 0x06, 0x9f, 0xdd, 0xf8, - 0x28, 0x90, 0x01, 0x26, 0x03, 0xe0, 0x01, 0xf0, 0x3e, 0xfc, 0x01, 0x36, 0x82, 0x46, 0x41, 0x46, - 0x50, 0x46, 0xff, 0xf7, 0xd0, 0xfb, 0x4e, 0x45, 0x00, 0xf1, 0x30, 0x0c, 0x07, 0xf8, 0x01, 0xcb, - 0x51, 0x46, 0x4f, 0xf0, 0x00, 0x03, 0x4f, 0xf0, 0x0a, 0x02, 0x20, 0x46, 0xeb, 0xdb, 0x0a, 0x9b, - 0xcd, 0xf8, 0x08, 0xc0, 0x00, 0x2b, 0xc8, 0xbf, 0x9b, 0x46, 0x06, 0x9b, 0xd8, 0xbf, 0x4f, 0xf0, - 0x01, 0x0b, 0x9b, 0x44, 0x4f, 0xf0, 0x00, 0x09, 0x51, 0x46, 0x01, 0x22, 0x20, 0x46, 0x01, 0xf0, - 0xac, 0xfd, 0x41, 0x46, 0x82, 0x46, 0x01, 0xf0, 0x12, 0xfe, 0x00, 0x28, 0x40, 0xf3, 0x97, 0x81, - 0x1b, 0xf8, 0x01, 0x2c, 0x06, 0x9b, 0x0b, 0xf1, 0xff, 0x3b, 0x04, 0xe0, 0x5b, 0x45, 0x00, 0xf0, - 0x99, 0x81, 0x1b, 0xf8, 0x01, 0x2d, 0x39, 0x2a, 0x0b, 0xf1, 0x01, 0x06, 0xf6, 0xd0, 0x01, 0x32, - 0x8b, 0xf8, 0x00, 0x20, 0x41, 0x46, 0x20, 0x46, 0x01, 0xf0, 0xf3, 0xfb, 0x65, 0xb1, 0xb9, 0xf1, - 0x00, 0x0f, 0x05, 0xd0, 0xa9, 0x45, 0x03, 0xd0, 0x49, 0x46, 0x20, 0x46, 0x01, 0xf0, 0xe9, 0xfb, - 0x29, 0x46, 0x20, 0x46, 0x01, 0xf0, 0xe5, 0xfb, 0x51, 0x46, 0x20, 0x46, 0x01, 0xf0, 0xe1, 0xfb, - 0x26, 0x9b, 0x00, 0x22, 0x32, 0x70, 0x1a, 0x46, 0x08, 0x9b, 0x13, 0x60, 0x28, 0x9b, 0x00, 0x2b, - 0x3f, 0xf4, 0x46, 0xac, 0x06, 0x98, 0x1e, 0x60, 0x17, 0xb0, 0xbd, 0xec, 0x04, 0x8b, 0xbd, 0xe8, - 0xf0, 0x8f, 0x1c, 0x20, 0x09, 0x9b, 0x03, 0x44, 0x09, 0x93, 0x07, 0x9b, 0x03, 0x44, 0x06, 0x44, - 0x07, 0x93, 0x6a, 0xe7, 0x01, 0x25, 0xbe, 0xe4, 0xc0, 0xf1, 0x20, 0x00, 0x06, 0xfa, 0x00, 0xf0, - 0x54, 0xe4, 0x01, 0x46, 0x5a, 0x46, 0x20, 0x46, 0x01, 0xf0, 0x07, 0xfd, 0x24, 0x9b, 0x01, 0x2b, - 0x80, 0x46, 0x40, 0xf3, 0xcc, 0x81, 0x00, 0x27, 0xd8, 0xf8, 0x10, 0x30, 0x08, 0xeb, 0x83, 0x03, - 0x18, 0x69, 0x01, 0xf0, 0xfe, 0xfb, 0xc0, 0xf1, 0x20, 0x00, 0x3b, 0xe7, 0x24, 0x9b, 0x02, 0x2b, - 0x00, 0xf3, 0x22, 0x83, 0x0f, 0x9b, 0xcd, 0xf8, 0x20, 0x90, 0x0a, 0x93, 0x08, 0x9b, 0x01, 0x33, - 0x08, 0x93, 0x00, 0x2e, 0x00, 0xf3, 0x14, 0x81, 0x00, 0x2f, 0x40, 0xf0, 0x02, 0x82, 0x2f, 0x46, - 0x04, 0x9b, 0x24, 0x99, 0x06, 0x9e, 0x03, 0xf0, 0x01, 0x02, 0x0c, 0x92, 0x0a, 0x43, 0x0b, 0x92, - 0x0a, 0x9a, 0x73, 0x1e, 0x1a, 0x44, 0x09, 0x92, 0x41, 0x46, 0x50, 0x46, 0xff, 0xf7, 0x2b, 0xfb, - 0x29, 0x46, 0x83, 0x46, 0x50, 0x46, 0x01, 0xf0, 0x8a, 0xfd, 0x41, 0x46, 0x81, 0x46, 0x3a, 0x46, - 0x20, 0x46, 0x01, 0xf0, 0xa2, 0xfd, 0x0b, 0xf1, 0x30, 0x03, 0x02, 0x93, 0xc3, 0x68, 0x01, 0x46, - 0x00, 0x2b, 0x41, 0xd1, 0x07, 0x90, 0x50, 0x46, 0x01, 0xf0, 0x79, 0xfd, 0x07, 0x99, 0x04, 0x90, - 0x20, 0x46, 0x01, 0xf0, 0x6e, 0xfb, 0x04, 0x9b, 0x1b, 0xb9, 0x0b, 0x9a, 0x00, 0x2a, 0x00, 0xf0, - 0xc8, 0x82, 0xb9, 0xf1, 0x00, 0x0f, 0xc0, 0xf2, 0x91, 0x81, 0x24, 0x9a, 0x42, 0xea, 0x09, 0x09, - 0x0c, 0x9a, 0x52, 0xea, 0x09, 0x02, 0x00, 0xf0, 0x89, 0x81, 0x00, 0x2b, 0x00, 0xf3, 0xd9, 0x81, - 0x02, 0x9b, 0x33, 0x70, 0x09, 0x9b, 0x06, 0xf1, 0x01, 0x09, 0xb3, 0x42, 0xcb, 0x46, 0x00, 0xf0, - 0xdb, 0x81, 0x51, 0x46, 0x00, 0x23, 0x0a, 0x22, 0x20, 0x46, 0x01, 0xf0, 0x54, 0xfb, 0xbd, 0x42, - 0x82, 0x46, 0x29, 0x46, 0x4f, 0xf0, 0x00, 0x03, 0x4f, 0xf0, 0x0a, 0x02, 0x20, 0x46, 0x10, 0xd0, - 0x01, 0xf0, 0x49, 0xfb, 0x39, 0x46, 0x05, 0x46, 0x00, 0x23, 0x0a, 0x22, 0x20, 0x46, 0x01, 0xf0, - 0x42, 0xfb, 0x4e, 0x46, 0x07, 0x46, 0xa7, 0xe7, 0x20, 0x46, 0x01, 0xf0, 0x32, 0xfb, 0x01, 0x23, - 0xc7, 0xe7, 0x01, 0xf0, 0x38, 0xfb, 0x4e, 0x46, 0x05, 0x46, 0x07, 0x46, 0x9c, 0xe7, 0x80, 0x37, - 0x01, 0x10, 0x24, 0x9b, 0x02, 0x2b, 0x40, 0xf3, 0x86, 0x80, 0x0a, 0x9b, 0x00, 0x2b, 0x7f, 0xf4, - 0xb4, 0xad, 0x41, 0x46, 0x05, 0x22, 0x20, 0x46, 0x01, 0xf0, 0x25, 0xfb, 0x01, 0x46, 0x80, 0x46, - 0x50, 0x46, 0x01, 0xf0, 0x1c, 0xfd, 0x00, 0x28, 0x7f, 0xf7, 0xa7, 0xad, 0x06, 0x9f, 0x3b, 0x46, - 0x31, 0x22, 0x03, 0xf8, 0x01, 0x2b, 0x08, 0x9a, 0x06, 0x93, 0x02, 0xf1, 0x01, 0x09, 0x41, 0x46, - 0x20, 0x46, 0x01, 0xf0, 0x06, 0xfb, 0x09, 0xf1, 0x01, 0x03, 0x06, 0x9e, 0x08, 0x93, 0x06, 0x97, - 0x00, 0x2d, 0x7f, 0xf4, 0x15, 0xaf, 0x17, 0xe7, 0x41, 0x46, 0x50, 0x46, 0x01, 0xf0, 0xff, 0xfc, - 0x00, 0x28, 0xbf, 0xf6, 0xb0, 0xae, 0x51, 0x46, 0x00, 0x23, 0x0a, 0x22, 0x20, 0x46, 0x01, 0xf0, - 0xfa, 0xfa, 0x08, 0x9b, 0x03, 0xf1, 0xff, 0x39, 0x0b, 0x9b, 0x82, 0x46, 0x00, 0x2b, 0x40, 0xf0, - 0x50, 0x82, 0x0f, 0x9b, 0x00, 0x2b, 0x40, 0xf3, 0x59, 0x82, 0x0a, 0x93, 0xa6, 0xe6, 0x0c, 0x9a, - 0x51, 0x46, 0x20, 0x46, 0x01, 0xf0, 0x29, 0xfc, 0x82, 0x46, 0x58, 0xe6, 0xb4, 0x4b, 0x06, 0x93, - 0x03, 0x33, 0xff, 0xf7, 0xeb, 0xbb, 0xdd, 0xe9, 0x04, 0x12, 0x00, 0x29, 0x7f, 0xf4, 0x5c, 0xae, - 0xc2, 0xf3, 0x13, 0x03, 0x00, 0x2b, 0x00, 0xf0, 0xec, 0x80, 0x04, 0x9f, 0x55, 0xe6, 0x01, 0x23, - 0x0b, 0x93, 0x25, 0x9b, 0x08, 0x9a, 0x13, 0x44, 0x0f, 0x93, 0x01, 0x33, 0x01, 0x2b, 0x1e, 0x46, - 0x0a, 0x93, 0xb8, 0xbf, 0x01, 0x26, 0x00, 0x21, 0x17, 0x2e, 0x61, 0x64, 0x0a, 0xdd, 0x01, 0x22, - 0x04, 0x23, 0x5b, 0x00, 0x03, 0xf1, 0x14, 0x00, 0xb0, 0x42, 0x11, 0x46, 0x02, 0xf1, 0x01, 0x02, - 0xf7, 0xd9, 0x61, 0x64, 0x0a, 0x9e, 0x16, 0xe4, 0x01, 0x23, 0x0b, 0x93, 0x25, 0x9b, 0x00, 0x2b, - 0x30, 0xdd, 0x0f, 0x93, 0x0a, 0x93, 0x1e, 0x46, 0xe5, 0xe7, 0x00, 0x23, 0x0b, 0x93, 0xd8, 0xe7, - 0x00, 0x23, 0x0b, 0x93, 0xf2, 0xe7, 0x0b, 0x9b, 0x00, 0x2b, 0x7f, 0xf4, 0xf7, 0xae, 0x41, 0x46, - 0x50, 0x46, 0xff, 0xf7, 0x38, 0xfa, 0x08, 0x9a, 0xdd, 0xf8, 0x18, 0xb0, 0x00, 0xf1, 0x30, 0x03, - 0x01, 0x32, 0x0b, 0xf8, 0x01, 0x3b, 0x02, 0x93, 0x08, 0x92, 0x4f, 0xf0, 0x00, 0x09, 0x73, 0xe6, - 0x29, 0x46, 0x32, 0x46, 0x20, 0x46, 0x01, 0xf0, 0x20, 0xfc, 0x05, 0x46, 0xe4, 0xe6, 0xdf, 0x1b, - 0x99, 0xe5, 0x9d, 0xed, 0x02, 0x7b, 0x4f, 0xf0, 0x02, 0x09, 0xb0, 0xee, 0x47, 0x8a, 0xf0, 0xee, - 0x67, 0x8a, 0x08, 0xe4, 0x01, 0x26, 0x25, 0x96, 0x0a, 0x96, 0xff, 0xf7, 0xd9, 0xbb, 0x03, 0xd1, - 0x02, 0x9b, 0xdb, 0x07, 0x3f, 0xf5, 0x64, 0xae, 0x5e, 0x46, 0x1b, 0xf8, 0x01, 0x3d, 0x30, 0x2b, - 0xfa, 0xd0, 0x6f, 0xe6, 0x08, 0x9b, 0x01, 0x33, 0x08, 0x93, 0x06, 0x9b, 0x31, 0x22, 0x1a, 0x70, - 0x68, 0xe6, 0x0e, 0x9a, 0x00, 0x2a, 0x00, 0xf0, 0x63, 0x81, 0x03, 0xf2, 0x33, 0x43, 0x07, 0x9a, - 0x0c, 0x9f, 0x1a, 0x44, 0x07, 0x92, 0x09, 0x9a, 0x16, 0x46, 0x1a, 0x44, 0x09, 0x92, 0x76, 0xe5, - 0x48, 0x46, 0x02, 0xf0, 0x3a, 0xfc, 0x3a, 0x46, 0x43, 0x46, 0x02, 0xf0, 0xa0, 0xfc, 0x6c, 0x4b, - 0x00, 0x22, 0x02, 0xf0, 0xe6, 0xfa, 0xa1, 0xf1, 0x50, 0x73, 0xcd, 0xe9, 0x10, 0x01, 0x11, 0x93, - 0x69, 0x4b, 0x38, 0x46, 0x41, 0x46, 0x00, 0x22, 0x02, 0xf0, 0xd9, 0xfa, 0xdd, 0xe9, 0x10, 0x89, - 0x42, 0x46, 0x4b, 0x46, 0x06, 0x46, 0x0f, 0x46, 0x02, 0xf0, 0x19, 0xff, 0x00, 0x28, 0x40, 0xf0, - 0x76, 0x81, 0x42, 0x46, 0x09, 0xf1, 0x00, 0x43, 0x30, 0x46, 0x39, 0x46, 0x02, 0xf0, 0xf1, 0xfe, - 0x00, 0x28, 0x3f, 0xf4, 0x8f, 0xac, 0x4f, 0xf0, 0x00, 0x08, 0x45, 0x46, 0xb5, 0xe4, 0x00, 0xf0, - 0x53, 0x81, 0x08, 0x9b, 0x5d, 0x42, 0x58, 0x4b, 0x05, 0xf0, 0x0f, 0x02, 0x03, 0xeb, 0xc2, 0x03, - 0xd3, 0xe9, 0x00, 0x23, 0xdd, 0xe9, 0x02, 0x01, 0x02, 0xf0, 0x69, 0xfc, 0x2d, 0x11, 0x07, 0x46, - 0x88, 0x46, 0x00, 0xf0, 0x8e, 0x81, 0x51, 0x4e, 0x02, 0x46, 0x0b, 0x46, 0x4f, 0xf0, 0x00, 0x0c, - 0x4f, 0xf0, 0x02, 0x09, 0x15, 0xf0, 0x01, 0x0f, 0x10, 0x46, 0x19, 0x46, 0x09, 0xd0, 0xd6, 0xe9, - 0x00, 0x23, 0x02, 0xf0, 0x54, 0xfc, 0x09, 0xf1, 0x01, 0x09, 0x02, 0x46, 0x0b, 0x46, 0x4f, 0xf0, - 0x01, 0x0c, 0x6d, 0x10, 0x06, 0xf1, 0x08, 0x06, 0xec, 0xd1, 0xbc, 0xf1, 0x00, 0x0f, 0x3f, 0xf4, - 0x9d, 0xab, 0x17, 0x46, 0x98, 0x46, 0xff, 0xf7, 0x99, 0xbb, 0x0d, 0x90, 0x1d, 0xe5, 0xdd, 0xe9, - 0x04, 0x12, 0x00, 0x29, 0x7f, 0xf4, 0x2f, 0xae, 0xc2, 0xf3, 0x13, 0x03, 0x00, 0x2b, 0x7f, 0xf4, - 0x2a, 0xae, 0x3b, 0x4f, 0x17, 0x40, 0x00, 0x2f, 0x3f, 0xf4, 0x67, 0xad, 0x09, 0x9b, 0x01, 0x33, - 0x09, 0x93, 0x07, 0x9b, 0x01, 0x33, 0x07, 0x93, 0x01, 0x27, 0x5e, 0xe5, 0x00, 0x2b, 0x12, 0xdd, - 0x51, 0x46, 0x01, 0x22, 0x20, 0x46, 0x01, 0xf0, 0x68, 0xfb, 0x41, 0x46, 0x82, 0x46, 0x01, 0xf0, - 0xce, 0xfb, 0x00, 0x28, 0x40, 0xf3, 0x1e, 0x81, 0x02, 0x9b, 0x39, 0x2b, 0x00, 0xf0, 0x00, 0x81, - 0x0b, 0xf1, 0x31, 0x03, 0x02, 0x93, 0x02, 0x9b, 0x06, 0xf8, 0x01, 0x3b, 0xa9, 0x46, 0x3d, 0x46, - 0xc0, 0xe5, 0x25, 0x46, 0x19, 0xee, 0x10, 0xaa, 0x19, 0xee, 0x90, 0x4a, 0xd9, 0x46, 0x02, 0x46, - 0x0b, 0x46, 0x02, 0xf0, 0x4e, 0xfa, 0x53, 0xec, 0x18, 0x2b, 0x06, 0x46, 0x0f, 0x46, 0x02, 0xf0, - 0x8e, 0xfe, 0x58, 0xb9, 0x53, 0xec, 0x18, 0x2b, 0x30, 0x46, 0x39, 0x46, 0x02, 0xf0, 0x5f, 0xfe, - 0x00, 0x28, 0x3f, 0xf4, 0x93, 0xac, 0xe9, 0x07, 0x7f, 0xf5, 0x90, 0xac, 0x06, 0x9b, 0xff, 0xf7, - 0xee, 0xbb, 0x69, 0x68, 0x20, 0x46, 0x01, 0xf0, 0x6e, 0xf9, 0x2b, 0x69, 0x02, 0x33, 0x9a, 0x00, - 0x06, 0x46, 0x05, 0xf1, 0x0c, 0x01, 0x0c, 0x30, 0xfd, 0xf7, 0xb5, 0xf8, 0x31, 0x46, 0x01, 0x22, - 0x20, 0x46, 0x01, 0xf0, 0x22, 0xfb, 0x07, 0x46, 0xea, 0xe5, 0xdd, 0xe9, 0x09, 0x32, 0x9e, 0x1a, - 0xa5, 0xe4, 0x02, 0x9b, 0x39, 0x2b, 0x00, 0xf0, 0xbb, 0x80, 0x02, 0x9b, 0x01, 0x33, 0xa9, 0x46, - 0x06, 0xf8, 0x01, 0x3b, 0x3d, 0x46, 0x7d, 0xe5, 0xa9, 0x46, 0x3d, 0x46, 0x5c, 0xe5, 0xa4, 0x37, - 0x01, 0x10, 0x00, 0x00, 0x1c, 0x40, 0x00, 0x00, 0x14, 0x40, 0xe0, 0x37, 0x01, 0x10, 0xb8, 0x37, - 0x01, 0x10, 0x00, 0x00, 0xf0, 0x7f, 0x12, 0x9b, 0x81, 0x49, 0x01, 0xeb, 0xc3, 0x01, 0x51, 0xe9, - 0x02, 0x01, 0xdd, 0xe9, 0x10, 0x23, 0x02, 0xf0, 0xb2, 0xfb, 0x02, 0x46, 0x0b, 0x46, 0x38, 0x46, - 0x41, 0x46, 0x43, 0xec, 0x18, 0x2b, 0x02, 0xf0, 0x5a, 0xfe, 0x05, 0x46, 0x02, 0xf0, 0x3d, 0xfb, - 0x0b, 0x46, 0x02, 0x46, 0x41, 0x46, 0x38, 0x46, 0x02, 0xf0, 0xe9, 0xf9, 0x12, 0x9b, 0xdd, 0xf8, - 0x18, 0x90, 0x30, 0x35, 0x01, 0x2b, 0x09, 0xf8, 0x01, 0x5b, 0x06, 0x46, 0x0f, 0x46, 0x23, 0xd0, - 0x12, 0x9b, 0x06, 0x9a, 0xcd, 0xf8, 0x40, 0xb0, 0x13, 0x44, 0x9b, 0x46, 0x4d, 0x46, 0x6c, 0x4b, - 0x00, 0x22, 0x30, 0x46, 0x39, 0x46, 0x02, 0xf0, 0x8a, 0xfb, 0x89, 0x46, 0x80, 0x46, 0x02, 0xf0, - 0x36, 0xfe, 0x07, 0x46, 0x02, 0xf0, 0x19, 0xfb, 0x30, 0x37, 0x02, 0x46, 0x0b, 0x46, 0x40, 0x46, - 0x49, 0x46, 0x02, 0xf0, 0xc4, 0xf9, 0x05, 0xf8, 0x01, 0x7b, 0x5d, 0x45, 0x06, 0x46, 0x0f, 0x46, - 0xe5, 0xd1, 0xdd, 0xf8, 0x40, 0xb0, 0xa9, 0x46, 0x5f, 0x4b, 0x00, 0x22, 0x51, 0xec, 0x18, 0x0b, - 0x02, 0xf0, 0xb7, 0xf9, 0x32, 0x46, 0x3b, 0x46, 0x02, 0xf0, 0xdb, 0xfd, 0x00, 0x28, 0x64, 0xd1, - 0x53, 0xec, 0x18, 0x2b, 0x58, 0x49, 0x00, 0x20, 0x02, 0xf0, 0xa9, 0xf9, 0x32, 0x46, 0x3b, 0x46, - 0x02, 0xf0, 0xed, 0xfd, 0x00, 0x28, 0x3f, 0xf4, 0x6d, 0xab, 0x4e, 0x46, 0x09, 0xf1, 0xff, 0x39, - 0x16, 0xf8, 0x01, 0x3c, 0x30, 0x2b, 0xf8, 0xd0, 0x13, 0x9b, 0x01, 0x33, 0x08, 0x93, 0x13, 0xe5, - 0x14, 0x9b, 0xc3, 0xf1, 0x36, 0x03, 0x9a, 0xe6, 0x0a, 0x9b, 0x00, 0x2b, 0x3f, 0xf4, 0xa0, 0xae, - 0x0f, 0x9d, 0x00, 0x2d, 0x7f, 0xf7, 0x56, 0xab, 0x46, 0x4b, 0x38, 0x46, 0x41, 0x46, 0x00, 0x22, - 0x02, 0xf0, 0x3d, 0xfb, 0x02, 0x46, 0x17, 0x46, 0x88, 0x46, 0x09, 0xf1, 0x01, 0x00, 0x02, 0xf0, - 0xcc, 0xfa, 0x3a, 0x46, 0x43, 0x46, 0x02, 0xf0, 0x32, 0xfb, 0x3f, 0x4b, 0x00, 0x22, 0x02, 0xf0, - 0x78, 0xf9, 0xa1, 0xf1, 0x50, 0x73, 0xcd, 0xe9, 0x10, 0x01, 0x11, 0x93, 0x08, 0x9b, 0x01, 0x3b, - 0xcd, 0xe9, 0x12, 0x53, 0xff, 0xf7, 0x9d, 0xba, 0xdd, 0xe9, 0x02, 0x78, 0x4f, 0xf0, 0x02, 0x09, - 0xff, 0xf7, 0x74, 0xba, 0x08, 0x9b, 0x01, 0x33, 0x08, 0x93, 0x31, 0x22, 0xff, 0xf7, 0x1e, 0xbb, - 0xb3, 0x46, 0x39, 0x22, 0xa9, 0x46, 0x0b, 0xf8, 0x01, 0x2b, 0x3d, 0x46, 0xb2, 0xe4, 0x4f, 0xf0, - 0x00, 0x08, 0x45, 0x46, 0xa2, 0xe5, 0xa1, 0x46, 0x19, 0xee, 0x10, 0xaa, 0x19, 0xee, 0x90, 0x4a, - 0x13, 0x9b, 0x01, 0x33, 0x08, 0x93, 0x4e, 0x46, 0xc6, 0xe4, 0x13, 0x9b, 0x08, 0x93, 0x06, 0x9b, - 0xff, 0xf7, 0xfd, 0xba, 0x7f, 0xf4, 0xe7, 0xae, 0x02, 0x9b, 0xda, 0x07, 0x7f, 0xf5, 0xe3, 0xae, - 0xda, 0xe6, 0x02, 0x9b, 0x39, 0x2b, 0xdb, 0xd0, 0xb9, 0xf1, 0x00, 0x0f, 0x3f, 0xf7, 0xd8, 0xae, - 0xd9, 0xe6, 0x29, 0x46, 0x00, 0x23, 0x0a, 0x22, 0x20, 0x46, 0x01, 0xf0, 0x9c, 0xf8, 0x0f, 0x9b, - 0x00, 0x2b, 0x05, 0x46, 0x7f, 0xf7, 0xe2, 0xac, 0x0a, 0x93, 0xea, 0xe4, 0x24, 0x9b, 0x02, 0x2b, - 0x02, 0xdc, 0xcd, 0xf8, 0x20, 0x90, 0xea, 0xe5, 0x0f, 0x9b, 0xcd, 0xf8, 0x20, 0x90, 0x0a, 0x93, - 0x5b, 0xe5, 0x4f, 0xf0, 0x02, 0x09, 0xff, 0xf7, 0x29, 0xba, 0x10, 0x4b, 0x06, 0x93, 0xff, 0xf7, - 0xe7, 0xb8, 0x3f, 0xf4, 0x1a, 0xac, 0xc0, 0xf1, 0x3c, 0x00, 0xa3, 0xe4, 0x00, 0x25, 0x65, 0x64, - 0x29, 0x46, 0x20, 0x46, 0x01, 0xf0, 0x47, 0xf8, 0x4f, 0xf0, 0xff, 0x33, 0x0f, 0x93, 0x0a, 0x93, - 0x01, 0x23, 0x06, 0x90, 0x25, 0x95, 0x20, 0x64, 0x0b, 0x93, 0xff, 0xf7, 0xcb, 0xba, 0xe0, 0x37, - 0x01, 0x10, 0x00, 0x00, 0x24, 0x40, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x00, 0x1c, 0x40, 0xa8, 0x37, - 0x01, 0x10, 0xb1, 0xf9, 0x0c, 0x20, 0x2d, 0xe9, 0xf0, 0x41, 0x0d, 0x46, 0x11, 0x07, 0x80, 0x46, - 0x47, 0xd4, 0x6b, 0x68, 0x42, 0xf4, 0x00, 0x62, 0x00, 0x2b, 0xaa, 0x81, 0x5d, 0xdd, 0xac, 0x6a, - 0x00, 0x2c, 0x57, 0xd0, 0x00, 0x23, 0xd8, 0xf8, 0x00, 0x60, 0xc8, 0xf8, 0x00, 0x30, 0x93, 0xb2, - 0x12, 0xf4, 0x80, 0x52, 0x55, 0xd1, 0x01, 0x23, 0xe9, 0x69, 0x40, 0x46, 0xa0, 0x47, 0x43, 0x1c, - 0x66, 0xd0, 0xab, 0x89, 0xac, 0x6a, 0x5f, 0x07, 0x05, 0xd5, 0x6a, 0x68, 0x2b, 0x6b, 0x80, 0x1a, - 0x0b, 0xb1, 0xeb, 0x6b, 0xc0, 0x1a, 0xe9, 0x69, 0x02, 0x46, 0x00, 0x23, 0x40, 0x46, 0xa0, 0x47, - 0x41, 0x1c, 0x40, 0xd1, 0xd8, 0xf8, 0x00, 0x30, 0x00, 0x2b, 0x3c, 0xd0, 0x1d, 0x2b, 0x01, 0xd0, - 0x16, 0x2b, 0x55, 0xd1, 0xab, 0x89, 0x2a, 0x69, 0x2a, 0x60, 0x23, 0xf4, 0x00, 0x63, 0x00, 0x22, - 0xab, 0x81, 0x6a, 0x60, 0x29, 0x6b, 0xc8, 0xf8, 0x00, 0x60, 0x19, 0xb3, 0x05, 0xf1, 0x40, 0x03, - 0x99, 0x42, 0x02, 0xd0, 0x40, 0x46, 0x00, 0xf0, 0x44, 0xf9, 0x00, 0x20, 0x28, 0x63, 0xbd, 0xe8, - 0xf0, 0x81, 0x2f, 0x69, 0xb7, 0xb1, 0x93, 0xb2, 0x2e, 0x68, 0x2f, 0x60, 0x9a, 0x07, 0x0c, 0xbf, - 0x6b, 0x69, 0x00, 0x23, 0xf6, 0x1b, 0xab, 0x60, 0x0a, 0xe0, 0x6c, 0x6a, 0xe9, 0x69, 0x33, 0x46, - 0x3a, 0x46, 0x40, 0x46, 0xa0, 0x47, 0x04, 0x1e, 0xa6, 0xeb, 0x04, 0x06, 0x27, 0x44, 0x17, 0xdd, - 0x00, 0x2e, 0xf2, 0xdc, 0x00, 0x20, 0xbd, 0xe8, 0xf0, 0x81, 0xeb, 0x6b, 0x00, 0x2b, 0x9e, 0xdc, - 0xf8, 0xe7, 0x28, 0x6d, 0xaf, 0xe7, 0xb5, 0xf9, 0x0c, 0x30, 0x2a, 0x69, 0x2a, 0x60, 0x23, 0xf4, - 0x00, 0x63, 0x00, 0x22, 0xab, 0x81, 0xdb, 0x04, 0x6a, 0x60, 0xc3, 0xd5, 0x28, 0x65, 0xc1, 0xe7, - 0xab, 0x89, 0x43, 0xf0, 0x40, 0x03, 0xab, 0x81, 0x4f, 0xf0, 0xff, 0x30, 0xbd, 0xe8, 0xf0, 0x81, - 0xd8, 0xf8, 0x00, 0x30, 0x00, 0x2b, 0x94, 0xd0, 0x1d, 0x2b, 0x06, 0xd0, 0x16, 0x2b, 0x04, 0xd0, - 0xab, 0x89, 0x43, 0xf0, 0x40, 0x03, 0xab, 0x81, 0xd5, 0xe7, 0xc8, 0xf8, 0x00, 0x60, 0xd1, 0xe7, - 0x00, 0xbf, 0x38, 0xb5, 0x0c, 0x46, 0x05, 0x46, 0x08, 0xb1, 0x83, 0x6b, 0xa3, 0xb1, 0xb4, 0xf9, - 0x0c, 0x00, 0xb8, 0xb1, 0x63, 0x6e, 0xdb, 0x07, 0x01, 0xd4, 0x81, 0x05, 0x15, 0xd5, 0x28, 0x46, - 0x21, 0x46, 0xff, 0xf7, 0x56, 0xff, 0x63, 0x6e, 0xda, 0x07, 0x05, 0x46, 0x02, 0xd4, 0xa3, 0x89, - 0x9b, 0x05, 0x0e, 0xd5, 0x28, 0x46, 0x38, 0xbd, 0x00, 0xf0, 0x3f, 0xf8, 0xb4, 0xf9, 0x0c, 0x00, - 0x00, 0x28, 0xe7, 0xd1, 0x05, 0x46, 0x28, 0x46, 0x38, 0xbd, 0xa0, 0x6d, 0x00, 0xf0, 0x71, 0xfb, - 0xe5, 0xe7, 0xa0, 0x6d, 0x00, 0xf0, 0x6f, 0xfb, 0x28, 0x46, 0x38, 0xbd, 0x00, 0xbf, 0x10, 0xb5, - 0x00, 0x23, 0x04, 0x46, 0xc0, 0xe9, 0x00, 0x33, 0xc0, 0xe9, 0x04, 0x33, 0x81, 0x81, 0xc2, 0x81, - 0x83, 0x60, 0x43, 0x66, 0x83, 0x61, 0x19, 0x46, 0x08, 0x22, 0x5c, 0x30, 0xfc, 0xf7, 0x45, 0xff, - 0x07, 0x48, 0x07, 0x49, 0x08, 0x4a, 0x08, 0x4b, 0xe3, 0x62, 0xc4, 0xe9, 0x07, 0x40, 0xc4, 0xe9, - 0x09, 0x12, 0x04, 0xf1, 0x58, 0x00, 0xbd, 0xe8, 0x10, 0x40, 0x00, 0xf0, 0x46, 0xbb, 0x5d, 0x23, - 0x01, 0x10, 0x81, 0x23, 0x01, 0x10, 0xc1, 0x23, 0x01, 0x10, 0xe1, 0x23, 0x01, 0x10, 0x01, 0x49, - 0x00, 0xf0, 0x13, 0xbb, 0x00, 0xbf, 0x1d, 0x26, 0x01, 0x10, 0x10, 0xb5, 0x04, 0x46, 0x11, 0x48, - 0x00, 0xf0, 0x37, 0xfb, 0xa2, 0x6b, 0xc2, 0xb9, 0x04, 0xf5, 0x3b, 0x73, 0x0f, 0x48, 0xc4, 0xf8, - 0xe0, 0x22, 0x03, 0x21, 0xc4, 0xe9, 0xb9, 0x13, 0xe0, 0x63, 0x04, 0x21, 0x60, 0x68, 0xff, 0xf7, - 0xbe, 0xff, 0xa0, 0x68, 0x01, 0x22, 0x09, 0x21, 0xff, 0xf7, 0xb9, 0xff, 0xe0, 0x68, 0x02, 0x22, - 0x12, 0x21, 0xff, 0xf7, 0xb4, 0xff, 0x01, 0x23, 0xa3, 0x63, 0xbd, 0xe8, 0x10, 0x40, 0x01, 0x48, - 0x00, 0xf0, 0x19, 0xbb, 0x00, 0xbf, 0x30, 0x0b, 0x00, 0x20, 0xd9, 0x09, 0x01, 0x10, 0x01, 0x48, - 0x00, 0xf0, 0x0f, 0xbb, 0x00, 0xbf, 0x44, 0x0b, 0x00, 0x20, 0x01, 0x48, 0x00, 0xf0, 0x0b, 0xbb, - 0x00, 0xbf, 0x44, 0x0b, 0x00, 0x20, 0x38, 0xb5, 0x08, 0x4b, 0x08, 0x4d, 0x5b, 0x1b, 0x9c, 0x10, - 0x07, 0xd0, 0x04, 0x3b, 0x1d, 0x44, 0x01, 0x3c, 0x55, 0xf8, 0x04, 0x39, 0x98, 0x47, 0x00, 0x2c, - 0xf9, 0xd1, 0xbd, 0xe8, 0x38, 0x40, 0x02, 0xf0, 0xb0, 0xbf, 0xc4, 0x09, 0x00, 0x20, 0xc0, 0x09, - 0x00, 0x20, 0xf8, 0xb5, 0x24, 0x4f, 0x0c, 0x46, 0x06, 0x46, 0x00, 0xf0, 0xe0, 0xfe, 0xbb, 0x68, - 0x5d, 0x68, 0xc4, 0xf5, 0x7e, 0x61, 0x0f, 0x31, 0x25, 0xf0, 0x03, 0x05, 0x4b, 0x19, 0x23, 0xf4, - 0x7f, 0x63, 0x23, 0xf0, 0x0f, 0x03, 0xa3, 0xf5, 0x80, 0x54, 0xb4, 0xf5, 0x80, 0x5f, 0x07, 0xdb, - 0x00, 0x21, 0x30, 0x46, 0x01, 0xf0, 0x43, 0xfc, 0xbb, 0x68, 0x2b, 0x44, 0x98, 0x42, 0x04, 0xd0, - 0x30, 0x46, 0x00, 0xf0, 0xca, 0xfe, 0x00, 0x20, 0xf8, 0xbd, 0x61, 0x42, 0x30, 0x46, 0x01, 0xf0, - 0x36, 0xfc, 0x01, 0x30, 0x0d, 0xd0, 0x10, 0x4a, 0xb9, 0x68, 0x13, 0x68, 0x2d, 0x1b, 0x45, 0xf0, - 0x01, 0x05, 0x30, 0x46, 0x1b, 0x1b, 0x4d, 0x60, 0x13, 0x60, 0x00, 0xf0, 0xb6, 0xfe, 0x01, 0x20, - 0xf8, 0xbd, 0x00, 0x21, 0x30, 0x46, 0x01, 0xf0, 0x22, 0xfc, 0xba, 0x68, 0x83, 0x1a, 0x0f, 0x2b, - 0xde, 0xdd, 0x06, 0x4c, 0x05, 0x49, 0x24, 0x68, 0x43, 0xf0, 0x01, 0x03, 0x00, 0x1b, 0x53, 0x60, - 0x08, 0x60, 0xd5, 0xe7, 0x00, 0xbf, 0x3c, 0x04, 0x00, 0x20, 0xf0, 0x0a, 0x00, 0x20, 0x44, 0x08, - 0x00, 0x20, 0x00, 0x29, 0x5e, 0xd0, 0xf8, 0xb5, 0x0c, 0x46, 0x06, 0x46, 0x00, 0xf0, 0x8f, 0xfe, - 0x54, 0xf8, 0x04, 0x3c, 0xdf, 0xf8, 0xf0, 0xc1, 0x23, 0xf0, 0x01, 0x01, 0xa4, 0xf1, 0x08, 0x00, - 0x42, 0x18, 0xdc, 0xf8, 0x08, 0x70, 0x55, 0x68, 0x97, 0x42, 0x25, 0xf0, 0x03, 0x05, 0x00, 0xf0, - 0x88, 0x80, 0xdf, 0x07, 0x55, 0x60, 0x33, 0xd4, 0x54, 0xf8, 0x08, 0x7c, 0xc0, 0x1b, 0x0c, 0xf1, - 0x08, 0x04, 0x83, 0x68, 0xa3, 0x42, 0x39, 0x44, 0x69, 0xd0, 0x57, 0x19, 0xd0, 0xf8, 0x0c, 0xe0, - 0x7f, 0x68, 0xc3, 0xf8, 0x0c, 0xe0, 0xce, 0xf8, 0x08, 0x30, 0xfb, 0x07, 0x40, 0xf1, 0x96, 0x80, - 0x41, 0xf0, 0x01, 0x03, 0x43, 0x60, 0x11, 0x60, 0xb1, 0xf5, 0x00, 0x7f, 0x33, 0xd2, 0xcb, 0x08, - 0xdc, 0xf8, 0x04, 0x40, 0x01, 0x33, 0x4a, 0x09, 0x01, 0x21, 0x91, 0x40, 0x21, 0x43, 0x0c, 0xeb, - 0xc3, 0x02, 0x5c, 0xf8, 0x33, 0x40, 0xcc, 0xf8, 0x04, 0x10, 0x08, 0x3a, 0xc0, 0xe9, 0x02, 0x42, - 0x4c, 0xf8, 0x33, 0x00, 0xe0, 0x60, 0x30, 0x46, 0xbd, 0xe8, 0xf8, 0x40, 0x00, 0xf0, 0x4d, 0xbe, - 0x53, 0x19, 0x5b, 0x68, 0xdf, 0x07, 0x0e, 0xd4, 0x29, 0x44, 0x0c, 0xf1, 0x08, 0x04, 0x93, 0x68, - 0xa3, 0x42, 0x73, 0xd0, 0xd4, 0x68, 0xdc, 0x60, 0x41, 0xf0, 0x01, 0x02, 0xa3, 0x60, 0x42, 0x60, - 0x41, 0x50, 0xd1, 0xe7, 0x70, 0x47, 0x41, 0xf0, 0x01, 0x03, 0xb1, 0xf5, 0x00, 0x7f, 0x44, 0xf8, - 0x04, 0x3c, 0x11, 0x60, 0xcb, 0xd3, 0xb1, 0xf5, 0x20, 0x6f, 0x4f, 0xea, 0x51, 0x23, 0x4a, 0xd2, - 0x8b, 0x09, 0x03, 0xf1, 0x39, 0x05, 0xed, 0x00, 0x03, 0xf1, 0x38, 0x02, 0x5c, 0xf8, 0x05, 0x30, - 0x0c, 0xeb, 0x05, 0x04, 0x08, 0x3c, 0x9c, 0x42, 0x59, 0xd0, 0x5a, 0x68, 0x22, 0xf0, 0x03, 0x02, - 0x8a, 0x42, 0x02, 0xd9, 0x9b, 0x68, 0x9c, 0x42, 0xf7, 0xd1, 0xdc, 0x68, 0xc0, 0xe9, 0x02, 0x34, - 0xa0, 0x60, 0xd8, 0x60, 0x30, 0x46, 0xbd, 0xe8, 0xf8, 0x40, 0x00, 0xf0, 0x0e, 0xbe, 0x53, 0x19, - 0x5b, 0x68, 0xdb, 0x07, 0x66, 0xd4, 0xd2, 0xe9, 0x02, 0x23, 0x29, 0x44, 0x41, 0xf0, 0x01, 0x04, - 0xd3, 0x60, 0x9a, 0x60, 0x44, 0x60, 0x41, 0x50, 0x30, 0x46, 0xbd, 0xe8, 0xf8, 0x40, 0x00, 0xf0, - 0xfc, 0xbd, 0xdb, 0x07, 0x29, 0x44, 0x07, 0xd4, 0x54, 0xf8, 0x08, 0x3c, 0xc0, 0x1a, 0x19, 0x44, - 0xd0, 0xe9, 0x02, 0x23, 0xd3, 0x60, 0x9a, 0x60, 0x29, 0x4b, 0x1b, 0x68, 0x41, 0xf0, 0x01, 0x02, - 0x8b, 0x42, 0x42, 0x60, 0xcc, 0xf8, 0x08, 0x00, 0x95, 0xd8, 0x25, 0x4b, 0x30, 0x46, 0x19, 0x68, - 0xff, 0xf7, 0xf7, 0xfe, 0x8f, 0xe7, 0x14, 0x2b, 0x0a, 0xd9, 0x54, 0x2b, 0x21, 0xd8, 0x0b, 0x0b, - 0x03, 0xf1, 0x6f, 0x05, 0xed, 0x00, 0x03, 0xf1, 0x6e, 0x02, 0xaf, 0xe7, 0x29, 0x44, 0x8e, 0xe7, - 0x03, 0xf1, 0x5c, 0x05, 0xed, 0x00, 0x03, 0xf1, 0x5b, 0x02, 0xa7, 0xe7, 0x41, 0xf0, 0x01, 0x03, - 0xcc, 0xe9, 0x04, 0x00, 0xc0, 0xe9, 0x02, 0x44, 0x43, 0x60, 0x41, 0x50, 0x73, 0xe7, 0xdc, 0xf8, - 0x04, 0x10, 0x92, 0x10, 0x01, 0x25, 0x05, 0xfa, 0x02, 0xf2, 0x0a, 0x43, 0xcc, 0xf8, 0x04, 0x20, - 0xa4, 0xe7, 0xb3, 0xf5, 0xaa, 0x7f, 0x06, 0xd8, 0xcb, 0x0b, 0x03, 0xf1, 0x78, 0x05, 0xed, 0x00, - 0x03, 0xf1, 0x77, 0x02, 0x8a, 0xe7, 0x40, 0xf2, 0x54, 0x52, 0x93, 0x42, 0x06, 0xd8, 0x8b, 0x0c, - 0x03, 0xf1, 0x7d, 0x05, 0xed, 0x00, 0x03, 0xf1, 0x7c, 0x02, 0x7f, 0xe7, 0x4f, 0xf4, 0x7e, 0x75, - 0x7e, 0x22, 0x7b, 0xe7, 0x41, 0xf0, 0x01, 0x03, 0x43, 0x60, 0x11, 0x60, 0x4b, 0xe7, 0x48, 0x08, - 0x00, 0x20, 0x20, 0x0b, 0x00, 0x20, 0x3c, 0x04, 0x00, 0x20, 0x93, 0x68, 0x00, 0x2b, 0x00, 0xf0, - 0x8a, 0x80, 0x2d, 0xe9, 0xf0, 0x4f, 0x90, 0x46, 0xb1, 0xf9, 0x0c, 0x20, 0x0c, 0x46, 0x11, 0x07, - 0x83, 0xb0, 0x81, 0x46, 0x93, 0xb2, 0x25, 0xd5, 0x22, 0x69, 0x1a, 0xb3, 0x13, 0xf0, 0x02, 0x07, - 0xd8, 0xf8, 0x00, 0x50, 0x2d, 0xd0, 0x00, 0x26, 0xdf, 0xf8, 0xac, 0xb2, 0x37, 0x46, 0xaa, 0x46, - 0x5f, 0x45, 0x3b, 0x46, 0x32, 0x46, 0x28, 0xbf, 0x5b, 0x46, 0x48, 0x46, 0x00, 0x2f, 0x4f, 0xd0, - 0xe1, 0x69, 0x65, 0x6a, 0xa8, 0x47, 0x00, 0x28, 0x5b, 0xdd, 0xd8, 0xf8, 0x08, 0x30, 0x1b, 0x1a, - 0x06, 0x44, 0x3f, 0x1a, 0xc8, 0xf8, 0x08, 0x30, 0x00, 0x2b, 0xe9, 0xd1, 0x00, 0x20, 0x03, 0xb0, - 0xbd, 0xe8, 0xf0, 0x8f, 0x21, 0x46, 0x48, 0x46, 0xfe, 0xf7, 0xb5, 0xfc, 0x00, 0x28, 0x40, 0xf0, - 0x2f, 0x81, 0xb4, 0xf9, 0x0c, 0x20, 0xd8, 0xf8, 0x00, 0x50, 0x93, 0xb2, 0x13, 0xf0, 0x02, 0x07, - 0xd1, 0xd1, 0x13, 0xf0, 0x01, 0x0a, 0x48, 0xd1, 0x56, 0x46, 0x2e, 0xb3, 0x9a, 0x05, 0xa7, 0x68, - 0x40, 0xf1, 0x8c, 0x80, 0xb7, 0x42, 0xbb, 0x46, 0x00, 0xf2, 0xb7, 0x80, 0x13, 0xf4, 0x90, 0x6f, - 0x40, 0xf0, 0xcb, 0x80, 0x20, 0x68, 0x51, 0x46, 0x5a, 0x46, 0x00, 0xf0, 0xcc, 0xfc, 0xa1, 0x68, - 0x23, 0x68, 0xc9, 0x1b, 0x5b, 0x44, 0x37, 0x46, 0xa1, 0x60, 0x23, 0x60, 0x00, 0x26, 0xd8, 0xf8, - 0x08, 0x30, 0xdb, 0x1b, 0xba, 0x44, 0xc8, 0xf8, 0x08, 0x30, 0x00, 0x2b, 0xc6, 0xd0, 0xb4, 0xf9, - 0x0c, 0x30, 0x9b, 0xb2, 0x00, 0x2e, 0xd9, 0xd1, 0xd5, 0xe9, 0x00, 0xa6, 0x08, 0x35, 0xd4, 0xe7, - 0xda, 0xe9, 0x00, 0x67, 0x0a, 0xf1, 0x08, 0x0a, 0xa2, 0xe7, 0x29, 0x46, 0x5a, 0x46, 0x00, 0xf0, - 0xaa, 0xfc, 0x23, 0x68, 0x5b, 0x44, 0x23, 0x60, 0x21, 0x46, 0x48, 0x46, 0xff, 0xf7, 0x81, 0xfd, - 0x58, 0xb3, 0xb4, 0xf9, 0x0c, 0x30, 0x43, 0xf0, 0x40, 0x03, 0x4f, 0xf0, 0xff, 0x30, 0xa3, 0x81, - 0x03, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x00, 0x20, 0x70, 0x47, 0x3e, 0x46, 0xaa, 0x46, 0x38, 0x46, - 0x3d, 0x46, 0x00, 0x97, 0x6e, 0xb3, 0x00, 0x28, 0x33, 0xd0, 0x00, 0x9a, 0x20, 0x68, 0xd4, 0xe9, - 0x04, 0x13, 0xb2, 0x42, 0x28, 0xbf, 0x32, 0x46, 0x88, 0x42, 0x04, 0xd9, 0xa1, 0x68, 0x03, 0xeb, - 0x01, 0x0b, 0x5a, 0x45, 0xd1, 0xdc, 0x93, 0x42, 0x6a, 0xdc, 0xe1, 0x69, 0x67, 0x6a, 0x2a, 0x46, - 0x48, 0x46, 0xb8, 0x47, 0xb0, 0xf1, 0x00, 0x0b, 0xd3, 0xdd, 0x00, 0x9b, 0xb3, 0xeb, 0x0b, 0x03, - 0x00, 0x93, 0x56, 0xd0, 0x01, 0x20, 0xd8, 0xf8, 0x08, 0x30, 0xa3, 0xeb, 0x0b, 0x03, 0x5d, 0x44, - 0xa6, 0xeb, 0x0b, 0x06, 0xc8, 0xf8, 0x08, 0x30, 0x00, 0x2b, 0x3f, 0xf4, 0x6f, 0xaf, 0x00, 0x2e, - 0xd1, 0xd1, 0x0a, 0xf1, 0x08, 0x03, 0x53, 0xe9, 0x02, 0x56, 0x9a, 0x46, 0x08, 0x33, 0x00, 0x2e, - 0xf9, 0xd0, 0x32, 0x46, 0x0a, 0x21, 0x28, 0x46, 0x00, 0xf0, 0x05, 0xfc, 0x00, 0x28, 0x00, 0xf0, - 0x8e, 0x80, 0x01, 0x30, 0x43, 0x1b, 0x00, 0x93, 0x1a, 0x46, 0xbf, 0xe7, 0x20, 0x68, 0x23, 0x69, - 0x98, 0x42, 0x14, 0xd8, 0x61, 0x69, 0xb1, 0x42, 0x11, 0xd8, 0x6f, 0xf0, 0x00, 0x43, 0xb3, 0x42, - 0x28, 0xbf, 0x33, 0x46, 0x67, 0x6a, 0x93, 0xfb, 0xf1, 0xf3, 0x52, 0x46, 0x01, 0xfb, 0x03, 0xf3, - 0x48, 0x46, 0xe1, 0x69, 0xb8, 0x47, 0x07, 0x1e, 0x93, 0xdd, 0xf6, 0x1b, 0x6f, 0xe7, 0xb7, 0x42, - 0x28, 0xbf, 0x37, 0x46, 0x3a, 0x46, 0x51, 0x46, 0x00, 0xf0, 0x2d, 0xfc, 0xa3, 0x68, 0x22, 0x68, - 0xdb, 0x1b, 0x3a, 0x44, 0xa3, 0x60, 0x22, 0x60, 0x00, 0x2b, 0xee, 0xd1, 0x21, 0x46, 0x48, 0x46, - 0xff, 0xf7, 0xff, 0xfc, 0x00, 0x28, 0xe8, 0xd0, 0x7b, 0xe7, 0x20, 0x68, 0x37, 0x46, 0xb3, 0x46, - 0x49, 0xe7, 0x21, 0x46, 0x48, 0x46, 0xff, 0xf7, 0xf4, 0xfc, 0x00, 0x28, 0xa3, 0xd0, 0x70, 0xe7, - 0x29, 0x46, 0x01, 0x92, 0x00, 0xf0, 0x0f, 0xfc, 0x01, 0x9a, 0xa1, 0x68, 0x23, 0x68, 0x89, 0x1a, - 0x13, 0x44, 0xa1, 0x60, 0x23, 0x60, 0x93, 0x46, 0x8f, 0xe7, 0xd4, 0xe9, 0x04, 0x17, 0x22, 0x68, - 0x07, 0xeb, 0x47, 0x07, 0xa2, 0xeb, 0x01, 0x0b, 0x07, 0xeb, 0xd7, 0x77, 0x0b, 0xf1, 0x01, 0x00, - 0x7f, 0x10, 0x30, 0x44, 0xb8, 0x42, 0x3a, 0x46, 0x84, 0xbf, 0x07, 0x46, 0x3a, 0x46, 0x5b, 0x05, - 0x1b, 0xd5, 0x11, 0x46, 0x48, 0x46, 0x00, 0xf0, 0xe2, 0xf8, 0x58, 0xb3, 0x5a, 0x46, 0x21, 0x69, - 0x00, 0x90, 0xfc, 0xf7, 0xb0, 0xfb, 0xa2, 0x89, 0x00, 0x9b, 0x22, 0xf4, 0x90, 0x62, 0x42, 0xf0, - 0x80, 0x02, 0xa2, 0x81, 0xa7, 0xeb, 0x0b, 0x02, 0x03, 0xeb, 0x0b, 0x00, 0x67, 0x61, 0x23, 0x61, - 0x20, 0x60, 0xa2, 0x60, 0x37, 0x46, 0xb3, 0x46, 0x05, 0xe7, 0x48, 0x46, 0x00, 0xf0, 0x8f, 0xff, - 0x03, 0x46, 0x00, 0x28, 0xee, 0xd1, 0x21, 0x69, 0x48, 0x46, 0xff, 0xf7, 0xa2, 0xfd, 0xb4, 0xf9, - 0x0c, 0x30, 0x0c, 0x22, 0x23, 0xf0, 0x80, 0x03, 0xc9, 0xf8, 0x00, 0x20, 0x23, 0xe7, 0x72, 0x1c, - 0x00, 0x92, 0x33, 0xe7, 0x0c, 0x23, 0xc9, 0xf8, 0x00, 0x30, 0xb4, 0xf9, 0x0c, 0x30, 0x1a, 0xe7, - 0x4f, 0xf0, 0xff, 0x30, 0xc3, 0xe6, 0x00, 0xfc, 0xff, 0x7f, 0x2d, 0xe9, 0xf8, 0x43, 0x07, 0x46, - 0x88, 0x46, 0x00, 0xf5, 0x38, 0x76, 0x4f, 0xf0, 0x00, 0x09, 0xd6, 0xe9, 0x01, 0x54, 0x01, 0x3d, - 0x11, 0xd4, 0xa3, 0x89, 0x01, 0x2b, 0x05, 0xf1, 0xff, 0x35, 0x08, 0xd9, 0xb4, 0xf9, 0x0e, 0x30, - 0x01, 0x33, 0x04, 0xd0, 0x21, 0x46, 0x38, 0x46, 0xc0, 0x47, 0x49, 0xea, 0x00, 0x09, 0x6b, 0x1c, - 0x04, 0xf1, 0x68, 0x04, 0xed, 0xd1, 0x36, 0x68, 0x00, 0x2e, 0xe6, 0xd1, 0x48, 0x46, 0xbd, 0xe8, - 0xf8, 0x83, 0x00, 0x48, 0x70, 0x47, 0x3c, 0x09, 0x00, 0x20, 0x70, 0x47, 0x00, 0xbf, 0x70, 0x47, - 0x00, 0xbf, 0x70, 0x47, 0x00, 0xbf, 0x70, 0x47, 0x00, 0xbf, 0x70, 0xb5, 0x0c, 0x46, 0xb1, 0xf9, - 0x0e, 0x10, 0x00, 0x29, 0x96, 0xb0, 0x15, 0x46, 0x1e, 0x46, 0x14, 0xdb, 0x6a, 0x46, 0x01, 0xf0, - 0xbe, 0xfb, 0x00, 0x28, 0x0f, 0xdb, 0x01, 0x9a, 0x02, 0xf4, 0x70, 0x42, 0xa2, 0xf5, 0x00, 0x52, - 0xb2, 0xfa, 0x82, 0xf2, 0x52, 0x09, 0x4f, 0xf4, 0x80, 0x63, 0x4f, 0xf4, 0x00, 0x60, 0x32, 0x60, - 0x2b, 0x60, 0x16, 0xb0, 0x70, 0xbd, 0xa1, 0x89, 0x00, 0x23, 0x11, 0xf0, 0x80, 0x00, 0x33, 0x60, - 0x04, 0xd0, 0x40, 0x22, 0x18, 0x46, 0x2a, 0x60, 0x16, 0xb0, 0x70, 0xbd, 0x4f, 0xf4, 0x80, 0x63, - 0x2b, 0x60, 0x16, 0xb0, 0x70, 0xbd, 0x70, 0xb5, 0x8b, 0x89, 0x9d, 0x07, 0x82, 0xb0, 0x0c, 0x46, - 0x07, 0xd5, 0x01, 0xf1, 0x43, 0x03, 0x01, 0x22, 0xc1, 0xe9, 0x04, 0x32, 0x0b, 0x60, 0x02, 0xb0, - 0x70, 0xbd, 0x01, 0xab, 0x6a, 0x46, 0x06, 0x46, 0xff, 0xf7, 0xbf, 0xff, 0x00, 0x99, 0x05, 0x46, - 0x30, 0x46, 0x00, 0xf0, 0x34, 0xf8, 0x80, 0xb1, 0xb4, 0xf9, 0x0c, 0x20, 0x17, 0x4b, 0xf3, 0x63, - 0x01, 0x99, 0x20, 0x60, 0x42, 0xf0, 0x80, 0x03, 0x00, 0x9a, 0xa3, 0x81, 0xc4, 0xe9, 0x04, 0x02, - 0x99, 0xb9, 0x2b, 0x43, 0xa3, 0x81, 0x02, 0xb0, 0x70, 0xbd, 0xb4, 0xf9, 0x0c, 0x30, 0x9a, 0x05, - 0xdd, 0xd4, 0x23, 0xf0, 0x03, 0x03, 0x04, 0xf1, 0x43, 0x02, 0x43, 0xf0, 0x02, 0x03, 0x01, 0x21, - 0xc4, 0xe9, 0x04, 0x21, 0xa3, 0x81, 0x22, 0x60, 0xd1, 0xe7, 0xb4, 0xf9, 0x0e, 0x10, 0x30, 0x46, + 0xbe,0xef,0xed,0x05,0x20,0x2e,0x98,0xda,0x5a,0x03,0x1f,0xea,0x24,0x02,0x10,0x00, + 0xff,0xc0,0x00,0x00,0x1f,0xe0,0x9f,0x81,0x00,0x27,0x01,0x20,0xbb,0xf1,0x00,0x0f, + 0x40,0xf0,0xba,0x80,0x07,0x9a,0x10,0x44,0x10,0xf0,0x1f,0x00,0x00,0xf0,0x99,0x80, + 0xc0,0xf1,0x20,0x03,0x04,0x2b,0x40,0xf3,0xec,0x83,0x09,0x9b,0xc0,0xf1,0x1c,0x00, + 0x03,0x44,0x02,0x44,0x09,0x93,0x06,0x44,0x07,0x92,0x09,0x9b,0x00,0x2b,0x05,0xdd, + 0x51,0x46,0x1a,0x46,0x20,0x46,0x01,0xf0,0xf0,0xfd,0x82,0x46,0x07,0x9b,0x00,0x2b, + 0x05,0xdd,0x41,0x46,0x1a,0x46,0x20,0x46,0x01,0xf0,0xe7,0xfd,0x80,0x46,0x0d,0x9b, + 0x00,0x2b,0x40,0xf0,0x49,0x81,0x0a,0x9b,0x00,0x2b,0x40,0xf3,0x1a,0x81,0x0b,0x9b, + 0x00,0x2b,0x40,0xf0,0x9b,0x80,0x08,0x9b,0x01,0x33,0x08,0x93,0x06,0x9f,0xdd,0xf8, + 0x28,0x90,0x01,0x26,0x03,0xe0,0x01,0xf0,0x3e,0xfc,0x01,0x36,0x82,0x46,0x41,0x46, + 0x50,0x46,0xff,0xf7,0xd0,0xfb,0x4e,0x45,0x00,0xf1,0x30,0x0c,0x07,0xf8,0x01,0xcb, + 0x51,0x46,0x4f,0xf0,0x00,0x03,0x4f,0xf0,0x0a,0x02,0x20,0x46,0xeb,0xdb,0x0a,0x9b, + 0xcd,0xf8,0x08,0xc0,0x00,0x2b,0xc8,0xbf,0x9b,0x46,0x06,0x9b,0xd8,0xbf,0x4f,0xf0, + 0x01,0x0b,0x9b,0x44,0x4f,0xf0,0x00,0x09,0x51,0x46,0x01,0x22,0x20,0x46,0x01,0xf0, + 0xac,0xfd,0x41,0x46,0x82,0x46,0x01,0xf0,0x12,0xfe,0x00,0x28,0x40,0xf3,0x97,0x81, + 0x1b,0xf8,0x01,0x2c,0x06,0x9b,0x0b,0xf1,0xff,0x3b,0x04,0xe0,0x5b,0x45,0x00,0xf0, + 0x99,0x81,0x1b,0xf8,0x01,0x2d,0x39,0x2a,0x0b,0xf1,0x01,0x06,0xf6,0xd0,0x01,0x32, + 0x8b,0xf8,0x00,0x20,0x41,0x46,0x20,0x46,0x01,0xf0,0xf3,0xfb,0x65,0xb1,0xb9,0xf1, + 0x00,0x0f,0x05,0xd0,0xa9,0x45,0x03,0xd0,0x49,0x46,0x20,0x46,0x01,0xf0,0xe9,0xfb, + 0x29,0x46,0x20,0x46,0x01,0xf0,0xe5,0xfb,0x51,0x46,0x20,0x46,0x01,0xf0,0xe1,0xfb, + 0x26,0x9b,0x00,0x22,0x32,0x70,0x1a,0x46,0x08,0x9b,0x13,0x60,0x28,0x9b,0x00,0x2b, + 0x3f,0xf4,0x46,0xac,0x06,0x98,0x1e,0x60,0x17,0xb0,0xbd,0xec,0x04,0x8b,0xbd,0xe8, + 0xf0,0x8f,0x1c,0x20,0x09,0x9b,0x03,0x44,0x09,0x93,0x07,0x9b,0x03,0x44,0x06,0x44, + 0x07,0x93,0x6a,0xe7,0x01,0x25,0xbe,0xe4,0xc0,0xf1,0x20,0x00,0x06,0xfa,0x00,0xf0, + 0x54,0xe4,0x01,0x46,0x5a,0x46,0x20,0x46,0x01,0xf0,0x07,0xfd,0x24,0x9b,0x01,0x2b, + 0x80,0x46,0x40,0xf3,0xcc,0x81,0x00,0x27,0xd8,0xf8,0x10,0x30,0x08,0xeb,0x83,0x03, + 0x18,0x69,0x01,0xf0,0xfe,0xfb,0xc0,0xf1,0x20,0x00,0x3b,0xe7,0x24,0x9b,0x02,0x2b, + 0x00,0xf3,0x22,0x83,0x0f,0x9b,0xcd,0xf8,0x20,0x90,0x0a,0x93,0x08,0x9b,0x01,0x33, + 0x08,0x93,0x00,0x2e,0x00,0xf3,0x14,0x81,0x00,0x2f,0x40,0xf0,0x02,0x82,0x2f,0x46, + 0x04,0x9b,0x24,0x99,0x06,0x9e,0x03,0xf0,0x01,0x02,0x0c,0x92,0x0a,0x43,0x0b,0x92, + 0x0a,0x9a,0x73,0x1e,0x1a,0x44,0x09,0x92,0x41,0x46,0x50,0x46,0xff,0xf7,0x2b,0xfb, + 0x29,0x46,0x83,0x46,0x50,0x46,0x01,0xf0,0x8a,0xfd,0x41,0x46,0x81,0x46,0x3a,0x46, + 0x20,0x46,0x01,0xf0,0xa2,0xfd,0x0b,0xf1,0x30,0x03,0x02,0x93,0xc3,0x68,0x01,0x46, + 0x00,0x2b,0x41,0xd1,0x07,0x90,0x50,0x46,0x01,0xf0,0x79,0xfd,0x07,0x99,0x04,0x90, + 0x20,0x46,0x01,0xf0,0x6e,0xfb,0x04,0x9b,0x1b,0xb9,0x0b,0x9a,0x00,0x2a,0x00,0xf0, + 0xc8,0x82,0xb9,0xf1,0x00,0x0f,0xc0,0xf2,0x91,0x81,0x24,0x9a,0x42,0xea,0x09,0x09, + 0x0c,0x9a,0x52,0xea,0x09,0x02,0x00,0xf0,0x89,0x81,0x00,0x2b,0x00,0xf3,0xd9,0x81, + 0x02,0x9b,0x33,0x70,0x09,0x9b,0x06,0xf1,0x01,0x09,0xb3,0x42,0xcb,0x46,0x00,0xf0, + 0xdb,0x81,0x51,0x46,0x00,0x23,0x0a,0x22,0x20,0x46,0x01,0xf0,0x54,0xfb,0xbd,0x42, + 0x82,0x46,0x29,0x46,0x4f,0xf0,0x00,0x03,0x4f,0xf0,0x0a,0x02,0x20,0x46,0x10,0xd0, + 0x01,0xf0,0x49,0xfb,0x39,0x46,0x05,0x46,0x00,0x23,0x0a,0x22,0x20,0x46,0x01,0xf0, + 0x42,0xfb,0x4e,0x46,0x07,0x46,0xa7,0xe7,0x20,0x46,0x01,0xf0,0x32,0xfb,0x01,0x23, + 0xc7,0xe7,0x01,0xf0,0x38,0xfb,0x4e,0x46,0x05,0x46,0x07,0x46,0x9c,0xe7,0x80,0x37, + 0x01,0x10,0x24,0x9b,0x02,0x2b,0x40,0xf3,0x86,0x80,0x0a,0x9b,0x00,0x2b,0x7f,0xf4, + 0xb4,0xad,0x41,0x46,0x05,0x22,0x20,0x46,0x01,0xf0,0x25,0xfb,0x01,0x46,0x80,0x46, + 0x50,0x46,0x01,0xf0,0x1c,0xfd,0x00,0x28,0x7f,0xf7,0xa7,0xad,0x06,0x9f,0x3b,0x46, + 0x31,0x22,0x03,0xf8,0x01,0x2b,0x08,0x9a,0x06,0x93,0x02,0xf1,0x01,0x09,0x41,0x46, + 0x20,0x46,0x01,0xf0,0x06,0xfb,0x09,0xf1,0x01,0x03,0x06,0x9e,0x08,0x93,0x06,0x97, + 0x00,0x2d,0x7f,0xf4,0x15,0xaf,0x17,0xe7,0x41,0x46,0x50,0x46,0x01,0xf0,0xff,0xfc, + 0x00,0x28,0xbf,0xf6,0xb0,0xae,0x51,0x46,0x00,0x23,0x0a,0x22,0x20,0x46,0x01,0xf0, + 0xfa,0xfa,0x08,0x9b,0x03,0xf1,0xff,0x39,0x0b,0x9b,0x82,0x46,0x00,0x2b,0x40,0xf0, + 0x50,0x82,0x0f,0x9b,0x00,0x2b,0x40,0xf3,0x59,0x82,0x0a,0x93,0xa6,0xe6,0x0c,0x9a, + 0x51,0x46,0x20,0x46,0x01,0xf0,0x29,0xfc,0x82,0x46,0x58,0xe6,0xb4,0x4b,0x06,0x93, + 0x03,0x33,0xff,0xf7,0xeb,0xbb,0xdd,0xe9,0x04,0x12,0x00,0x29,0x7f,0xf4,0x5c,0xae, + 0xc2,0xf3,0x13,0x03,0x00,0x2b,0x00,0xf0,0xec,0x80,0x04,0x9f,0x55,0xe6,0x01,0x23, + 0x0b,0x93,0x25,0x9b,0x08,0x9a,0x13,0x44,0x0f,0x93,0x01,0x33,0x01,0x2b,0x1e,0x46, + 0x0a,0x93,0xb8,0xbf,0x01,0x26,0x00,0x21,0x17,0x2e,0x61,0x64,0x0a,0xdd,0x01,0x22, + 0x04,0x23,0x5b,0x00,0x03,0xf1,0x14,0x00,0xb0,0x42,0x11,0x46,0x02,0xf1,0x01,0x02, + 0xf7,0xd9,0x61,0x64,0x0a,0x9e,0x16,0xe4,0x01,0x23,0x0b,0x93,0x25,0x9b,0x00,0x2b, + 0x30,0xdd,0x0f,0x93,0x0a,0x93,0x1e,0x46,0xe5,0xe7,0x00,0x23,0x0b,0x93,0xd8,0xe7, + 0x00,0x23,0x0b,0x93,0xf2,0xe7,0x0b,0x9b,0x00,0x2b,0x7f,0xf4,0xf7,0xae,0x41,0x46, + 0x50,0x46,0xff,0xf7,0x38,0xfa,0x08,0x9a,0xdd,0xf8,0x18,0xb0,0x00,0xf1,0x30,0x03, + 0x01,0x32,0x0b,0xf8,0x01,0x3b,0x02,0x93,0x08,0x92,0x4f,0xf0,0x00,0x09,0x73,0xe6, + 0x29,0x46,0x32,0x46,0x20,0x46,0x01,0xf0,0x20,0xfc,0x05,0x46,0xe4,0xe6,0xdf,0x1b, + 0x99,0xe5,0x9d,0xed,0x02,0x7b,0x4f,0xf0,0x02,0x09,0xb0,0xee,0x47,0x8a,0xf0,0xee, + 0x67,0x8a,0x08,0xe4,0x01,0x26,0x25,0x96,0x0a,0x96,0xff,0xf7,0xd9,0xbb,0x03,0xd1, + 0x02,0x9b,0xdb,0x07,0x3f,0xf5,0x64,0xae,0x5e,0x46,0x1b,0xf8,0x01,0x3d,0x30,0x2b, + 0xfa,0xd0,0x6f,0xe6,0x08,0x9b,0x01,0x33,0x08,0x93,0x06,0x9b,0x31,0x22,0x1a,0x70, + 0x68,0xe6,0x0e,0x9a,0x00,0x2a,0x00,0xf0,0x63,0x81,0x03,0xf2,0x33,0x43,0x07,0x9a, + 0x0c,0x9f,0x1a,0x44,0x07,0x92,0x09,0x9a,0x16,0x46,0x1a,0x44,0x09,0x92,0x76,0xe5, + 0x48,0x46,0x02,0xf0,0x3a,0xfc,0x3a,0x46,0x43,0x46,0x02,0xf0,0xa0,0xfc,0x6c,0x4b, + 0x00,0x22,0x02,0xf0,0xe6,0xfa,0xa1,0xf1,0x50,0x73,0xcd,0xe9,0x10,0x01,0x11,0x93, + 0x69,0x4b,0x38,0x46,0x41,0x46,0x00,0x22,0x02,0xf0,0xd9,0xfa,0xdd,0xe9,0x10,0x89, + 0x42,0x46,0x4b,0x46,0x06,0x46,0x0f,0x46,0x02,0xf0,0x19,0xff,0x00,0x28,0x40,0xf0, + 0x76,0x81,0x42,0x46,0x09,0xf1,0x00,0x43,0x30,0x46,0x39,0x46,0x02,0xf0,0xf1,0xfe, + 0x00,0x28,0x3f,0xf4,0x8f,0xac,0x4f,0xf0,0x00,0x08,0x45,0x46,0xb5,0xe4,0x00,0xf0, + 0x53,0x81,0x08,0x9b,0x5d,0x42,0x58,0x4b,0x05,0xf0,0x0f,0x02,0x03,0xeb,0xc2,0x03, + 0xd3,0xe9,0x00,0x23,0xdd,0xe9,0x02,0x01,0x02,0xf0,0x69,0xfc,0x2d,0x11,0x07,0x46, + 0x88,0x46,0x00,0xf0,0x8e,0x81,0x51,0x4e,0x02,0x46,0x0b,0x46,0x4f,0xf0,0x00,0x0c, + 0x4f,0xf0,0x02,0x09,0x15,0xf0,0x01,0x0f,0x10,0x46,0x19,0x46,0x09,0xd0,0xd6,0xe9, + 0x00,0x23,0x02,0xf0,0x54,0xfc,0x09,0xf1,0x01,0x09,0x02,0x46,0x0b,0x46,0x4f,0xf0, + 0x01,0x0c,0x6d,0x10,0x06,0xf1,0x08,0x06,0xec,0xd1,0xbc,0xf1,0x00,0x0f,0x3f,0xf4, + 0x9d,0xab,0x17,0x46,0x98,0x46,0xff,0xf7,0x99,0xbb,0x0d,0x90,0x1d,0xe5,0xdd,0xe9, + 0x04,0x12,0x00,0x29,0x7f,0xf4,0x2f,0xae,0xc2,0xf3,0x13,0x03,0x00,0x2b,0x7f,0xf4, + 0x2a,0xae,0x3b,0x4f,0x17,0x40,0x00,0x2f,0x3f,0xf4,0x67,0xad,0x09,0x9b,0x01,0x33, + 0x09,0x93,0x07,0x9b,0x01,0x33,0x07,0x93,0x01,0x27,0x5e,0xe5,0x00,0x2b,0x12,0xdd, + 0x51,0x46,0x01,0x22,0x20,0x46,0x01,0xf0,0x68,0xfb,0x41,0x46,0x82,0x46,0x01,0xf0, + 0xce,0xfb,0x00,0x28,0x40,0xf3,0x1e,0x81,0x02,0x9b,0x39,0x2b,0x00,0xf0,0x00,0x81, + 0x0b,0xf1,0x31,0x03,0x02,0x93,0x02,0x9b,0x06,0xf8,0x01,0x3b,0xa9,0x46,0x3d,0x46, + 0xc0,0xe5,0x25,0x46,0x19,0xee,0x10,0xaa,0x19,0xee,0x90,0x4a,0xd9,0x46,0x02,0x46, + 0x0b,0x46,0x02,0xf0,0x4e,0xfa,0x53,0xec,0x18,0x2b,0x06,0x46,0x0f,0x46,0x02,0xf0, + 0x8e,0xfe,0x58,0xb9,0x53,0xec,0x18,0x2b,0x30,0x46,0x39,0x46,0x02,0xf0,0x5f,0xfe, + 0x00,0x28,0x3f,0xf4,0x93,0xac,0xe9,0x07,0x7f,0xf5,0x90,0xac,0x06,0x9b,0xff,0xf7, + 0xee,0xbb,0x69,0x68,0x20,0x46,0x01,0xf0,0x6e,0xf9,0x2b,0x69,0x02,0x33,0x9a,0x00, + 0x06,0x46,0x05,0xf1,0x0c,0x01,0x0c,0x30,0xfd,0xf7,0xb5,0xf8,0x31,0x46,0x01,0x22, + 0x20,0x46,0x01,0xf0,0x22,0xfb,0x07,0x46,0xea,0xe5,0xdd,0xe9,0x09,0x32,0x9e,0x1a, + 0xa5,0xe4,0x02,0x9b,0x39,0x2b,0x00,0xf0,0xbb,0x80,0x02,0x9b,0x01,0x33,0xa9,0x46, + 0x06,0xf8,0x01,0x3b,0x3d,0x46,0x7d,0xe5,0xa9,0x46,0x3d,0x46,0x5c,0xe5,0xa4,0x37, + 0x01,0x10,0x00,0x00,0x1c,0x40,0x00,0x00,0x14,0x40,0xe0,0x37,0x01,0x10,0xb8,0x37, + 0x01,0x10,0x00,0x00,0xf0,0x7f,0x12,0x9b,0x81,0x49,0x01,0xeb,0xc3,0x01,0x51,0xe9, + 0x02,0x01,0xdd,0xe9,0x10,0x23,0x02,0xf0,0xb2,0xfb,0x02,0x46,0x0b,0x46,0x38,0x46, + 0x41,0x46,0x43,0xec,0x18,0x2b,0x02,0xf0,0x5a,0xfe,0x05,0x46,0x02,0xf0,0x3d,0xfb, + 0x0b,0x46,0x02,0x46,0x41,0x46,0x38,0x46,0x02,0xf0,0xe9,0xf9,0x12,0x9b,0xdd,0xf8, + 0x18,0x90,0x30,0x35,0x01,0x2b,0x09,0xf8,0x01,0x5b,0x06,0x46,0x0f,0x46,0x23,0xd0, + 0x12,0x9b,0x06,0x9a,0xcd,0xf8,0x40,0xb0,0x13,0x44,0x9b,0x46,0x4d,0x46,0x6c,0x4b, + 0x00,0x22,0x30,0x46,0x39,0x46,0x02,0xf0,0x8a,0xfb,0x89,0x46,0x80,0x46,0x02,0xf0, + 0x36,0xfe,0x07,0x46,0x02,0xf0,0x19,0xfb,0x30,0x37,0x02,0x46,0x0b,0x46,0x40,0x46, + 0x49,0x46,0x02,0xf0,0xc4,0xf9,0x05,0xf8,0x01,0x7b,0x5d,0x45,0x06,0x46,0x0f,0x46, + 0xe5,0xd1,0xdd,0xf8,0x40,0xb0,0xa9,0x46,0x5f,0x4b,0x00,0x22,0x51,0xec,0x18,0x0b, + 0x02,0xf0,0xb7,0xf9,0x32,0x46,0x3b,0x46,0x02,0xf0,0xdb,0xfd,0x00,0x28,0x64,0xd1, + 0x53,0xec,0x18,0x2b,0x58,0x49,0x00,0x20,0x02,0xf0,0xa9,0xf9,0x32,0x46,0x3b,0x46, + 0x02,0xf0,0xed,0xfd,0x00,0x28,0x3f,0xf4,0x6d,0xab,0x4e,0x46,0x09,0xf1,0xff,0x39, + 0x16,0xf8,0x01,0x3c,0x30,0x2b,0xf8,0xd0,0x13,0x9b,0x01,0x33,0x08,0x93,0x13,0xe5, + 0x14,0x9b,0xc3,0xf1,0x36,0x03,0x9a,0xe6,0x0a,0x9b,0x00,0x2b,0x3f,0xf4,0xa0,0xae, + 0x0f,0x9d,0x00,0x2d,0x7f,0xf7,0x56,0xab,0x46,0x4b,0x38,0x46,0x41,0x46,0x00,0x22, + 0x02,0xf0,0x3d,0xfb,0x02,0x46,0x17,0x46,0x88,0x46,0x09,0xf1,0x01,0x00,0x02,0xf0, + 0xcc,0xfa,0x3a,0x46,0x43,0x46,0x02,0xf0,0x32,0xfb,0x3f,0x4b,0x00,0x22,0x02,0xf0, + 0x78,0xf9,0xa1,0xf1,0x50,0x73,0xcd,0xe9,0x10,0x01,0x11,0x93,0x08,0x9b,0x01,0x3b, + 0xcd,0xe9,0x12,0x53,0xff,0xf7,0x9d,0xba,0xdd,0xe9,0x02,0x78,0x4f,0xf0,0x02,0x09, + 0xff,0xf7,0x74,0xba,0x08,0x9b,0x01,0x33,0x08,0x93,0x31,0x22,0xff,0xf7,0x1e,0xbb, + 0xb3,0x46,0x39,0x22,0xa9,0x46,0x0b,0xf8,0x01,0x2b,0x3d,0x46,0xb2,0xe4,0x4f,0xf0, + 0x00,0x08,0x45,0x46,0xa2,0xe5,0xa1,0x46,0x19,0xee,0x10,0xaa,0x19,0xee,0x90,0x4a, + 0x13,0x9b,0x01,0x33,0x08,0x93,0x4e,0x46,0xc6,0xe4,0x13,0x9b,0x08,0x93,0x06,0x9b, + 0xff,0xf7,0xfd,0xba,0x7f,0xf4,0xe7,0xae,0x02,0x9b,0xda,0x07,0x7f,0xf5,0xe3,0xae, + 0xda,0xe6,0x02,0x9b,0x39,0x2b,0xdb,0xd0,0xb9,0xf1,0x00,0x0f,0x3f,0xf7,0xd8,0xae, + 0xd9,0xe6,0x29,0x46,0x00,0x23,0x0a,0x22,0x20,0x46,0x01,0xf0,0x9c,0xf8,0x0f,0x9b, + 0x00,0x2b,0x05,0x46,0x7f,0xf7,0xe2,0xac,0x0a,0x93,0xea,0xe4,0x24,0x9b,0x02,0x2b, + 0x02,0xdc,0xcd,0xf8,0x20,0x90,0xea,0xe5,0x0f,0x9b,0xcd,0xf8,0x20,0x90,0x0a,0x93, + 0x5b,0xe5,0x4f,0xf0,0x02,0x09,0xff,0xf7,0x29,0xba,0x10,0x4b,0x06,0x93,0xff,0xf7, + 0xe7,0xb8,0x3f,0xf4,0x1a,0xac,0xc0,0xf1,0x3c,0x00,0xa3,0xe4,0x00,0x25,0x65,0x64, + 0x29,0x46,0x20,0x46,0x01,0xf0,0x47,0xf8,0x4f,0xf0,0xff,0x33,0x0f,0x93,0x0a,0x93, + 0x01,0x23,0x06,0x90,0x25,0x95,0x20,0x64,0x0b,0x93,0xff,0xf7,0xcb,0xba,0xe0,0x37, + 0x01,0x10,0x00,0x00,0x24,0x40,0x00,0x00,0xe0,0x3f,0x00,0x00,0x1c,0x40,0xa8,0x37, + 0x01,0x10,0xb1,0xf9,0x0c,0x20,0x2d,0xe9,0xf0,0x41,0x0d,0x46,0x11,0x07,0x80,0x46, + 0x47,0xd4,0x6b,0x68,0x42,0xf4,0x00,0x62,0x00,0x2b,0xaa,0x81,0x5d,0xdd,0xac,0x6a, + 0x00,0x2c,0x57,0xd0,0x00,0x23,0xd8,0xf8,0x00,0x60,0xc8,0xf8,0x00,0x30,0x93,0xb2, + 0x12,0xf4,0x80,0x52,0x55,0xd1,0x01,0x23,0xe9,0x69,0x40,0x46,0xa0,0x47,0x43,0x1c, + 0x66,0xd0,0xab,0x89,0xac,0x6a,0x5f,0x07,0x05,0xd5,0x6a,0x68,0x2b,0x6b,0x80,0x1a, + 0x0b,0xb1,0xeb,0x6b,0xc0,0x1a,0xe9,0x69,0x02,0x46,0x00,0x23,0x40,0x46,0xa0,0x47, + 0x41,0x1c,0x40,0xd1,0xd8,0xf8,0x00,0x30,0x00,0x2b,0x3c,0xd0,0x1d,0x2b,0x01,0xd0, + 0x16,0x2b,0x55,0xd1,0xab,0x89,0x2a,0x69,0x2a,0x60,0x23,0xf4,0x00,0x63,0x00,0x22, + 0xab,0x81,0x6a,0x60,0x29,0x6b,0xc8,0xf8,0x00,0x60,0x19,0xb3,0x05,0xf1,0x40,0x03, + 0x99,0x42,0x02,0xd0,0x40,0x46,0x00,0xf0,0x44,0xf9,0x00,0x20,0x28,0x63,0xbd,0xe8, + 0xf0,0x81,0x2f,0x69,0xb7,0xb1,0x93,0xb2,0x2e,0x68,0x2f,0x60,0x9a,0x07,0x0c,0xbf, + 0x6b,0x69,0x00,0x23,0xf6,0x1b,0xab,0x60,0x0a,0xe0,0x6c,0x6a,0xe9,0x69,0x33,0x46, + 0x3a,0x46,0x40,0x46,0xa0,0x47,0x04,0x1e,0xa6,0xeb,0x04,0x06,0x27,0x44,0x17,0xdd, + 0x00,0x2e,0xf2,0xdc,0x00,0x20,0xbd,0xe8,0xf0,0x81,0xeb,0x6b,0x00,0x2b,0x9e,0xdc, + 0xf8,0xe7,0x28,0x6d,0xaf,0xe7,0xb5,0xf9,0x0c,0x30,0x2a,0x69,0x2a,0x60,0x23,0xf4, + 0x00,0x63,0x00,0x22,0xab,0x81,0xdb,0x04,0x6a,0x60,0xc3,0xd5,0x28,0x65,0xc1,0xe7, + 0xab,0x89,0x43,0xf0,0x40,0x03,0xab,0x81,0x4f,0xf0,0xff,0x30,0xbd,0xe8,0xf0,0x81, + 0xd8,0xf8,0x00,0x30,0x00,0x2b,0x94,0xd0,0x1d,0x2b,0x06,0xd0,0x16,0x2b,0x04,0xd0, + 0xab,0x89,0x43,0xf0,0x40,0x03,0xab,0x81,0xd5,0xe7,0xc8,0xf8,0x00,0x60,0xd1,0xe7, + 0x00,0xbf,0x38,0xb5,0x0c,0x46,0x05,0x46,0x08,0xb1,0x83,0x6b,0xa3,0xb1,0xb4,0xf9, + 0x0c,0x00,0xb8,0xb1,0x63,0x6e,0xdb,0x07,0x01,0xd4,0x81,0x05,0x15,0xd5,0x28,0x46, + 0x21,0x46,0xff,0xf7,0x56,0xff,0x63,0x6e,0xda,0x07,0x05,0x46,0x02,0xd4,0xa3,0x89, + 0x9b,0x05,0x0e,0xd5,0x28,0x46,0x38,0xbd,0x00,0xf0,0x3f,0xf8,0xb4,0xf9,0x0c,0x00, + 0x00,0x28,0xe7,0xd1,0x05,0x46,0x28,0x46,0x38,0xbd,0xa0,0x6d,0x00,0xf0,0x71,0xfb, + 0xe5,0xe7,0xa0,0x6d,0x00,0xf0,0x6f,0xfb,0x28,0x46,0x38,0xbd,0x00,0xbf,0x10,0xb5, + 0x00,0x23,0x04,0x46,0xc0,0xe9,0x00,0x33,0xc0,0xe9,0x04,0x33,0x81,0x81,0xc2,0x81, + 0x83,0x60,0x43,0x66,0x83,0x61,0x19,0x46,0x08,0x22,0x5c,0x30,0xfc,0xf7,0x45,0xff, + 0x07,0x48,0x07,0x49,0x08,0x4a,0x08,0x4b,0xe3,0x62,0xc4,0xe9,0x07,0x40,0xc4,0xe9, + 0x09,0x12,0x04,0xf1,0x58,0x00,0xbd,0xe8,0x10,0x40,0x00,0xf0,0x46,0xbb,0x5d,0x23, + 0x01,0x10,0x81,0x23,0x01,0x10,0xc1,0x23,0x01,0x10,0xe1,0x23,0x01,0x10,0x01,0x49, + 0x00,0xf0,0x13,0xbb,0x00,0xbf,0x1d,0x26,0x01,0x10,0x10,0xb5,0x04,0x46,0x11,0x48, + 0x00,0xf0,0x37,0xfb,0xa2,0x6b,0xc2,0xb9,0x04,0xf5,0x3b,0x73,0x0f,0x48,0xc4,0xf8, + 0xe0,0x22,0x03,0x21,0xc4,0xe9,0xb9,0x13,0xe0,0x63,0x04,0x21,0x60,0x68,0xff,0xf7, + 0xbe,0xff,0xa0,0x68,0x01,0x22,0x09,0x21,0xff,0xf7,0xb9,0xff,0xe0,0x68,0x02,0x22, + 0x12,0x21,0xff,0xf7,0xb4,0xff,0x01,0x23,0xa3,0x63,0xbd,0xe8,0x10,0x40,0x01,0x48, + 0x00,0xf0,0x19,0xbb,0x00,0xbf,0x30,0x0b,0x00,0x20,0xd9,0x09,0x01,0x10,0x01,0x48, + 0x00,0xf0,0x0f,0xbb,0x00,0xbf,0x44,0x0b,0x00,0x20,0x01,0x48,0x00,0xf0,0x0b,0xbb, + 0x00,0xbf,0x44,0x0b,0x00,0x20,0x38,0xb5,0x08,0x4b,0x08,0x4d,0x5b,0x1b,0x9c,0x10, + 0x07,0xd0,0x04,0x3b,0x1d,0x44,0x01,0x3c,0x55,0xf8,0x04,0x39,0x98,0x47,0x00,0x2c, + 0xf9,0xd1,0xbd,0xe8,0x38,0x40,0x02,0xf0,0xb0,0xbf,0xc4,0x09,0x00,0x20,0xc0,0x09, + 0x00,0x20,0xf8,0xb5,0x24,0x4f,0x0c,0x46,0x06,0x46,0x00,0xf0,0xe0,0xfe,0xbb,0x68, + 0x5d,0x68,0xc4,0xf5,0x7e,0x61,0x0f,0x31,0x25,0xf0,0x03,0x05,0x4b,0x19,0x23,0xf4, + 0x7f,0x63,0x23,0xf0,0x0f,0x03,0xa3,0xf5,0x80,0x54,0xb4,0xf5,0x80,0x5f,0x07,0xdb, + 0x00,0x21,0x30,0x46,0x01,0xf0,0x43,0xfc,0xbb,0x68,0x2b,0x44,0x98,0x42,0x04,0xd0, + 0x30,0x46,0x00,0xf0,0xca,0xfe,0x00,0x20,0xf8,0xbd,0x61,0x42,0x30,0x46,0x01,0xf0, + 0x36,0xfc,0x01,0x30,0x0d,0xd0,0x10,0x4a,0xb9,0x68,0x13,0x68,0x2d,0x1b,0x45,0xf0, + 0x01,0x05,0x30,0x46,0x1b,0x1b,0x4d,0x60,0x13,0x60,0x00,0xf0,0xb6,0xfe,0x01,0x20, + 0xf8,0xbd,0x00,0x21,0x30,0x46,0x01,0xf0,0x22,0xfc,0xba,0x68,0x83,0x1a,0x0f,0x2b, + 0xde,0xdd,0x06,0x4c,0x05,0x49,0x24,0x68,0x43,0xf0,0x01,0x03,0x00,0x1b,0x53,0x60, + 0x08,0x60,0xd5,0xe7,0x00,0xbf,0x3c,0x04,0x00,0x20,0xf0,0x0a,0x00,0x20,0x44,0x08, + 0x00,0x20,0x00,0x29,0x5e,0xd0,0xf8,0xb5,0x0c,0x46,0x06,0x46,0x00,0xf0,0x8f,0xfe, + 0x54,0xf8,0x04,0x3c,0xdf,0xf8,0xf0,0xc1,0x23,0xf0,0x01,0x01,0xa4,0xf1,0x08,0x00, + 0x42,0x18,0xdc,0xf8,0x08,0x70,0x55,0x68,0x97,0x42,0x25,0xf0,0x03,0x05,0x00,0xf0, + 0x88,0x80,0xdf,0x07,0x55,0x60,0x33,0xd4,0x54,0xf8,0x08,0x7c,0xc0,0x1b,0x0c,0xf1, + 0x08,0x04,0x83,0x68,0xa3,0x42,0x39,0x44,0x69,0xd0,0x57,0x19,0xd0,0xf8,0x0c,0xe0, + 0x7f,0x68,0xc3,0xf8,0x0c,0xe0,0xce,0xf8,0x08,0x30,0xfb,0x07,0x40,0xf1,0x96,0x80, + 0x41,0xf0,0x01,0x03,0x43,0x60,0x11,0x60,0xb1,0xf5,0x00,0x7f,0x33,0xd2,0xcb,0x08, + 0xdc,0xf8,0x04,0x40,0x01,0x33,0x4a,0x09,0x01,0x21,0x91,0x40,0x21,0x43,0x0c,0xeb, + 0xc3,0x02,0x5c,0xf8,0x33,0x40,0xcc,0xf8,0x04,0x10,0x08,0x3a,0xc0,0xe9,0x02,0x42, + 0x4c,0xf8,0x33,0x00,0xe0,0x60,0x30,0x46,0xbd,0xe8,0xf8,0x40,0x00,0xf0,0x4d,0xbe, + 0x53,0x19,0x5b,0x68,0xdf,0x07,0x0e,0xd4,0x29,0x44,0x0c,0xf1,0x08,0x04,0x93,0x68, + 0xa3,0x42,0x73,0xd0,0xd4,0x68,0xdc,0x60,0x41,0xf0,0x01,0x02,0xa3,0x60,0x42,0x60, + 0x41,0x50,0xd1,0xe7,0x70,0x47,0x41,0xf0,0x01,0x03,0xb1,0xf5,0x00,0x7f,0x44,0xf8, + 0x04,0x3c,0x11,0x60,0xcb,0xd3,0xb1,0xf5,0x20,0x6f,0x4f,0xea,0x51,0x23,0x4a,0xd2, + 0x8b,0x09,0x03,0xf1,0x39,0x05,0xed,0x00,0x03,0xf1,0x38,0x02,0x5c,0xf8,0x05,0x30, + 0x0c,0xeb,0x05,0x04,0x08,0x3c,0x9c,0x42,0x59,0xd0,0x5a,0x68,0x22,0xf0,0x03,0x02, + 0x8a,0x42,0x02,0xd9,0x9b,0x68,0x9c,0x42,0xf7,0xd1,0xdc,0x68,0xc0,0xe9,0x02,0x34, + 0xa0,0x60,0xd8,0x60,0x30,0x46,0xbd,0xe8,0xf8,0x40,0x00,0xf0,0x0e,0xbe,0x53,0x19, + 0x5b,0x68,0xdb,0x07,0x66,0xd4,0xd2,0xe9,0x02,0x23,0x29,0x44,0x41,0xf0,0x01,0x04, + 0xd3,0x60,0x9a,0x60,0x44,0x60,0x41,0x50,0x30,0x46,0xbd,0xe8,0xf8,0x40,0x00,0xf0, + 0xfc,0xbd,0xdb,0x07,0x29,0x44,0x07,0xd4,0x54,0xf8,0x08,0x3c,0xc0,0x1a,0x19,0x44, + 0xd0,0xe9,0x02,0x23,0xd3,0x60,0x9a,0x60,0x29,0x4b,0x1b,0x68,0x41,0xf0,0x01,0x02, + 0x8b,0x42,0x42,0x60,0xcc,0xf8,0x08,0x00,0x95,0xd8,0x25,0x4b,0x30,0x46,0x19,0x68, + 0xff,0xf7,0xf7,0xfe,0x8f,0xe7,0x14,0x2b,0x0a,0xd9,0x54,0x2b,0x21,0xd8,0x0b,0x0b, + 0x03,0xf1,0x6f,0x05,0xed,0x00,0x03,0xf1,0x6e,0x02,0xaf,0xe7,0x29,0x44,0x8e,0xe7, + 0x03,0xf1,0x5c,0x05,0xed,0x00,0x03,0xf1,0x5b,0x02,0xa7,0xe7,0x41,0xf0,0x01,0x03, + 0xcc,0xe9,0x04,0x00,0xc0,0xe9,0x02,0x44,0x43,0x60,0x41,0x50,0x73,0xe7,0xdc,0xf8, + 0x04,0x10,0x92,0x10,0x01,0x25,0x05,0xfa,0x02,0xf2,0x0a,0x43,0xcc,0xf8,0x04,0x20, + 0xa4,0xe7,0xb3,0xf5,0xaa,0x7f,0x06,0xd8,0xcb,0x0b,0x03,0xf1,0x78,0x05,0xed,0x00, + 0x03,0xf1,0x77,0x02,0x8a,0xe7,0x40,0xf2,0x54,0x52,0x93,0x42,0x06,0xd8,0x8b,0x0c, + 0x03,0xf1,0x7d,0x05,0xed,0x00,0x03,0xf1,0x7c,0x02,0x7f,0xe7,0x4f,0xf4,0x7e,0x75, + 0x7e,0x22,0x7b,0xe7,0x41,0xf0,0x01,0x03,0x43,0x60,0x11,0x60,0x4b,0xe7,0x48,0x08, + 0x00,0x20,0x20,0x0b,0x00,0x20,0x3c,0x04,0x00,0x20,0x93,0x68,0x00,0x2b,0x00,0xf0, + 0x8a,0x80,0x2d,0xe9,0xf0,0x4f,0x90,0x46,0xb1,0xf9,0x0c,0x20,0x0c,0x46,0x11,0x07, + 0x83,0xb0,0x81,0x46,0x93,0xb2,0x25,0xd5,0x22,0x69,0x1a,0xb3,0x13,0xf0,0x02,0x07, + 0xd8,0xf8,0x00,0x50,0x2d,0xd0,0x00,0x26,0xdf,0xf8,0xac,0xb2,0x37,0x46,0xaa,0x46, + 0x5f,0x45,0x3b,0x46,0x32,0x46,0x28,0xbf,0x5b,0x46,0x48,0x46,0x00,0x2f,0x4f,0xd0, + 0xe1,0x69,0x65,0x6a,0xa8,0x47,0x00,0x28,0x5b,0xdd,0xd8,0xf8,0x08,0x30,0x1b,0x1a, + 0x06,0x44,0x3f,0x1a,0xc8,0xf8,0x08,0x30,0x00,0x2b,0xe9,0xd1,0x00,0x20,0x03,0xb0, + 0xbd,0xe8,0xf0,0x8f,0x21,0x46,0x48,0x46,0xfe,0xf7,0xb5,0xfc,0x00,0x28,0x40,0xf0, + 0x2f,0x81,0xb4,0xf9,0x0c,0x20,0xd8,0xf8,0x00,0x50,0x93,0xb2,0x13,0xf0,0x02,0x07, + 0xd1,0xd1,0x13,0xf0,0x01,0x0a,0x48,0xd1,0x56,0x46,0x2e,0xb3,0x9a,0x05,0xa7,0x68, + 0x40,0xf1,0x8c,0x80,0xb7,0x42,0xbb,0x46,0x00,0xf2,0xb7,0x80,0x13,0xf4,0x90,0x6f, + 0x40,0xf0,0xcb,0x80,0x20,0x68,0x51,0x46,0x5a,0x46,0x00,0xf0,0xcc,0xfc,0xa1,0x68, + 0x23,0x68,0xc9,0x1b,0x5b,0x44,0x37,0x46,0xa1,0x60,0x23,0x60,0x00,0x26,0xd8,0xf8, + 0x08,0x30,0xdb,0x1b,0xba,0x44,0xc8,0xf8,0x08,0x30,0x00,0x2b,0xc6,0xd0,0xb4,0xf9, + 0x0c,0x30,0x9b,0xb2,0x00,0x2e,0xd9,0xd1,0xd5,0xe9,0x00,0xa6,0x08,0x35,0xd4,0xe7, + 0xda,0xe9,0x00,0x67,0x0a,0xf1,0x08,0x0a,0xa2,0xe7,0x29,0x46,0x5a,0x46,0x00,0xf0, + 0xaa,0xfc,0x23,0x68,0x5b,0x44,0x23,0x60,0x21,0x46,0x48,0x46,0xff,0xf7,0x81,0xfd, + 0x58,0xb3,0xb4,0xf9,0x0c,0x30,0x43,0xf0,0x40,0x03,0x4f,0xf0,0xff,0x30,0xa3,0x81, + 0x03,0xb0,0xbd,0xe8,0xf0,0x8f,0x00,0x20,0x70,0x47,0x3e,0x46,0xaa,0x46,0x38,0x46, + 0x3d,0x46,0x00,0x97,0x6e,0xb3,0x00,0x28,0x33,0xd0,0x00,0x9a,0x20,0x68,0xd4,0xe9, + 0x04,0x13,0xb2,0x42,0x28,0xbf,0x32,0x46,0x88,0x42,0x04,0xd9,0xa1,0x68,0x03,0xeb, + 0x01,0x0b,0x5a,0x45,0xd1,0xdc,0x93,0x42,0x6a,0xdc,0xe1,0x69,0x67,0x6a,0x2a,0x46, + 0x48,0x46,0xb8,0x47,0xb0,0xf1,0x00,0x0b,0xd3,0xdd,0x00,0x9b,0xb3,0xeb,0x0b,0x03, + 0x00,0x93,0x56,0xd0,0x01,0x20,0xd8,0xf8,0x08,0x30,0xa3,0xeb,0x0b,0x03,0x5d,0x44, + 0xa6,0xeb,0x0b,0x06,0xc8,0xf8,0x08,0x30,0x00,0x2b,0x3f,0xf4,0x6f,0xaf,0x00,0x2e, + 0xd1,0xd1,0x0a,0xf1,0x08,0x03,0x53,0xe9,0x02,0x56,0x9a,0x46,0x08,0x33,0x00,0x2e, + 0xf9,0xd0,0x32,0x46,0x0a,0x21,0x28,0x46,0x00,0xf0,0x05,0xfc,0x00,0x28,0x00,0xf0, + 0x8e,0x80,0x01,0x30,0x43,0x1b,0x00,0x93,0x1a,0x46,0xbf,0xe7,0x20,0x68,0x23,0x69, + 0x98,0x42,0x14,0xd8,0x61,0x69,0xb1,0x42,0x11,0xd8,0x6f,0xf0,0x00,0x43,0xb3,0x42, + 0x28,0xbf,0x33,0x46,0x67,0x6a,0x93,0xfb,0xf1,0xf3,0x52,0x46,0x01,0xfb,0x03,0xf3, + 0x48,0x46,0xe1,0x69,0xb8,0x47,0x07,0x1e,0x93,0xdd,0xf6,0x1b,0x6f,0xe7,0xb7,0x42, + 0x28,0xbf,0x37,0x46,0x3a,0x46,0x51,0x46,0x00,0xf0,0x2d,0xfc,0xa3,0x68,0x22,0x68, + 0xdb,0x1b,0x3a,0x44,0xa3,0x60,0x22,0x60,0x00,0x2b,0xee,0xd1,0x21,0x46,0x48,0x46, + 0xff,0xf7,0xff,0xfc,0x00,0x28,0xe8,0xd0,0x7b,0xe7,0x20,0x68,0x37,0x46,0xb3,0x46, + 0x49,0xe7,0x21,0x46,0x48,0x46,0xff,0xf7,0xf4,0xfc,0x00,0x28,0xa3,0xd0,0x70,0xe7, + 0x29,0x46,0x01,0x92,0x00,0xf0,0x0f,0xfc,0x01,0x9a,0xa1,0x68,0x23,0x68,0x89,0x1a, + 0x13,0x44,0xa1,0x60,0x23,0x60,0x93,0x46,0x8f,0xe7,0xd4,0xe9,0x04,0x17,0x22,0x68, + 0x07,0xeb,0x47,0x07,0xa2,0xeb,0x01,0x0b,0x07,0xeb,0xd7,0x77,0x0b,0xf1,0x01,0x00, + 0x7f,0x10,0x30,0x44,0xb8,0x42,0x3a,0x46,0x84,0xbf,0x07,0x46,0x3a,0x46,0x5b,0x05, + 0x1b,0xd5,0x11,0x46,0x48,0x46,0x00,0xf0,0xe2,0xf8,0x58,0xb3,0x5a,0x46,0x21,0x69, + 0x00,0x90,0xfc,0xf7,0xb0,0xfb,0xa2,0x89,0x00,0x9b,0x22,0xf4,0x90,0x62,0x42,0xf0, + 0x80,0x02,0xa2,0x81,0xa7,0xeb,0x0b,0x02,0x03,0xeb,0x0b,0x00,0x67,0x61,0x23,0x61, + 0x20,0x60,0xa2,0x60,0x37,0x46,0xb3,0x46,0x05,0xe7,0x48,0x46,0x00,0xf0,0x8f,0xff, + 0x03,0x46,0x00,0x28,0xee,0xd1,0x21,0x69,0x48,0x46,0xff,0xf7,0xa2,0xfd,0xb4,0xf9, + 0x0c,0x30,0x0c,0x22,0x23,0xf0,0x80,0x03,0xc9,0xf8,0x00,0x20,0x23,0xe7,0x72,0x1c, + 0x00,0x92,0x33,0xe7,0x0c,0x23,0xc9,0xf8,0x00,0x30,0xb4,0xf9,0x0c,0x30,0x1a,0xe7, + 0x4f,0xf0,0xff,0x30,0xc3,0xe6,0x00,0xfc,0xff,0x7f,0x2d,0xe9,0xf8,0x43,0x07,0x46, + 0x88,0x46,0x00,0xf5,0x38,0x76,0x4f,0xf0,0x00,0x09,0xd6,0xe9,0x01,0x54,0x01,0x3d, + 0x11,0xd4,0xa3,0x89,0x01,0x2b,0x05,0xf1,0xff,0x35,0x08,0xd9,0xb4,0xf9,0x0e,0x30, + 0x01,0x33,0x04,0xd0,0x21,0x46,0x38,0x46,0xc0,0x47,0x49,0xea,0x00,0x09,0x6b,0x1c, + 0x04,0xf1,0x68,0x04,0xed,0xd1,0x36,0x68,0x00,0x2e,0xe6,0xd1,0x48,0x46,0xbd,0xe8, + 0xf8,0x83,0x00,0x48,0x70,0x47,0x3c,0x09,0x00,0x20,0x70,0x47,0x00,0xbf,0x70,0x47, + 0x00,0xbf,0x70,0x47,0x00,0xbf,0x70,0x47,0x00,0xbf,0x70,0xb5,0x0c,0x46,0xb1,0xf9, + 0x0e,0x10,0x00,0x29,0x96,0xb0,0x15,0x46,0x1e,0x46,0x14,0xdb,0x6a,0x46,0x01,0xf0, + 0xbe,0xfb,0x00,0x28,0x0f,0xdb,0x01,0x9a,0x02,0xf4,0x70,0x42,0xa2,0xf5,0x00,0x52, + 0xb2,0xfa,0x82,0xf2,0x52,0x09,0x4f,0xf4,0x80,0x63,0x4f,0xf4,0x00,0x60,0x32,0x60, + 0x2b,0x60,0x16,0xb0,0x70,0xbd,0xa1,0x89,0x00,0x23,0x11,0xf0,0x80,0x00,0x33,0x60, + 0x04,0xd0,0x40,0x22,0x18,0x46,0x2a,0x60,0x16,0xb0,0x70,0xbd,0x4f,0xf4,0x80,0x63, + 0x2b,0x60,0x16,0xb0,0x70,0xbd,0x70,0xb5,0x8b,0x89,0x9d,0x07,0x82,0xb0,0x0c,0x46, + 0x07,0xd5,0x01,0xf1,0x43,0x03,0x01,0x22,0xc1,0xe9,0x04,0x32,0x0b,0x60,0x02,0xb0, + 0x70,0xbd,0x01,0xab,0x6a,0x46,0x06,0x46,0xff,0xf7,0xbf,0xff,0x00,0x99,0x05,0x46, + 0x30,0x46,0x00,0xf0,0x34,0xf8,0x80,0xb1,0xb4,0xf9,0x0c,0x20,0x17,0x4b,0xf3,0x63, + 0x01,0x99,0x20,0x60,0x42,0xf0,0x80,0x03,0x00,0x9a,0xa3,0x81,0xc4,0xe9,0x04,0x02, + 0x99,0xb9,0x2b,0x43,0xa3,0x81,0x02,0xb0,0x70,0xbd,0xb4,0xf9,0x0c,0x30,0x9a,0x05, + 0xdd,0xd4,0x23,0xf0,0x03,0x03,0x04,0xf1,0x43,0x02,0x43,0xf0,0x02,0x03,0x01,0x21, + 0xc4,0xe9,0x04,0x21,0xa3,0x81,0x22,0x60,0xd1, 0xe7, 0xb4, 0xf9, 0x0e, 0x10, 0x30, 0x46, 0x01, 0xf0, 0x73, 0xfb, 0x10, 0xb9, 0xb4, 0xf9, 0x0c, 0x30, 0xe2, 0xe7, 0xa2, 0x89, 0x22, 0xf0, 0x03, 0x02, 0x42, 0xf0, 0x01, 0x02, 0x13, 0xb2, 0xdb, 0xe7, 0xd9, 0x09, 0x01, 0x10, 0x2d, 0xe9, 0xf0, 0x4f, 0x01, 0xf1, 0x0b, 0x05, 0x16, 0x2d, 0x83, 0xb0, 0x06, 0x46, 0x24, 0xd8, 0x10, 0x29, diff --git a/Examples/MAX32665/Display/test_screen.h b/Examples/MAX32665/Display/test_screen.h index 9de72bb0238..78c26eaf856 100644 --- a/Examples/MAX32665/Display/test_screen.h +++ b/Examples/MAX32665/Display/test_screen.h @@ -1,49 +1,49 @@ /****************************************************************************** * - * Copyright 2023 Analog Devices, Inc. + * Copyright 2023 Analog Devices,Inc. * - * Licensed under the Apache License, Version 2.0 (the "License"); + * Licensed under the Apache License,Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software + * Unless required by applicable law or agreed to in writing,software * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** * - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * Copyright (C) 2023 Maxim Integrated Products,Inc.,All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a + * Permission is hereby granted,free of charge,to any person obtaining a * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: + * to deal in the Software without restriction,including without limitation + * the rights to use,copy,modify,merge,publish,distribute,sublicense, + * and/or sell copies of the Software,and to permit persons to whom the + * Software is furnished to do so,subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * THE SOFTWARE IS PROVIDED "AS IS",WITHOUT WARRANTY OF ANY KIND,EXPRESS + * OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM,DAMAGES + * OR OTHER LIABILITY,WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE, + * ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. + * Except as contained in this notice,the name of Maxim Integrated + * Products,Inc. shall not be used except as stated in the Maxim Integrated + * Products,Inc. Branding Policy. * * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all + * of trade secrets,proprietary technology,copyrights,patents, + * trademarks,maskwork rights,or any other form of intellectual + * property whatsoever. Maxim Integrated Products,Inc. retains all * ownership rights. * ******************************************************************************/ diff --git a/Examples/MAX32670/SecureROM_BL_Host/bootloader/bootloader.h b/Examples/MAX32670/SecureROM_BL_Host/bootloader/bootloader.h index 20a6f4c26b9..d8e4cce9014 100644 --- a/Examples/MAX32670/SecureROM_BL_Host/bootloader/bootloader.h +++ b/Examples/MAX32670/SecureROM_BL_Host/bootloader/bootloader.h @@ -75,19 +75,19 @@ #define PACKET_WAIT_WRITE_MEM_RSP 5000 // ms /******************************* Type Definitions ****************************/ -typedef int (*comm_read_t)(unsigned char *dst, unsigned int len, unsigned int to); +typedef int (*comm_read_t)(unsigned char *dst,unsigned int len,unsigned int to); typedef int (*comm_write_t)(const unsigned char *src,unsigned int len,unsigned int to); typedef struct { comm_read_t read; comm_write_t write; - void (*gpio_set)(unsigned int idx, int state); + void (*gpio_set)(unsigned int idx,int state); void (*delay_ms)(unsigned int ms); - int (*printf)(const char *pcFmt, ...); + int (*printf)(const char *pcFmt,...); } bl_conf_struct_t; typedef struct { - unsigned char type; // 1:hello_reply, 2:erase/del_mem + unsigned char type; // 1:hello_reply,2:erase/del_mem unsigned char is_tx; // 1: From host to target,0: From target to host uint16_t len; const unsigned char *data; diff --git a/Examples/MAX32670/SecureROM_BL_Host/test_images/MAX32651-EVKIT/blinkled_P2_25.c b/Examples/MAX32670/SecureROM_BL_Host/test_images/MAX32651-EVKIT/blinkled_P2_25.c index 7951bbfd62b..57de664fec0 100644 --- a/Examples/MAX32670/SecureROM_BL_Host/test_images/MAX32651-EVKIT/blinkled_P2_25.c +++ b/Examples/MAX32670/SecureROM_BL_Host/test_images/MAX32651-EVKIT/blinkled_P2_25.c @@ -1,1435 +1,1435 @@ /****************************************************************************** * - * Copyright 2023 Analog Devices, Inc. + * Copyright 2023 Analog Devices,Inc. * - * Licensed under the Apache License, Version 2.0 (the "License"); + * Licensed under the Apache License,Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software + * Unless required by applicable law or agreed to in writing,software * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** * - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * Copyright (C) 2023 Maxim Integrated Products,Inc.,All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a + * Permission is hereby granted,free of charge,to any person obtaining a * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: + * to deal in the Software without restriction,including without limitation + * the rights to use,copy,modify,merge,publish,distribute,sublicense, + * and/or sell copies of the Software,and to permit persons to whom the + * Software is furnished to do so,subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * THE SOFTWARE IS PROVIDED "AS IS",WITHOUT WARRANTY OF ANY KIND,EXPRESS + * OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM,DAMAGES + * OR OTHER LIABILITY,WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE, + * ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. + * Except as contained in this notice,the name of Maxim Integrated + * Products,Inc. shall not be used except as stated in the Maxim Integrated + * Products,Inc. Branding Policy. * * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all + * of trade secrets,proprietary technology,copyrights,patents, + * trademarks,maskwork rights,or any other form of intellectual + * property whatsoever. Maxim Integrated Products,Inc. retains all * ownership rights. * ******************************************************************************/ #include -static const unsigned char scp_0000001_connection_request[] = { 0xbe, 0xef, 0xed, 0x01, - 0x00, 0x00, 0x90, 0xf3 }; +static const unsigned char scp_0000001_connection_request[] = { 0xbe,0xef,0xed,0x01, + 0x00,0x00,0x90,0xf3 }; -static const unsigned char scp_0000002_connection_reply[] = { 0xbe, 0xef, 0xed, 0x02, - 0x00, 0x00, 0x90, 0x01 }; +static const unsigned char scp_0000002_connection_reply[] = { 0xbe,0xef,0xed,0x02, + 0x00,0x00,0x90,0x01 }; -static const unsigned char scp_0000003_ack[] = { 0xbe, 0xef, 0xed, 0x06, 0x00, 0x00, 0x90, 0xc7 }; +static const unsigned char scp_0000003_ack[] = { 0xbe,0xef,0xed,0x06,0x00,0x00,0x90,0xc7 }; -static const unsigned char scp_0000004_hello_request[] = { 0xbe, 0xef, 0xed, 0x05, 0x00, 0x0e, 0x90, - 0xc3, 0x10, 0x00, 0x00, 0x0a, 0x48, 0x45, - 0x4c, 0x4c, 0x4f, 0x20, 0x42, 0x4c, 0x02, - 0x02, 0x50, 0xf3, 0x36, 0xc6 }; +static const unsigned char scp_0000004_hello_request[] = { 0xbe,0xef,0xed,0x05,0x00,0x0e,0x90, + 0xc3,0x10,0x00,0x00,0x0a,0x48,0x45, + 0x4c,0x4c,0x4f,0x20,0x42,0x4c,0x02, + 0x02,0x50,0xf3,0x36,0xc6 }; -static const unsigned char scp_0000005_ack[] = { 0xbe, 0xef, 0xed, 0x06, 0x00, 0x00, 0x90, 0xc7 }; +static const unsigned char scp_0000005_ack[] = { 0xbe,0xef,0xed,0x06,0x00,0x00,0x90,0xc7 }; static const unsigned char scp_0000006_hello_reply[] = { - 0xbe, 0xef, 0xed, 0x05, 0x00, 0x36, 0x91, 0x62, 0x20, 0x00, 0x00, 0x32, 0x48, 0x45, - 0x4c, 0x4c, 0x4f, 0x20, 0x48, 0x4f, 0x53, 0x54, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xc0, 0x04, 0x00, 0x43, 0x47, 0x1f, 0xd2, 0x03, 0x08, 0x0c, 0x07, 0x00, 0x00, - 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x3e, 0xd2, 0x87 + 0xbe,0xef,0xed,0x05,0x00,0x36,0x91,0x62,0x20,0x00,0x00,0x32,0x48,0x45, + 0x4c,0x4c,0x4f,0x20,0x48,0x4f,0x53,0x54,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0xc0,0x04,0x00,0x43,0x47,0x1f,0xd2,0x03,0x08,0x0c,0x07,0x00,0x00, + 0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0xa7,0x3e,0xd2,0x87 }; -static const unsigned char scp_0000007_ack[] = { 0xbe, 0xef, 0xed, 0x06, 0x00, 0x00, 0x91, 0xa3 }; +static const unsigned char scp_0000007_ack[] = { 0xbe,0xef,0xed,0x06,0x00,0x00,0x91,0xa3 }; static const unsigned char scp_0000008_del_mem[] = { - 0xbe, 0xef, 0xed, 0x05, 0x01, 0x0e, 0x92, 0xd3, 0x59, 0x00, 0x00, 0x0a, 0x44, 0x01, 0x10, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xa2, 0x40, 0xa7, 0xef, 0xf9, 0x54, 0x30, 0x40, 0x70, 0x74, 0x8d, 0xa4, - 0x49, 0x1a, 0x72, 0x19, 0x2d, 0xb6, 0xe2, 0x86, 0x56, 0x87, 0xe4, 0x14, 0xf3, 0xeb, 0xc4, 0xaa, - 0x4a, 0xe7, 0xf3, 0xed, 0x97, 0x5e, 0xd9, 0x90, 0xbb, 0xc3, 0xf1, 0x11, 0x64, 0xec, 0x73, 0x26, - 0xcc, 0xcd, 0x44, 0x2c, 0x31, 0x17, 0xbb, 0xb0, 0xee, 0x14, 0x5d, 0xba, 0xff, 0x3c, 0x9d, 0x5e, - 0x1a, 0x6d, 0xb9, 0x14, 0x53, 0x3a, 0xda, 0x81, 0x62, 0xf5, 0x2f, 0xf3, 0x20, 0xaa, 0x9f, 0x8b, - 0xa4, 0xfa, 0xe5, 0xdf, 0x64, 0x80, 0x97, 0xea, 0xe8, 0x88, 0x30, 0x9f, 0x7c, 0xc4, 0x8c, 0x53, - 0x34, 0x08, 0xc6, 0xcb, 0x79, 0x28, 0x2d, 0xb0, 0xef, 0xd9, 0x67, 0x83, 0x28, 0x84, 0x63, 0x75, - 0x29, 0x31, 0xe4, 0xa4, 0x72, 0xb3, 0xaf, 0xca, 0xf0, 0xc6, 0x36, 0xf1, 0x8b, 0xd3, 0xfa, 0xe6, - 0x9a, 0x8f, 0x44, 0x47, 0xe5, 0x09, 0x26, 0x14, 0xd5, 0x85, 0x12, 0xab, 0xeb, 0xc6, 0x8b, 0x3a, - 0x18, 0xa5, 0x61, 0xca, 0xea, 0xec, 0xdd, 0x2f, 0x24, 0x07, 0x2d, 0xec, 0x99, 0x51, 0x7a, 0xc4, - 0xc4, 0x07, 0xd4, 0xfc, 0xa8, 0xcd, 0x86, 0xd5, 0x3c, 0x68, 0xe0, 0x66, 0xa4, 0xd2, 0xd9, 0x9f, - 0x58, 0xa7, 0xea, 0x2c, 0x94, 0x23, 0xa1, 0x0b, 0x02, 0x1e, 0xd6, 0x9e, 0x8a, 0x61, 0xb7, 0x61, - 0x67, 0x50, 0xa7, 0x8c, 0x7e, 0x4f, 0x2f, 0x26, 0xf8, 0xfc, 0x49, 0xd5, 0x93, 0x15, 0xd7, 0xf6, - 0xbb, 0xd1, 0x0f, 0xea, 0x9f, 0x64, 0x64, 0xd1, 0xc0, 0xe6, 0xac, 0x2d, 0x7a, 0x68, 0xbf, 0x6a, - 0xc4, 0x99, 0x28, 0x99, 0x6c, 0x29, 0x3c, 0x95, 0x92, 0x76, 0x4f, 0x6b, 0xf1, 0x4b, 0x73, 0x30, - 0x44, 0xa1, 0xa7, 0x26, 0xe0, 0xa5, 0x86, 0x7f, 0xcb, 0x02, 0x54, 0x90, 0xbb, 0x09, 0xc6, 0x83, - 0xb0, 0x30, 0x9a, 0x2f, 0x8e, 0x5f, 0x14, 0x7e, 0x43, 0x3f + 0xbe,0xef,0xed,0x05,0x01,0x0e,0x92,0xd3,0x59,0x00,0x00,0x0a,0x44,0x01,0x10,0x00, + 0x00,0x00,0x00,0x00,0xa2,0x40,0xa7,0xef,0xf9,0x54,0x30,0x40,0x70,0x74,0x8d,0xa4, + 0x49,0x1a,0x72,0x19,0x2d,0xb6,0xe2,0x86,0x56,0x87,0xe4,0x14,0xf3,0xeb,0xc4,0xaa, + 0x4a,0xe7,0xf3,0xed,0x97,0x5e,0xd9,0x90,0xbb,0xc3,0xf1,0x11,0x64,0xec,0x73,0x26, + 0xcc,0xcd,0x44,0x2c,0x31,0x17,0xbb,0xb0,0xee,0x14,0x5d,0xba,0xff,0x3c,0x9d,0x5e, + 0x1a,0x6d,0xb9,0x14,0x53,0x3a,0xda,0x81,0x62,0xf5,0x2f,0xf3,0x20,0xaa,0x9f,0x8b, + 0xa4,0xfa,0xe5,0xdf,0x64,0x80,0x97,0xea,0xe8,0x88,0x30,0x9f,0x7c,0xc4,0x8c,0x53, + 0x34,0x08,0xc6,0xcb,0x79,0x28,0x2d,0xb0,0xef,0xd9,0x67,0x83,0x28,0x84,0x63,0x75, + 0x29,0x31,0xe4,0xa4,0x72,0xb3,0xaf,0xca,0xf0,0xc6,0x36,0xf1,0x8b,0xd3,0xfa,0xe6, + 0x9a,0x8f,0x44,0x47,0xe5,0x09,0x26,0x14,0xd5,0x85,0x12,0xab,0xeb,0xc6,0x8b,0x3a, + 0x18,0xa5,0x61,0xca,0xea,0xec,0xdd,0x2f,0x24,0x07,0x2d,0xec,0x99,0x51,0x7a,0xc4, + 0xc4,0x07,0xd4,0xfc,0xa8,0xcd,0x86,0xd5,0x3c,0x68,0xe0,0x66,0xa4,0xd2,0xd9,0x9f, + 0x58,0xa7,0xea,0x2c,0x94,0x23,0xa1,0x0b,0x02,0x1e,0xd6,0x9e,0x8a,0x61,0xb7,0x61, + 0x67,0x50,0xa7,0x8c,0x7e,0x4f,0x2f,0x26,0xf8,0xfc,0x49,0xd5,0x93,0x15,0xd7,0xf6, + 0xbb,0xd1,0x0f,0xea,0x9f,0x64,0x64,0xd1,0xc0,0xe6,0xac,0x2d,0x7a,0x68,0xbf,0x6a, + 0xc4,0x99,0x28,0x99,0x6c,0x29,0x3c,0x95,0x92,0x76,0x4f,0x6b,0xf1,0x4b,0x73,0x30, + 0x44,0xa1,0xa7,0x26,0xe0,0xa5,0x86,0x7f,0xcb,0x02,0x54,0x90,0xbb,0x09,0xc6,0x83, + 0xb0,0x30,0x9a,0x2f,0x8e,0x5f,0x14,0x7e,0x43,0x3f }; -static const unsigned char scp_0000009_ack[] = { 0xbe, 0xef, 0xed, 0x06, 0x00, 0x00, 0x92, 0x40 }; +static const unsigned char scp_0000009_ack[] = { 0xbe,0xef,0xed,0x06,0x00,0x00,0x92,0x40 }; -static const unsigned char scp_0000010_del_mem_response[] = { 0xbe, 0xef, 0xed, 0x05, 0x00, - 0x08, 0x93, 0xbd, 0x59, 0x00, - 0x00, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x0e, 0x73, 0x84, 0xc6 }; +static const unsigned char scp_0000010_del_mem_response[] = { 0xbe,0xef,0xed,0x05,0x00, + 0x08,0x93,0xbd,0x59,0x00, + 0x00,0x04,0x00,0x00,0x00, + 0x00,0x0e,0x73,0x84,0xc6 }; -static const unsigned char scp_0000011_ack[] = { 0xbe, 0xef, 0xed, 0x06, 0x00, 0x00, 0x93, 0x02 }; +static const unsigned char scp_0000011_ack[] = { 0xbe,0xef,0xed,0x06,0x00,0x00,0x93,0x02 }; static const unsigned char scp_0000012_write_mem[] = { - 0xbe, 0xef, 0xed, 0x05, 0x1f, 0xf2, 0x94, 0x49, 0x59, 0x01, 0x1e, 0xee, 0x24, 0x02, 0x10, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x1e, 0xe4, 0x46, 0x49, 0x53, 0x57, 0x45, 0x44, 0x47, 0x44, 0x01, 0x00, - 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, 0x20, 0x10, 0x00, 0x07, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x10, 0x20, 0x11, 0x07, 0x00, 0x10, 0x15, 0x05, - 0x00, 0x10, 0x4f, 0x07, 0x00, 0x10, 0x51, 0x07, 0x00, 0x10, 0x53, 0x07, 0x00, 0x10, 0x55, 0x07, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x57, 0x07, 0x00, 0x10, 0x59, 0x07, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x07, - 0x00, 0x10, 0x81, 0x0b, 0x00, 0x10, 0x5f, 0x07, 0x00, 0x10, 0x61, 0x07, 0x00, 0x10, 0x63, 0x07, - 0x00, 0x10, 0x65, 0x07, 0x00, 0x10, 0x67, 0x07, 0x00, 0x10, 0x69, 0x07, 0x00, 0x10, 0x6b, 0x07, - 0x00, 0x10, 0x6d, 0x07, 0x00, 0x10, 0x6f, 0x07, 0x00, 0x10, 0x71, 0x07, 0x00, 0x10, 0x73, 0x07, - 0x00, 0x10, 0x75, 0x07, 0x00, 0x10, 0x77, 0x07, 0x00, 0x10, 0x79, 0x07, 0x00, 0x10, 0x7b, 0x07, - 0x00, 0x10, 0x7d, 0x07, 0x00, 0x10, 0x7f, 0x07, 0x00, 0x10, 0x81, 0x07, 0x00, 0x10, 0x83, 0x07, - 0x00, 0x10, 0x85, 0x07, 0x00, 0x10, 0x87, 0x07, 0x00, 0x10, 0x89, 0x07, 0x00, 0x10, 0x8b, 0x07, - 0x00, 0x10, 0x8d, 0x07, 0x00, 0x10, 0xe9, 0x06, 0x00, 0x10, 0xf3, 0x06, 0x00, 0x10, 0xfd, 0x06, - 0x00, 0x10, 0x95, 0x07, 0x00, 0x10, 0x97, 0x07, 0x00, 0x10, 0x99, 0x07, 0x00, 0x10, 0x9b, 0x07, - 0x00, 0x10, 0x9d, 0x07, 0x00, 0x10, 0x9f, 0x07, 0x00, 0x10, 0xa1, 0x07, 0x00, 0x10, 0xa3, 0x07, - 0x00, 0x10, 0xa5, 0x07, 0x00, 0x10, 0xa7, 0x07, 0x00, 0x10, 0xa9, 0x07, 0x00, 0x10, 0xab, 0x07, - 0x00, 0x10, 0xad, 0x07, 0x00, 0x10, 0xaf, 0x07, 0x00, 0x10, 0xb1, 0x07, 0x00, 0x10, 0xb3, 0x07, - 0x00, 0x10, 0xb5, 0x07, 0x00, 0x10, 0xb7, 0x07, 0x00, 0x10, 0xb9, 0x07, 0x00, 0x10, 0xbb, 0x07, - 0x00, 0x10, 0xbd, 0x07, 0x00, 0x10, 0xbf, 0x07, 0x00, 0x10, 0xc1, 0x07, 0x00, 0x10, 0xc3, 0x07, - 0x00, 0x10, 0xc5, 0x07, 0x00, 0x10, 0xc7, 0x07, 0x00, 0x10, 0xc9, 0x07, 0x00, 0x10, 0xcb, 0x07, - 0x00, 0x10, 0xcd, 0x07, 0x00, 0x10, 0xcf, 0x07, 0x00, 0x10, 0xd1, 0x07, 0x00, 0x10, 0x07, 0x07, - 0x00, 0x10, 0xd5, 0x07, 0x00, 0x10, 0xd7, 0x07, 0x00, 0x10, 0xd9, 0x07, 0x00, 0x10, 0xdb, 0x07, - 0x00, 0x10, 0xdd, 0x07, 0x00, 0x10, 0xdf, 0x07, 0x00, 0x10, 0xe1, 0x07, 0x00, 0x10, 0xe3, 0x07, - 0x00, 0x10, 0xe5, 0x07, 0x00, 0x10, 0xe7, 0x07, 0x00, 0x10, 0xe9, 0x07, 0x00, 0x10, 0xeb, 0x07, - 0x00, 0x10, 0xed, 0x07, 0x00, 0x10, 0xef, 0x07, 0x00, 0x10, 0xf1, 0x07, 0x00, 0x10, 0xf3, 0x07, - 0x00, 0x10, 0xf5, 0x07, 0x00, 0x10, 0xf7, 0x07, 0x00, 0x10, 0xf9, 0x07, 0x00, 0x10, 0xfb, 0x07, - 0x00, 0x10, 0xfd, 0x07, 0x00, 0x10, 0xff, 0x07, 0x00, 0x10, 0x10, 0xb5, 0x05, 0x4c, 0x23, 0x78, - 0x33, 0xb9, 0x04, 0x4b, 0x13, 0xb1, 0x04, 0x48, 0xaf, 0xf3, 0x00, 0x80, 0x01, 0x23, 0x23, 0x70, - 0x10, 0xbd, 0xc4, 0x09, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x68, 0x97, 0x00, 0x10, 0x08, 0xb5, - 0x03, 0x4b, 0x1b, 0xb1, 0x03, 0x49, 0x03, 0x48, 0xaf, 0xf3, 0x00, 0x80, 0x08, 0xbd, 0x00, 0x00, - 0x00, 0x00, 0xc8, 0x09, 0x00, 0x20, 0x68, 0x97, 0x00, 0x10, 0x38, 0xb5, 0x0d, 0x48, 0x01, 0xf0, - 0x82, 0xff, 0x0c, 0x48, 0x01, 0xf0, 0x7f, 0xff, 0x00, 0x24, 0x00, 0x20, 0x00, 0xf0, 0xf5, 0xf8, - 0x0a, 0x4d, 0x28, 0x46, 0x00, 0xf0, 0x05, 0xfc, 0x00, 0x20, 0x00, 0xf0, 0x10, 0xf9, 0x28, 0x46, - 0x00, 0xf0, 0xff, 0xfb, 0x65, 0x1c, 0x21, 0x46, 0x05, 0x48, 0x01, 0xf0, 0x0a, 0xff, 0x2c, 0x46, - 0xeb, 0xe7, 0x48, 0x90, 0x00, 0x10, 0x4c, 0x90, 0x00, 0x10, 0x20, 0xa1, 0x07, 0x00, 0x74, 0x90, - 0x00, 0x10, 0x08, 0xb5, 0xc9, 0xb2, 0x00, 0xf0, 0x1a, 0xff, 0x08, 0xbd, 0x10, 0xb5, 0x88, 0xb0, - 0x0c, 0x46, 0x8d, 0xf8, 0x00, 0x20, 0x00, 0x22, 0x8d, 0xf8, 0x01, 0x20, 0x01, 0x90, 0x02, 0x92, - 0x8d, 0xf8, 0x0c, 0x30, 0x04, 0x91, 0x05, 0x92, 0x06, 0x92, 0x07, 0x92, 0x68, 0x46, 0x00, 0xf0, - 0x18, 0xff, 0xa0, 0x42, 0x02, 0xd1, 0x00, 0x20, 0x08, 0xb0, 0x10, 0xbd, 0x6f, 0xf0, 0x08, 0x00, - 0xfa, 0xe7, 0x10, 0xb5, 0x88, 0xb0, 0x0c, 0x46, 0x8d, 0xf8, 0x00, 0x20, 0x00, 0x22, 0x8d, 0xf8, - 0x01, 0x20, 0x01, 0x92, 0x02, 0x90, 0x8d, 0xf8, 0x0c, 0x30, 0x04, 0x91, 0x05, 0x92, 0x06, 0x92, - 0x07, 0x92, 0x68, 0x46, 0x00, 0xf0, 0xfd, 0xfe, 0xa0, 0x42, 0x02, 0xd1, 0x00, 0x20, 0x08, 0xb0, - 0x10, 0xbd, 0x6f, 0xf0, 0x08, 0x00, 0xfa, 0xe7, 0x00, 0x00, 0x08, 0xb5, 0x02, 0x49, 0x00, 0x20, - 0x00, 0xf0, 0xbb, 0xfe, 0x08, 0xbd, 0x00, 0x09, 0x3d, 0x00, 0x08, 0xb5, 0x03, 0x46, 0x01, 0x48, - 0x01, 0xf0, 0xb7, 0xfe, 0xfe, 0xe7, 0x80, 0x90, 0x00, 0x10, 0x08, 0xb5, 0x4f, 0xf4, 0xe1, 0x31, - 0x02, 0x4b, 0x18, 0x68, 0x01, 0xf0, 0x25, 0xfa, 0x08, 0xbd, 0x00, 0x00, 0x00, 0x20, 0x00, 0xb5, - 0x85, 0xb0, 0x12, 0x4b, 0xec, 0x46, 0x0f, 0xcb, 0x8c, 0xe8, 0x0f, 0x00, 0x60, 0x46, 0x00, 0xf0, - 0xde, 0xf8, 0x03, 0x46, 0x18, 0xb1, 0x18, 0x46, 0x05, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0xff, 0xf7, - 0xe4, 0xff, 0x03, 0x46, 0x00, 0x28, 0xf6, 0xd1, 0x00, 0xf0, 0xe5, 0xf8, 0x48, 0xb9, 0x00, 0xf0, - 0xb0, 0xf8, 0x03, 0x46, 0x00, 0x28, 0xee, 0xd0, 0x91, 0x22, 0x05, 0x49, 0x06, 0x48, 0xff, 0xf7, - 0xcc, 0xff, 0x8c, 0x22, 0x03, 0x49, 0x03, 0x48, 0xff, 0xf7, 0xc7, 0xff, 0x00, 0xbf, 0x00, 0x91, - 0x00, 0x10, 0x9c, 0x90, 0x00, 0x10, 0xf8, 0x90, 0x00, 0x10, 0x00, 0xbf, 0x70, 0x47, 0x4f, 0xf0, - 0xff, 0x30, 0x70, 0x47, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, - 0x4f, 0xf0, 0xff, 0x30, 0x70, 0x47, 0x2d, 0xe9, 0xf0, 0x41, 0xd8, 0xb9, 0x0c, 0x46, 0x90, 0x46, - 0x05, 0x46, 0x07, 0x46, 0x02, 0xe0, 0x01, 0x34, 0x01, 0x37, 0x01, 0x35, 0x45, 0x45, 0x0e, 0xda, - 0x0c, 0x4e, 0x30, 0x46, 0x01, 0xf0, 0x3f, 0xfa, 0xc1, 0xb2, 0x21, 0x70, 0x30, 0x46, 0x01, 0xf0, - 0x4e, 0xfa, 0x23, 0x78, 0x0d, 0x2b, 0xee, 0xd1, 0x0a, 0x23, 0x23, 0x70, 0x01, 0x37, 0x38, 0x46, - 0xbd, 0xe8, 0xf0, 0x81, 0x01, 0xf0, 0x37, 0xfd, 0x09, 0x23, 0x03, 0x60, 0x4f, 0xf0, 0xff, 0x37, - 0xf5, 0xe7, 0x00, 0x20, 0x04, 0x40, 0x70, 0xb5, 0x01, 0x38, 0x01, 0x28, 0x13, 0xd8, 0x0c, 0x46, - 0x16, 0x46, 0x00, 0x25, 0x05, 0xe0, 0x14, 0xf8, 0x01, 0x1b, 0x0a, 0x48, 0x01, 0xf0, 0x2f, 0xfa, - 0x01, 0x35, 0xb5, 0x42, 0x0d, 0xda, 0x23, 0x78, 0x0a, 0x2b, 0xf4, 0xd1, 0x0d, 0x21, 0x05, 0x48, - 0x01, 0xf0, 0x25, 0xfa, 0xef, 0xe7, 0x01, 0xf0, 0x16, 0xfd, 0x09, 0x23, 0x03, 0x60, 0x4f, 0xf0, - 0xff, 0x36, 0x30, 0x46, 0x70, 0xbd, 0x00, 0x20, 0x04, 0x40, 0x10, 0xb5, 0x04, 0x46, 0x0b, 0x4b, - 0x1b, 0x68, 0x83, 0x42, 0x0c, 0xd9, 0x0a, 0x4a, 0x04, 0xeb, 0x44, 0x03, 0x02, 0xeb, 0x83, 0x03, - 0x04, 0xeb, 0x44, 0x04, 0x59, 0x68, 0x52, 0xf8, 0x24, 0x00, 0x00, 0xf0, 0xfe, 0xfc, 0x10, 0xbd, - 0x39, 0x22, 0x04, 0x49, 0x05, 0x48, 0xff, 0xf7, 0x50, 0xff, 0xec, 0xe7, 0x00, 0xbf, 0x28, 0x91, - 0x00, 0x10, 0x10, 0x91, 0x00, 0x10, 0x48, 0x91, 0x00, 0x10, 0xa8, 0x91, 0x00, 0x10, 0x10, 0xb5, - 0x04, 0x46, 0x0b, 0x4b, 0x1b, 0x68, 0x83, 0x42, 0x0c, 0xd9, 0x0a, 0x4a, 0x04, 0xeb, 0x44, 0x03, - 0x02, 0xeb, 0x83, 0x03, 0x04, 0xeb, 0x44, 0x04, 0x59, 0x68, 0x52, 0xf8, 0x24, 0x00, 0x00, 0xf0, - 0xd8, 0xfc, 0x10, 0xbd, 0x44, 0x22, 0x04, 0x49, 0x05, 0x48, 0xff, 0xf7, 0x2e, 0xff, 0xec, 0xe7, - 0x00, 0xbf, 0x28, 0x91, 0x00, 0x10, 0x10, 0x91, 0x00, 0x10, 0x48, 0x91, 0x00, 0x10, 0xa8, 0x91, - 0x00, 0x10, 0x38, 0xb5, 0x00, 0x24, 0x25, 0x46, 0x00, 0xe0, 0x01, 0x34, 0x0a, 0x4b, 0x1b, 0x68, - 0xa3, 0x42, 0x0e, 0xd9, 0x20, 0x46, 0xff, 0xf7, 0xd2, 0xff, 0x04, 0xeb, 0x44, 0x03, 0x06, 0x48, - 0x00, 0xeb, 0x83, 0x00, 0x00, 0xf0, 0xcd, 0xfc, 0x00, 0x28, 0xee, 0xd0, 0x6f, 0xf0, 0x07, 0x05, - 0xeb, 0xe7, 0x28, 0x46, 0x38, 0xbd, 0x28, 0x91, 0x00, 0x10, 0x10, 0x91, 0x00, 0x10, 0x58, 0xb1, - 0x10, 0xb4, 0x06, 0x4c, 0x0f, 0xc8, 0x84, 0xe8, 0x0f, 0x00, 0x05, 0x4b, 0x01, 0x22, 0x1a, 0x70, - 0x00, 0x20, 0x5d, 0xf8, 0x04, 0x4b, 0x70, 0x47, 0x6f, 0xf0, 0x5f, 0x00, 0x70, 0x47, 0xe0, 0x09, - 0x00, 0x20, 0xf0, 0x09, 0x00, 0x20, 0x38, 0xb5, 0x00, 0x24, 0x25, 0x46, 0x00, 0xe0, 0x01, 0x34, - 0x09, 0x4b, 0x1b, 0x68, 0xa3, 0x42, 0x0b, 0xd9, 0x04, 0xeb, 0x44, 0x03, 0x07, 0x48, 0x00, 0xeb, - 0x83, 0x00, 0x00, 0xf0, 0x9e, 0xfc, 0x00, 0x28, 0xf1, 0xd0, 0x6f, 0xf0, 0x07, 0x05, 0xee, 0xe7, - 0x28, 0x46, 0x38, 0xbd, 0x00, 0xbf, 0x2c, 0x91, 0x00, 0x10, 0x30, 0x91, 0x00, 0x10, 0x08, 0xb5, - 0x00, 0x20, 0x00, 0xf0, 0x86, 0xfc, 0x08, 0xbd, 0x08, 0xb5, 0x01, 0x20, 0x00, 0xf0, 0x81, 0xfc, - 0x08, 0xbd, 0x08, 0xb5, 0x02, 0x20, 0x00, 0xf0, 0x7c, 0xfc, 0x08, 0xbd, 0x08, 0xb5, 0x03, 0x20, - 0x00, 0xf0, 0x77, 0xfc, 0x08, 0xbd, 0x3b, 0x48, 0x85, 0x46, 0x3b, 0x48, 0x80, 0x47, 0x80, 0xb9, - 0x3b, 0x49, 0x3b, 0x4a, 0x3c, 0x4b, 0x9b, 0x1a, 0x03, 0xdd, 0x04, 0x3b, 0xc8, 0x58, 0xd0, 0x50, - 0xfb, 0xdc, 0x39, 0x49, 0x3a, 0x4a, 0x00, 0x20, 0x91, 0x42, 0xbc, 0xbf, 0x41, 0xf8, 0x04, 0x0b, - 0xfa, 0xe7, 0x37, 0x48, 0x80, 0x47, 0x37, 0x48, 0x80, 0x47, 0x37, 0x48, 0x80, 0x47, 0xff, 0xf7, - 0xfe, 0xff, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, - 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, - 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, - 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, - 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, - 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, - 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, - 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, - 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, - 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, - 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, - 0xfe, 0xe7, 0xfe, 0xe7, 0xfe, 0xe7, 0x00, 0x00, 0x10, 0x20, 0xdd, 0x08, 0x00, 0x10, 0x74, 0x97, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0xc4, 0x09, 0x00, 0x20, 0xc4, 0x09, 0x00, 0x20, 0x74, 0x0e, - 0x00, 0x20, 0xf1, 0x08, 0x00, 0x10, 0xed, 0x1f, 0x00, 0x10, 0xc5, 0x03, 0x00, 0x10, 0x08, 0xb5, - 0x03, 0x46, 0x0b, 0x4a, 0x12, 0x68, 0x42, 0xb1, 0x0a, 0x4a, 0x10, 0x68, 0x03, 0x44, 0x09, 0x4a, - 0x93, 0x42, 0x06, 0xd8, 0x07, 0x4a, 0x13, 0x60, 0x08, 0xbd, 0x05, 0x4a, 0x07, 0x49, 0x11, 0x60, - 0xf2, 0xe7, 0x01, 0xf0, 0xc8, 0xfb, 0x0c, 0x23, 0x03, 0x60, 0x4f, 0xf0, 0xff, 0x30, 0xf3, 0xe7, - 0x00, 0xbf, 0xf4, 0x09, 0x00, 0x20, 0x00, 0xf0, 0x0f, 0x20, 0x78, 0x0e, 0x00, 0x20, 0x4f, 0xf0, - 0x80, 0x43, 0x9b, 0x68, 0x03, 0xf4, 0x60, 0x63, 0xb3, 0xf5, 0x80, 0x6f, 0x0e, 0xd0, 0xb3, 0xf5, - 0xc0, 0x6f, 0x16, 0xd0, 0xb3, 0xf5, 0x00, 0x6f, 0x16, 0xd0, 0xb3, 0xf5, 0x20, 0x6f, 0x15, 0xd0, - 0x0d, 0x4b, 0x1b, 0x78, 0xa1, 0x2b, 0x13, 0xd9, 0x0c, 0x4a, 0x00, 0xe0, 0x0c, 0x4a, 0x4f, 0xf0, - 0x80, 0x43, 0x9b, 0x68, 0xc3, 0xf3, 0x82, 0x13, 0x22, 0xfa, 0x03, 0xf3, 0x09, 0x4a, 0x13, 0x60, - 0x70, 0x47, 0x4f, 0xf4, 0xfa, 0x52, 0xf2, 0xe7, 0x07, 0x4a, 0xf0, 0xe7, 0x07, 0x4a, 0xee, 0xe7, - 0x07, 0x4a, 0xec, 0xe7, 0x00, 0xbf, 0xf8, 0x09, 0x00, 0x20, 0x80, 0xf0, 0xfa, 0x02, 0x00, 0x36, - 0x6e, 0x01, 0xfc, 0x09, 0x00, 0x20, 0x00, 0x0e, 0x27, 0x07, 0x00, 0x12, 0x7a, 0x00, 0x00, 0x5a, - 0x62, 0x02, 0x4f, 0xf0, 0x80, 0x42, 0x13, 0x68, 0x23, 0xf4, 0x40, 0x33, 0x43, 0xf4, 0x00, 0x33, - 0x13, 0x60, 0x00, 0x20, 0x70, 0x47, 0x08, 0xb5, 0x00, 0xf0, 0x1a, 0xfb, 0x4f, 0x4b, 0x18, 0x70, - 0x4f, 0x4b, 0x4f, 0x4a, 0x9a, 0x60, 0x62, 0xb6, 0xd3, 0xf8, 0x88, 0x20, 0x42, 0xf4, 0x70, 0x02, - 0xc3, 0xf8, 0x88, 0x20, 0xbf, 0xf3, 0x4f, 0x8f, 0xbf, 0xf3, 0x6f, 0x8f, 0x04, 0x20, 0x00, 0xf0, - 0xdc, 0xf9, 0xff, 0xf7, 0xa4, 0xff, 0x4f, 0xf0, 0x80, 0x42, 0x13, 0x68, 0x43, 0xf4, 0x00, 0x33, - 0x13, 0x60, 0x44, 0x4b, 0x01, 0x22, 0xc3, 0xf8, 0x00, 0x27, 0x42, 0x4b, 0xd3, 0xf8, 0x00, 0x31, - 0x13, 0xf4, 0x80, 0x3f, 0xf9, 0xd0, 0x3f, 0x4a, 0xd2, 0xf8, 0x00, 0x31, 0x43, 0xf0, 0x01, 0x03, - 0xc2, 0xf8, 0x00, 0x31, 0x3c, 0x4b, 0xd3, 0xf8, 0x00, 0x31, 0x13, 0xf4, 0x80, 0x3f, 0xf9, 0xd0, - 0x03, 0x20, 0x00, 0xf0, 0x72, 0xf9, 0x04, 0x20, 0x00, 0xf0, 0x6f, 0xf9, 0x05, 0x20, 0x00, 0xf0, - 0x6c, 0xf9, 0x06, 0x20, 0x00, 0xf0, 0x69, 0xf9, 0x07, 0x20, 0x00, 0xf0, 0x66, 0xf9, 0x08, 0x20, - 0x00, 0xf0, 0x63, 0xf9, 0x09, 0x20, 0x00, 0xf0, 0x60, 0xf9, 0x0a, 0x20, 0x00, 0xf0, 0x5d, 0xf9, - 0x0d, 0x20, 0x00, 0xf0, 0x5a, 0xf9, 0x0e, 0x20, 0x00, 0xf0, 0x57, 0xf9, 0x0f, 0x20, 0x00, 0xf0, - 0x54, 0xf9, 0x10, 0x20, 0x00, 0xf0, 0x51, 0xf9, 0x11, 0x20, 0x00, 0xf0, 0x4e, 0xf9, 0x12, 0x20, - 0x00, 0xf0, 0x4b, 0xf9, 0x13, 0x20, 0x00, 0xf0, 0x48, 0xf9, 0x14, 0x20, 0x00, 0xf0, 0x45, 0xf9, - 0x17, 0x20, 0x00, 0xf0, 0x42, 0xf9, 0x1c, 0x20, 0x00, 0xf0, 0x3f, 0xf9, 0x1d, 0x20, 0x00, 0xf0, - 0x3c, 0xf9, 0x1e, 0x20, 0x00, 0xf0, 0x39, 0xf9, 0x1f, 0x20, 0x00, 0xf0, 0x36, 0xf9, 0x21, 0x20, - 0x00, 0xf0, 0x33, 0xf9, 0x22, 0x20, 0x00, 0xf0, 0x30, 0xf9, 0x23, 0x20, 0x00, 0xf0, 0x2d, 0xf9, - 0x24, 0x20, 0x00, 0xf0, 0x2a, 0xf9, 0x27, 0x20, 0x00, 0xf0, 0x27, 0xf9, 0x28, 0x20, 0x00, 0xf0, - 0x24, 0xf9, 0x29, 0x20, 0x00, 0xf0, 0x21, 0xf9, 0x2a, 0x20, 0x00, 0xf0, 0x1e, 0xf9, 0x2b, 0x20, - 0x00, 0xf0, 0x1b, 0xf9, 0x2c, 0x20, 0x00, 0xf0, 0x18, 0xf9, 0x2d, 0x20, 0x00, 0xf0, 0x15, 0xf9, - 0x2e, 0x20, 0x00, 0xf0, 0x12, 0xf9, 0x2f, 0x20, 0x00, 0xf0, 0x0f, 0xf9, 0x34, 0x20, 0x00, 0xf0, - 0x0c, 0xf9, 0xff, 0xf7, 0x44, 0xfd, 0x08, 0xbd, 0x00, 0xbf, 0xf8, 0x09, 0x00, 0x20, 0x00, 0xed, - 0x00, 0xe0, 0x00, 0x02, 0x00, 0x10, 0x00, 0xa0, 0x02, 0x40, 0x38, 0xb5, 0x4f, 0xf0, 0xe0, 0x23, - 0x9c, 0x69, 0x1a, 0x69, 0x22, 0xf4, 0x80, 0x32, 0x18, 0x49, 0x0a, 0x60, 0x1b, 0x69, 0x13, 0xf0, - 0x01, 0x0f, 0x21, 0xd1, 0x4f, 0xf0, 0xe0, 0x23, 0x6f, 0xf0, 0x7f, 0x44, 0x5c, 0x61, 0x9c, 0x61, - 0x05, 0x22, 0x1a, 0x61, 0x4f, 0xf0, 0x80, 0x75, 0x11, 0x4b, 0x19, 0x68, 0x11, 0x4a, 0x00, 0x23, - 0xa0, 0xfb, 0x01, 0x01, 0x08, 0xf0, 0x61, 0xf9, 0xb0, 0xfb, 0xf5, 0xf3, 0x0e, 0x4a, 0x13, 0x60, - 0x05, 0xfb, 0x13, 0x00, 0x84, 0x42, 0x0c, 0xd8, 0x13, 0x68, 0x01, 0x33, 0x13, 0x60, 0x20, 0x1a, - 0x28, 0x44, 0x09, 0x4b, 0x18, 0x60, 0x38, 0xbd, 0x4f, 0xf0, 0xe0, 0x23, 0x5d, 0x69, 0x01, 0x35, - 0xe2, 0xe7, 0x20, 0x1a, 0x05, 0x4b, 0x18, 0x60, 0xf5, 0xe7, 0x04, 0x0a, 0x00, 0x20, 0xfc, 0x09, - 0x00, 0x20, 0x40, 0x42, 0x0f, 0x00, 0x04, 0x00, 0x00, 0x20, 0x08, 0x0a, 0x00, 0x20, 0x08, 0xb5, - 0x0e, 0x4b, 0x19, 0x60, 0x0e, 0x4b, 0x1b, 0x68, 0x00, 0x2b, 0x10, 0xdc, 0x08, 0xb9, 0x00, 0x20, - 0x08, 0xbd, 0xff, 0xf7, 0xb2, 0xff, 0x09, 0x4b, 0x1b, 0x68, 0x00, 0x2b, 0x0a, 0xdd, 0x4f, 0xf0, - 0xe0, 0x22, 0x13, 0x69, 0x43, 0xf0, 0x02, 0x03, 0x13, 0x61, 0x00, 0x20, 0xf0, 0xe7, 0x6f, 0xf0, - 0x05, 0x00, 0xed, 0xe7, 0x00, 0x20, 0xeb, 0xe7, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x20, 0x04, 0x00, - 0x00, 0x20, 0x08, 0xb5, 0x09, 0x4b, 0x1b, 0x68, 0x2b, 0xb1, 0x6f, 0xf0, 0x0f, 0x00, 0x98, 0x47, - 0x06, 0x4b, 0x00, 0x22, 0x1a, 0x60, 0x05, 0x4b, 0x1a, 0x68, 0x4f, 0xf0, 0xe0, 0x23, 0x1a, 0x61, - 0x04, 0x4b, 0x4f, 0xf0, 0xff, 0x32, 0x1a, 0x60, 0x08, 0xbd, 0x00, 0x0a, 0x00, 0x20, 0x04, 0x0a, - 0x00, 0x20, 0x04, 0x00, 0x00, 0x20, 0x08, 0xb5, 0x4f, 0xf0, 0xe0, 0x23, 0x1b, 0x69, 0x13, 0xf4, - 0x80, 0x3f, 0x07, 0xd0, 0x0a, 0x4b, 0x1b, 0x68, 0x00, 0x2b, 0x04, 0xdd, 0x08, 0x4a, 0x13, 0x68, - 0x01, 0x3b, 0x13, 0x60, 0x08, 0xbd, 0xff, 0xf7, 0xd4, 0xff, 0x05, 0x4b, 0x1b, 0x68, 0x00, 0x2b, - 0xf8, 0xd0, 0x00, 0x20, 0x98, 0x47, 0x02, 0x4b, 0x00, 0x22, 0x1a, 0x60, 0xf2, 0xe7, 0x04, 0x00, - 0x00, 0x20, 0x00, 0x0a, 0x00, 0x20, 0x08, 0xb5, 0xff, 0xf7, 0xdd, 0xff, 0x08, 0xbd, 0x10, 0xb5, - 0x15, 0x4b, 0x1b, 0x68, 0x00, 0x2b, 0x15, 0xdb, 0x13, 0x4b, 0x1c, 0x68, 0xe4, 0xb9, 0x4f, 0xf0, - 0xe0, 0x23, 0x9a, 0x69, 0x11, 0x4b, 0x1b, 0x68, 0x9a, 0x42, 0x18, 0xd8, 0xff, 0xf7, 0xb1, 0xff, - 0x0f, 0x4b, 0x1b, 0x68, 0x23, 0xb1, 0x00, 0x20, 0x98, 0x47, 0x0c, 0x4b, 0x00, 0x22, 0x1a, 0x60, - 0x20, 0x46, 0x10, 0xbd, 0x0a, 0x4b, 0x1b, 0x68, 0x23, 0xb1, 0x00, 0x20, 0x98, 0x47, 0x07, 0x4b, - 0x00, 0x22, 0x1a, 0x60, 0x00, 0x24, 0xf3, 0xe7, 0x6f, 0xf0, 0x05, 0x04, 0xf0, 0xe7, 0x6f, 0xf0, - 0x05, 0x04, 0xed, 0xe7, 0x00, 0xbf, 0x04, 0x00, 0x00, 0x20, 0x08, 0x0a, 0x00, 0x20, 0x00, 0x0a, - 0x00, 0x20, 0x08, 0xb5, 0x13, 0x4b, 0x1b, 0x68, 0x00, 0x2b, 0x1e, 0xdc, 0x08, 0xb9, 0x00, 0x20, - 0x08, 0xbd, 0xff, 0xf7, 0x22, 0xff, 0x0e, 0x4b, 0x1b, 0x68, 0x00, 0x2b, 0x0a, 0xdd, 0x4f, 0xf0, - 0xe0, 0x23, 0x1b, 0x69, 0x13, 0xf4, 0x80, 0x3f, 0xf5, 0xd0, 0x09, 0x4a, 0x13, 0x68, 0x01, 0x3b, - 0x13, 0x60, 0xf0, 0xe7, 0x4f, 0xf0, 0xe0, 0x23, 0x9a, 0x69, 0x06, 0x4b, 0x1b, 0x68, 0x9a, 0x42, - 0xf8, 0xd8, 0xff, 0xf7, 0x6e, 0xff, 0x00, 0x20, 0xe2, 0xe7, 0x6f, 0xf0, 0x05, 0x00, 0xdf, 0xe7, - 0x00, 0xbf, 0x04, 0x00, 0x00, 0x20, 0x08, 0x0a, 0x00, 0x20, 0x1f, 0x28, 0x0b, 0xd9, 0x20, 0x38, - 0xc0, 0xb2, 0x4f, 0xf0, 0x80, 0x41, 0x8b, 0x6c, 0x01, 0x22, 0x02, 0xfa, 0x00, 0xf0, 0x18, 0x43, - 0x88, 0x64, 0x00, 0x20, 0x70, 0x47, 0x4f, 0xf0, 0x80, 0x41, 0x4b, 0x6a, 0x01, 0x22, 0x02, 0xfa, - 0x00, 0xf0, 0x18, 0x43, 0x48, 0x62, 0xf4, 0xe7, 0x1f, 0x28, 0x0c, 0xd9, 0x20, 0x38, 0xc0, 0xb2, - 0x4f, 0xf0, 0x80, 0x41, 0x8b, 0x6c, 0x01, 0x22, 0x02, 0xfa, 0x00, 0xf0, 0x23, 0xea, 0x00, 0x00, - 0x88, 0x64, 0x00, 0x20, 0x70, 0x47, 0x4f, 0xf0, 0x80, 0x41, 0x4b, 0x6a, 0x01, 0x22, 0x02, 0xfa, - 0x00, 0xf0, 0x23, 0xea, 0x00, 0x00, 0x48, 0x62, 0xf3, 0xe7, 0x10, 0xb5, 0x04, 0x46, 0x00, 0x21, - 0x4f, 0xf4, 0x7a, 0x70, 0xff, 0xf7, 0x0b, 0xff, 0x4f, 0xf0, 0x80, 0x43, 0x9b, 0x68, 0x23, 0x42, - 0x07, 0xd1, 0xff, 0xf7, 0x64, 0xff, 0x10, 0xf1, 0x06, 0x0f, 0xf5, 0xd0, 0x6f, 0xf0, 0x09, 0x00, - 0x02, 0xe0, 0xff, 0xf7, 0x1e, 0xff, 0x00, 0x20, 0x10, 0xbd, 0x70, 0xb5, 0x04, 0x46, 0x4f, 0xf0, - 0x80, 0x43, 0x9d, 0x68, 0x05, 0xf4, 0x60, 0x65, 0x06, 0x28, 0x00, 0xf2, 0xa4, 0x80, 0xdf, 0xe8, - 0x00, 0xf0, 0x04, 0xa2, 0x5f, 0x26, 0x35, 0x4a, 0x5f, 0x00, 0x4f, 0xf0, 0x80, 0x42, 0x93, 0x68, - 0x43, 0xf4, 0x80, 0x23, 0x93, 0x60, 0x4f, 0xf0, 0x80, 0x60, 0xff, 0xf7, 0xce, 0xff, 0x00, 0x28, - 0x40, 0xf0, 0x94, 0x80, 0x4f, 0xf0, 0x80, 0x42, 0x93, 0x68, 0x23, 0xf4, 0x60, 0x63, 0x93, 0x60, - 0x4f, 0xf4, 0x00, 0x50, 0xff, 0xf7, 0xc1, 0xff, 0x06, 0x46, 0x00, 0x28, 0x53, 0xd1, 0x06, 0x2c, - 0x61, 0xd8, 0xdf, 0xe8, 0x04, 0xf0, 0x5a, 0x60, 0x79, 0x64, 0x6b, 0x72, 0x79, 0x00, 0x4f, 0xf0, - 0x00, 0x50, 0xff, 0xf7, 0xb2, 0xff, 0x00, 0x28, 0x7b, 0xd1, 0x4f, 0xf0, 0x80, 0x42, 0x93, 0x68, - 0x23, 0xf4, 0x60, 0x63, 0x43, 0xf4, 0xc0, 0x63, 0x93, 0x60, 0xe1, 0xe7, 0x4f, 0xf0, 0x80, 0x42, - 0x93, 0x68, 0x43, 0xf4, 0x00, 0x23, 0x93, 0x60, 0x4f, 0xf0, 0x00, 0x60, 0xff, 0xf7, 0x9d, 0xff, - 0x00, 0x28, 0x69, 0xd1, 0x4f, 0xf0, 0x80, 0x42, 0x93, 0x68, 0x23, 0xf4, 0x60, 0x63, 0x43, 0xf4, - 0x00, 0x63, 0x93, 0x60, 0xcc, 0xe7, 0x4f, 0xf0, 0x80, 0x42, 0x93, 0x68, 0x43, 0xf4, 0x80, 0x13, - 0x93, 0x60, 0x4f, 0xf0, 0x80, 0x50, 0xff, 0xf7, 0x88, 0xff, 0x00, 0x28, 0x57, 0xd1, 0x4f, 0xf0, - 0x80, 0x42, 0x93, 0x68, 0x23, 0xf4, 0x60, 0x63, 0x43, 0xf4, 0x20, 0x63, 0x93, 0x60, 0xb7, 0xe7, - 0x4f, 0xf0, 0x80, 0x42, 0x93, 0x68, 0x43, 0xf4, 0x00, 0x33, 0x93, 0x60, 0x4f, 0xf0, 0x00, 0x70, - 0xff, 0xf7, 0x73, 0xff, 0x00, 0x28, 0x45, 0xd1, 0x4f, 0xf0, 0x80, 0x42, 0x93, 0x68, 0x23, 0xf4, - 0x60, 0x63, 0x93, 0x60, 0xa4, 0xe7, 0x4f, 0xf0, 0x80, 0x42, 0x93, 0x68, 0x23, 0xf4, 0x60, 0x63, - 0x2b, 0x43, 0x93, 0x60, 0x6f, 0xf0, 0x09, 0x06, 0x07, 0xe0, 0x4f, 0xf0, 0x80, 0x42, 0x93, 0x68, - 0x23, 0xf4, 0xd0, 0x13, 0x93, 0x60, 0xff, 0xf7, 0x3a, 0xfd, 0x30, 0x46, 0x70, 0xbd, 0x4f, 0xf0, - 0x80, 0x42, 0x93, 0x68, 0x23, 0xf4, 0xf0, 0x13, 0x93, 0x60, 0xf4, 0xe7, 0x4f, 0xf0, 0x80, 0x42, - 0x93, 0x68, 0x23, 0xf4, 0xb0, 0x13, 0x93, 0x60, 0xed, 0xe7, 0x4f, 0xf0, 0x80, 0x42, 0x93, 0x68, - 0x23, 0xf4, 0x60, 0x23, 0x93, 0x60, 0xe6, 0xe7, 0x4f, 0xf0, 0x80, 0x42, 0x93, 0x68, 0x23, 0xf4, - 0xe0, 0x13, 0x93, 0x60, 0xdf, 0xe7, 0x6f, 0xf0, 0x02, 0x06, 0xde, 0xe7, 0x6f, 0xf0, 0x09, 0x06, - 0xdb, 0xe7, 0x6f, 0xf0, 0x09, 0x06, 0xd8, 0xe7, 0x6f, 0xf0, 0x09, 0x06, 0xd5, 0xe7, 0x6f, 0xf0, - 0x09, 0x06, 0xd2, 0xe7, 0x6f, 0xf0, 0x09, 0x06, 0xcf, 0xe7, 0x1f, 0x28, 0x0e, 0xd9, 0x20, 0x38, - 0xc0, 0xb2, 0x01, 0x23, 0x03, 0xfa, 0x00, 0xf0, 0x4f, 0xf0, 0x80, 0x43, 0x58, 0x64, 0x4f, 0xf0, - 0x80, 0x43, 0x5b, 0x6c, 0x00, 0x2b, 0xfa, 0xd1, 0x00, 0x20, 0x70, 0x47, 0x01, 0x23, 0x03, 0xfa, - 0x00, 0xf0, 0x4f, 0xf0, 0x80, 0x43, 0x58, 0x60, 0x4f, 0xf0, 0x80, 0x43, 0x5b, 0x68, 0x00, 0x2b, - 0xfa, 0xd1, 0xf1, 0xe7, 0x0d, 0x29, 0x48, 0xd1, 0x2d, 0xe9, 0xf0, 0x43, 0x87, 0xb0, 0x04, 0x46, - 0x4f, 0xf0, 0x84, 0x50, 0x00, 0xf0, 0x5f, 0xf8, 0x4f, 0xf0, 0x84, 0x50, 0x06, 0x68, 0x00, 0x96, - 0xd0, 0xf8, 0x04, 0x90, 0xcd, 0xf8, 0x04, 0x90, 0x85, 0x68, 0x02, 0x95, 0xc7, 0x68, 0x03, 0x97, - 0xd0, 0xf8, 0x10, 0x80, 0xcd, 0xf8, 0x10, 0x80, 0x43, 0x69, 0x05, 0x93, 0x00, 0xf0, 0x53, 0xf8, - 0xf3, 0x0b, 0x23, 0x70, 0xf3, 0x0d, 0x63, 0x70, 0xf6, 0x0f, 0xa6, 0x70, 0x4f, 0xea, 0x49, 0x03, - 0xdb, 0xb2, 0x1e, 0x43, 0xa6, 0x70, 0x4f, 0xea, 0xd9, 0x13, 0xe3, 0x70, 0x4f, 0xea, 0xd9, 0x33, - 0x23, 0x71, 0x4f, 0xea, 0xd9, 0x59, 0x84, 0xf8, 0x05, 0x90, 0xeb, 0x0b, 0xa3, 0x71, 0xeb, 0x0d, - 0xe3, 0x71, 0xed, 0x0f, 0x25, 0x72, 0x7b, 0x00, 0xdb, 0xb2, 0x1d, 0x43, 0x25, 0x72, 0xfb, 0x09, - 0x63, 0x72, 0xfb, 0x0b, 0xa3, 0x72, 0xff, 0x0d, 0xe7, 0x72, 0x4f, 0xea, 0xd8, 0x38, 0x84, 0xf8, - 0x0c, 0x80, 0x00, 0x20, 0x07, 0xb0, 0xbd, 0xe8, 0xf0, 0x83, 0x6f, 0xf0, 0x02, 0x00, 0x70, 0x47, - 0x00, 0xb5, 0x85, 0xb0, 0x0d, 0x21, 0x68, 0x46, 0xff, 0xf7, 0xac, 0xff, 0x9d, 0xf8, 0x00, 0x00, - 0x00, 0xf0, 0x0f, 0x02, 0x9e, 0x28, 0x8c, 0xbf, 0x00, 0x23, 0x01, 0x23, 0x09, 0x2a, 0x88, 0xbf, - 0x43, 0xf0, 0x01, 0x03, 0x13, 0xb9, 0x05, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x4f, 0xf0, 0x80, 0x43, - 0x18, 0x6d, 0xc0, 0xb2, 0xf7, 0xe7, 0x08, 0xb5, 0x01, 0x46, 0x01, 0x48, 0x00, 0xf0, 0x0b, 0xf8, - 0x08, 0xbd, 0x00, 0x90, 0x02, 0x40, 0x08, 0xb5, 0x01, 0x46, 0x01, 0x48, 0x00, 0xf0, 0x23, 0xf8, - 0x08, 0xbd, 0x00, 0x90, 0x02, 0x40, 0xa1, 0xf1, 0x84, 0x51, 0xb1, 0xf5, 0x80, 0x3f, 0x14, 0xd2, - 0x41, 0xf2, 0x34, 0x23, 0x03, 0x64, 0x03, 0xf1, 0x69, 0x53, 0x03, 0xf5, 0x7d, 0x13, 0x03, 0xf6, - 0x6f, 0x23, 0x03, 0x64, 0x03, 0xf1, 0xd0, 0x43, 0xa3, 0xf5, 0x1c, 0x03, 0xa3, 0xf6, 0x83, 0x53, - 0x03, 0x64, 0x03, 0x4b, 0x03, 0x64, 0x00, 0x20, 0x70, 0x47, 0x6f, 0xf0, 0x02, 0x00, 0x70, 0x47, - 0x00, 0xbf, 0xc1, 0xb2, 0x08, 0x96, 0xa1, 0xf1, 0x84, 0x51, 0xb1, 0xf5, 0x80, 0x3f, 0x03, 0xd2, - 0x03, 0x4b, 0x03, 0x64, 0x00, 0x20, 0x70, 0x47, 0x6f, 0xf0, 0x02, 0x00, 0x70, 0x47, 0xef, 0xbe, - 0xad, 0xde, 0x08, 0xb5, 0x00, 0xf0, 0x82, 0xf8, 0x08, 0xbd, 0x08, 0xb5, 0x00, 0xf0, 0x80, 0xf8, - 0x08, 0xbd, 0x08, 0xb5, 0x00, 0xf0, 0x80, 0xf8, 0x08, 0xbd, 0x08, 0xb5, 0x00, 0xf0, 0x7a, 0xf8, - 0x08, 0xbd, 0x08, 0xb5, 0x00, 0xf0, 0xb9, 0xf8, 0x08, 0xbd, 0x08, 0xb5, 0x00, 0xf0, 0x76, 0xf8, - 0x08, 0xbd, 0x38, 0xb5, 0x04, 0x46, 0x05, 0x68, 0x42, 0x68, 0x01, 0x7a, 0x28, 0x46, 0x00, 0xf0, - 0x82, 0xf8, 0xe8, 0xb9, 0x63, 0x7a, 0x04, 0x2b, 0x5d, 0xd8, 0xdf, 0xe8, 0x03, 0xf0, 0x03, 0x1a, - 0x2a, 0x3a, 0x4b, 0x00, 0x2b, 0x6e, 0x62, 0x68, 0x23, 0xea, 0x02, 0x03, 0x2b, 0x66, 0x6b, 0x6e, - 0x62, 0x68, 0x23, 0xea, 0x02, 0x03, 0x6b, 0x66, 0xd5, 0xf8, 0xb8, 0x30, 0x62, 0x68, 0x23, 0xea, - 0x02, 0x03, 0xc5, 0xf8, 0xb8, 0x30, 0x62, 0x68, 0xa1, 0x7a, 0x28, 0x46, 0xff, 0xf7, 0xd5, 0xff, - 0x38, 0xbd, 0x2b, 0x6e, 0x62, 0x68, 0x13, 0x43, 0x2b, 0x66, 0x6b, 0x6e, 0x62, 0x68, 0x23, 0xea, - 0x02, 0x03, 0x6b, 0x66, 0xd5, 0xf8, 0xb8, 0x30, 0x62, 0x68, 0x13, 0x43, 0xc5, 0xf8, 0xb8, 0x30, - 0xe9, 0xe7, 0x2b, 0x6e, 0x62, 0x68, 0x23, 0xea, 0x02, 0x03, 0x2b, 0x66, 0x6b, 0x6e, 0x62, 0x68, - 0x13, 0x43, 0x6b, 0x66, 0xd5, 0xf8, 0xb8, 0x30, 0x62, 0x68, 0x13, 0x43, 0xc5, 0xf8, 0xb8, 0x30, - 0xd9, 0xe7, 0x2b, 0x6e, 0x62, 0x68, 0x13, 0x43, 0x2b, 0x66, 0x6b, 0x6e, 0x62, 0x68, 0x23, 0xea, - 0x02, 0x03, 0x6b, 0x66, 0xd5, 0xf8, 0xb8, 0x30, 0x62, 0x68, 0x23, 0xea, 0x02, 0x03, 0xc5, 0xf8, - 0xb8, 0x30, 0xc8, 0xe7, 0x2b, 0x6e, 0x62, 0x68, 0x23, 0xea, 0x02, 0x03, 0x2b, 0x66, 0x6b, 0x6e, - 0x62, 0x68, 0x13, 0x43, 0x6b, 0x66, 0xd5, 0xf8, 0xb8, 0x30, 0x62, 0x68, 0x23, 0xea, 0x02, 0x03, - 0xc5, 0xf8, 0xb8, 0x30, 0xb7, 0xe7, 0x6f, 0xf0, 0x02, 0x00, 0xb9, 0xe7, 0xc1, 0x61, 0x70, 0x47, - 0x01, 0x62, 0x70, 0x47, 0x81, 0x64, 0x70, 0x47, 0x00, 0x6c, 0x70, 0x47, 0x21, 0xb1, 0x01, 0x29, - 0x0a, 0xd0, 0x6f, 0xf0, 0x02, 0x00, 0x70, 0x47, 0xd0, 0xf8, 0xc0, 0x30, 0x23, 0xea, 0x02, 0x02, - 0xc0, 0xf8, 0xc0, 0x20, 0x00, 0x20, 0x70, 0x47, 0xd0, 0xf8, 0xc0, 0x30, 0x1a, 0x43, 0xc0, 0xf8, - 0xc0, 0x20, 0x00, 0x20, 0x70, 0x47, 0x03, 0x6b, 0x13, 0x43, 0x03, 0x63, 0x03, 0x29, 0x21, 0xd8, - 0xdf, 0xe8, 0x01, 0xf0, 0x02, 0x0a, 0x12, 0x19, 0x42, 0x61, 0x42, 0x60, 0x02, 0x67, 0xc2, 0x67, - 0xc0, 0xf8, 0x88, 0x20, 0x00, 0x20, 0x70, 0x47, 0x02, 0x61, 0x42, 0x60, 0x02, 0x67, 0xc2, 0x67, - 0xc0, 0xf8, 0x88, 0x20, 0x00, 0x20, 0x70, 0x47, 0xc2, 0x67, 0x02, 0x67, 0x82, 0x60, 0xc0, 0xf8, - 0x88, 0x20, 0x00, 0x20, 0x70, 0x47, 0xc2, 0x67, 0xc2, 0x66, 0x82, 0x60, 0xc0, 0xf8, 0x88, 0x20, - 0x00, 0x20, 0x70, 0x47, 0x6f, 0xf0, 0x02, 0x00, 0x70, 0x47, 0x70, 0xb5, 0x06, 0x46, 0x03, 0x28, - 0x08, 0xd8, 0x7e, 0xb1, 0x01, 0x2e, 0x18, 0xd0, 0x02, 0x2e, 0x18, 0xd0, 0x03, 0x2e, 0x07, 0xd0, - 0x00, 0x25, 0x08, 0xe0, 0x5a, 0x22, 0x14, 0x49, 0x15, 0x48, 0xff, 0xf7, 0x7e, 0xf9, 0xf0, 0xe7, - 0x14, 0x4d, 0x00, 0xe0, 0x14, 0x4d, 0x28, 0x46, 0xff, 0xf7, 0x23, 0xff, 0x04, 0x46, 0x01, 0x46, - 0x28, 0x46, 0xff, 0xf7, 0x22, 0xff, 0x00, 0x25, 0x05, 0xe0, 0x0f, 0x4d, 0xf3, 0xe7, 0x0f, 0x4d, - 0xf1, 0xe7, 0x01, 0x35, 0x64, 0x08, 0x74, 0xb1, 0x14, 0xf0, 0x01, 0x0f, 0xf9, 0xd0, 0x05, 0xeb, - 0x46, 0x13, 0x0b, 0x4a, 0x52, 0xf8, 0x23, 0x20, 0x00, 0x2a, 0xf2, 0xd0, 0x0a, 0x49, 0x51, 0xf8, - 0x23, 0x00, 0x90, 0x47, 0xed, 0xe7, 0x70, 0xbd, 0x00, 0xbf, 0xb8, 0x91, 0x00, 0x10, 0x1c, 0x92, - 0x00, 0x10, 0x00, 0xb0, 0x00, 0x40, 0x00, 0x80, 0x00, 0x40, 0x00, 0x90, 0x00, 0x40, 0x00, 0xa0, - 0x00, 0x40, 0x0c, 0x0a, 0x00, 0x20, 0x0c, 0x0c, 0x00, 0x20, 0x70, 0xb5, 0x05, 0x46, 0x0e, 0x46, - 0x1e, 0x20, 0xff, 0xf7, 0x31, 0xfd, 0x1f, 0x20, 0xff, 0xf7, 0x2e, 0xfd, 0x2c, 0x20, 0xff, 0xf7, - 0x2b, 0xfd, 0x07, 0x48, 0xff, 0xf7, 0xf5, 0xfe, 0x07, 0x4c, 0x33, 0x46, 0x2a, 0x46, 0x06, 0x49, - 0x20, 0x46, 0x00, 0xf0, 0x9a, 0xf9, 0xa3, 0x68, 0x43, 0xf0, 0x01, 0x03, 0xa3, 0x60, 0x00, 0x20, - 0x70, 0xbd, 0x20, 0x93, 0x00, 0x10, 0x00, 0x70, 0x02, 0x40, 0x00, 0x60, 0x02, 0x40, 0x00, 0xb5, - 0x83, 0xb0, 0x03, 0x46, 0x00, 0x91, 0x03, 0x4a, 0x04, 0x49, 0x04, 0x48, 0x00, 0xf0, 0xd1, 0xf9, - 0x03, 0xb0, 0x5d, 0xf8, 0x04, 0xfb, 0x00, 0xc0, 0x0b, 0x40, 0x00, 0x60, 0x02, 0x40, 0x00, 0x70, - 0x02, 0x40, 0x08, 0xb5, 0x02, 0x46, 0x02, 0x49, 0x03, 0x48, 0x00, 0xf0, 0x1c, 0xfa, 0x08, 0xbd, - 0x00, 0xbf, 0x00, 0xc0, 0x0b, 0x40, 0x00, 0x70, 0x02, 0x40, 0x10, 0xb4, 0x84, 0x46, 0x00, 0x20, - 0x02, 0xe0, 0x0c, 0x79, 0x14, 0x54, 0x01, 0x30, 0xdc, 0xf8, 0x0c, 0x40, 0x14, 0xf0, 0x7c, 0x5f, - 0x01, 0xd0, 0x98, 0x42, 0xf5, 0xd1, 0x5d, 0xf8, 0x04, 0x4b, 0x70, 0x47, 0x0b, 0x68, 0x23, 0xf0, - 0x03, 0x03, 0x02, 0xf0, 0x03, 0x0c, 0x43, 0xea, 0x0c, 0x03, 0x0b, 0x60, 0x03, 0x68, 0x23, 0xf0, - 0x30, 0x03, 0x12, 0x01, 0x02, 0xf0, 0x30, 0x02, 0x1a, 0x43, 0x02, 0x60, 0x00, 0x20, 0x70, 0x47, - 0x0b, 0x68, 0x43, 0xf0, 0x04, 0x03, 0x0b, 0x60, 0x43, 0x68, 0x23, 0xf0, 0x01, 0x03, 0x43, 0x60, - 0x00, 0x20, 0x70, 0x47, 0x00, 0x00, 0x03, 0x68, 0xc3, 0xf3, 0x03, 0x30, 0x13, 0xf4, 0x70, 0x4f, - 0x00, 0xd1, 0x10, 0x20, 0x40, 0x00, 0x02, 0x4b, 0x1b, 0x68, 0xb3, 0xfb, 0xf0, 0xf0, 0x70, 0x47, - 0x00, 0xbf, 0xfc, 0x09, 0x00, 0x20, 0x02, 0x68, 0xc2, 0xf3, 0x03, 0x23, 0x12, 0xf4, 0x70, 0x6f, - 0x00, 0xd1, 0x10, 0x23, 0x03, 0x4a, 0x10, 0x68, 0x40, 0x08, 0x5b, 0x00, 0xb0, 0xfb, 0xf3, 0xf0, - 0x70, 0x47, 0xfc, 0x09, 0x00, 0x20, 0x08, 0xb5, 0x03, 0x46, 0x08, 0x46, 0x3d, 0x49, 0x09, 0x68, - 0x91, 0x42, 0x70, 0xd3, 0xb1, 0xfb, 0xf2, 0xf1, 0x4f, 0xea, 0x51, 0x0c, 0x11, 0xf0, 0x01, 0x0f, - 0x02, 0xd0, 0x0c, 0xf1, 0x01, 0x02, 0x00, 0xe0, 0x62, 0x46, 0x60, 0xb1, 0x0a, 0xbb, 0x01, 0x68, - 0x21, 0xf4, 0x70, 0x61, 0x41, 0xf4, 0x80, 0x71, 0x01, 0x60, 0x01, 0x68, 0x21, 0xf4, 0x70, 0x41, - 0x41, 0xf4, 0x80, 0x51, 0x01, 0x60, 0x6b, 0xb1, 0x00, 0x2a, 0x32, 0xd1, 0x1a, 0x68, 0x22, 0xf4, - 0x70, 0x42, 0x42, 0xf4, 0x80, 0x52, 0x1a, 0x60, 0x1a, 0x68, 0x22, 0xf4, 0x70, 0x62, 0x42, 0xf4, - 0x80, 0x72, 0x1a, 0x60, 0x00, 0x2b, 0x42, 0xd1, 0x00, 0x28, 0x47, 0xd0, 0xff, 0xf7, 0xab, 0xff, - 0x08, 0xbd, 0x0f, 0x2a, 0x08, 0xd9, 0x01, 0x68, 0x41, 0xf4, 0x70, 0x61, 0x01, 0x60, 0x01, 0x68, - 0x41, 0xf4, 0x70, 0x41, 0x01, 0x60, 0xde, 0xe7, 0x01, 0x68, 0x21, 0xf4, 0x70, 0x61, 0x4f, 0xea, - 0x0c, 0x2e, 0x0e, 0xf4, 0x70, 0x6e, 0x41, 0xea, 0x0e, 0x01, 0x01, 0x60, 0x01, 0x68, 0x21, 0xf4, - 0x70, 0x41, 0x4f, 0xea, 0x02, 0x3e, 0x1f, 0xfa, 0x8e, 0xfe, 0x41, 0xea, 0x0e, 0x01, 0x01, 0x60, - 0xc9, 0xe7, 0x0f, 0x2a, 0x08, 0xd9, 0x1a, 0x68, 0x42, 0xf4, 0x70, 0x42, 0x1a, 0x60, 0x1a, 0x68, - 0x42, 0xf4, 0x70, 0x62, 0x1a, 0x60, 0xcd, 0xe7, 0x19, 0x68, 0x21, 0xf4, 0x70, 0x41, 0x4f, 0xea, - 0x0c, 0x3c, 0x1f, 0xfa, 0x8c, 0xfc, 0x41, 0xea, 0x0c, 0x01, 0x19, 0x60, 0x19, 0x68, 0x21, 0xf4, - 0x70, 0x61, 0x12, 0x02, 0x02, 0xf4, 0x70, 0x62, 0x0a, 0x43, 0x1a, 0x60, 0xba, 0xe7, 0x18, 0x46, - 0xff, 0xf7, 0x79, 0xff, 0xbc, 0xe7, 0x6f, 0xf0, 0x02, 0x00, 0xb9, 0xe7, 0x6f, 0xf0, 0x02, 0x00, - 0xb6, 0xe7, 0xfc, 0x09, 0x00, 0x20, 0x0b, 0x68, 0x23, 0xf4, 0x40, 0x33, 0x12, 0x04, 0x02, 0xf4, - 0x40, 0x32, 0x13, 0x43, 0x0b, 0x60, 0x03, 0x68, 0x23, 0xf4, 0x40, 0x33, 0x1a, 0x43, 0x02, 0x60, - 0x00, 0x20, 0x70, 0x47, 0x0b, 0x68, 0x23, 0xf4, 0x40, 0x23, 0x92, 0x04, 0x02, 0xf4, 0x40, 0x22, - 0x13, 0x43, 0x0b, 0x60, 0x03, 0x68, 0x23, 0xf4, 0x40, 0x23, 0x1a, 0x43, 0x02, 0x60, 0x00, 0x20, - 0x70, 0x47, 0x38, 0xb5, 0x05, 0x46, 0x0c, 0x46, 0x02, 0x29, 0x09, 0xd8, 0x6b, 0x68, 0x23, 0xf4, - 0x40, 0x73, 0x24, 0x02, 0x04, 0xf4, 0x40, 0x74, 0x1c, 0x43, 0x6c, 0x60, 0x00, 0x20, 0x38, 0xbd, - 0x4f, 0xf4, 0x58, 0x72, 0x02, 0x49, 0x02, 0x48, 0xff, 0xf7, 0x07, 0xf8, 0xee, 0xe7, 0x3c, 0x92, - 0x00, 0x10, 0xa0, 0x92, 0x00, 0x10, 0x38, 0xb5, 0x05, 0x46, 0x0c, 0x46, 0x02, 0x29, 0x09, 0xd8, - 0x6b, 0x68, 0x23, 0xf4, 0x40, 0x63, 0xa4, 0x02, 0x04, 0xf4, 0x40, 0x64, 0x1c, 0x43, 0x6c, 0x60, - 0x00, 0x20, 0x38, 0xbd, 0x40, 0xf2, 0x6f, 0x32, 0x02, 0x49, 0x02, 0x48, 0xfe, 0xf7, 0xed, 0xff, - 0xee, 0xe7, 0x3c, 0x92, 0x00, 0x10, 0xa0, 0x92, 0x00, 0x10, 0x38, 0xb5, 0x05, 0x46, 0x0c, 0x46, - 0x02, 0x29, 0x09, 0xd8, 0x6b, 0x68, 0x23, 0xf4, 0x40, 0x53, 0x24, 0x03, 0x04, 0xf4, 0x40, 0x54, - 0x1c, 0x43, 0x6c, 0x60, 0x00, 0x20, 0x38, 0xbd, 0x40, 0xf2, 0x7e, 0x32, 0x02, 0x49, 0x02, 0x48, - 0xfe, 0xf7, 0xd3, 0xff, 0xee, 0xe7, 0x3c, 0x92, 0x00, 0x10, 0xa0, 0x92, 0x00, 0x10, 0x43, 0x68, - 0x23, 0xf4, 0x80, 0x33, 0x43, 0x60, 0x00, 0x20, 0x70, 0x47, 0x0b, 0x69, 0x43, 0xf0, 0x01, 0x03, - 0x0b, 0x61, 0x83, 0x68, 0x43, 0xf0, 0x80, 0x73, 0x83, 0x60, 0x00, 0x20, 0x70, 0x47, 0x0b, 0x69, - 0x23, 0xf0, 0x01, 0x03, 0x0b, 0x61, 0x83, 0x68, 0x23, 0xf0, 0x80, 0x73, 0x83, 0x60, 0x00, 0x20, - 0x70, 0x47, 0x43, 0x68, 0x23, 0xf0, 0xff, 0x03, 0x0b, 0x43, 0x43, 0x60, 0x00, 0x20, 0x70, 0x47, - 0x03, 0x68, 0x23, 0xf0, 0xc0, 0x03, 0x89, 0x01, 0xc9, 0xb2, 0x0b, 0x43, 0x03, 0x60, 0x70, 0x47, - 0x83, 0x68, 0x43, 0xf0, 0x04, 0x03, 0x83, 0x60, 0x00, 0x20, 0x70, 0x47, 0x83, 0x68, 0x43, 0xf0, - 0x02, 0x03, 0x83, 0x60, 0x00, 0x20, 0x70, 0x47, 0x00, 0x00, 0x2d, 0xe9, 0xf0, 0x41, 0x05, 0x46, - 0x0c, 0x46, 0x17, 0x46, 0x98, 0x46, 0x1f, 0x4b, 0x00, 0x26, 0x1e, 0x60, 0x5e, 0x60, 0x86, 0x60, - 0xff, 0xf7, 0xe6, 0xff, 0x28, 0x46, 0xff, 0xf7, 0xe9, 0xff, 0x21, 0x46, 0x28, 0x46, 0xff, 0xf7, - 0xbc, 0xff, 0x42, 0x46, 0x21, 0x46, 0x28, 0x46, 0xff, 0xf7, 0xc5, 0xfe, 0x32, 0x46, 0x21, 0x46, - 0x28, 0x46, 0xff, 0xf7, 0x40, 0xff, 0x32, 0x46, 0x21, 0x46, 0x28, 0x46, 0xff, 0xf7, 0x4a, 0xff, - 0xf9, 0xb2, 0x20, 0x46, 0xff, 0xf7, 0xbd, 0xff, 0x31, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x51, 0xff, - 0x31, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x67, 0xff, 0x31, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x7d, 0xff, - 0x20, 0x46, 0xff, 0xf7, 0x94, 0xff, 0x32, 0x46, 0x21, 0x46, 0x28, 0x46, 0xff, 0xf7, 0x66, 0xfe, - 0x03, 0x21, 0x28, 0x46, 0xff, 0xf7, 0xac, 0xff, 0x21, 0x46, 0x28, 0x46, 0xff, 0xf7, 0x70, 0xfe, - 0x30, 0x46, 0xbd, 0xe8, 0xf0, 0x81, 0x0c, 0x0e, 0x00, 0x20, 0x80, 0x68, 0x00, 0xf0, 0x01, 0x00, - 0x70, 0x47, 0xf8, 0xb5, 0x05, 0x46, 0x0f, 0x46, 0x14, 0x46, 0x1e, 0x46, 0xff, 0xf7, 0xf5, 0xff, - 0x10, 0xb1, 0x3e, 0xb9, 0x00, 0x20, 0xf8, 0xbd, 0x9b, 0x22, 0x23, 0x49, 0x24, 0x48, 0xfe, 0xf7, - 0x3c, 0xff, 0xf6, 0xe7, 0x01, 0x21, 0x22, 0x48, 0x00, 0xf0, 0xc9, 0xfc, 0x00, 0x28, 0x39, 0xd1, - 0xea, 0x68, 0x12, 0xf4, 0xf8, 0x5f, 0xfb, 0xd1, 0x39, 0x46, 0x28, 0x46, 0xff, 0xf7, 0x6f, 0xff, - 0x32, 0x46, 0x08, 0xe0, 0x01, 0x23, 0x23, 0x80, 0x4f, 0xf4, 0x70, 0x4c, 0xa4, 0xf8, 0x00, 0xc0, - 0xa4, 0xf8, 0x00, 0xc0, 0x20, 0x3a, 0x20, 0x2a, 0xf4, 0xd8, 0xa2, 0xb1, 0x1f, 0x2a, 0x1f, 0xd8, - 0x13, 0x01, 0x9b, 0xb2, 0x43, 0xf0, 0x01, 0x03, 0x9d, 0xf8, 0x18, 0x10, 0x43, 0xea, 0x41, 0x33, - 0x1b, 0xb2, 0x9b, 0xb2, 0x23, 0x80, 0x10, 0x2a, 0x02, 0xd9, 0x4f, 0xf4, 0x70, 0x43, 0x23, 0x80, - 0x4f, 0xf4, 0x70, 0x43, 0x23, 0x80, 0xea, 0x68, 0x12, 0xf4, 0xf8, 0x5f, 0xfb, 0xd1, 0x39, 0x46, - 0x28, 0x46, 0xff, 0xf7, 0x3a, 0xff, 0x06, 0x48, 0x00, 0xf0, 0x9f, 0xfc, 0x30, 0x46, 0xba, 0xe7, - 0x01, 0x23, 0xe1, 0xe7, 0x6f, 0xf0, 0x05, 0x00, 0xb5, 0xe7, 0x3c, 0x92, 0x00, 0x10, 0xbc, 0x92, - 0x00, 0x10, 0x0c, 0x0e, 0x00, 0x20, 0x2d, 0xe9, 0xf0, 0x4f, 0x83, 0xb0, 0x05, 0x46, 0x0e, 0x46, - 0x14, 0x46, 0x5a, 0xb1, 0xa3, 0x68, 0x7b, 0xb1, 0x28, 0x46, 0xff, 0xf7, 0x96, 0xff, 0xa0, 0xb1, - 0x23, 0x69, 0xc3, 0xb9, 0x00, 0x20, 0x03, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0xdd, 0x22, 0x6d, 0x49, - 0x6e, 0x48, 0xfe, 0xf7, 0xda, 0xfe, 0xed, 0xe7, 0x63, 0x68, 0x00, 0x2b, 0xec, 0xd1, 0xde, 0x22, - 0x69, 0x49, 0x6a, 0x48, 0xfe, 0xf7, 0xd1, 0xfe, 0xe6, 0xe7, 0xe1, 0x22, 0x66, 0x49, 0x68, 0x48, - 0xfe, 0xf7, 0xcb, 0xfe, 0xe4, 0xe7, 0x01, 0x21, 0x67, 0x48, 0x00, 0xf0, 0x58, 0xfc, 0x01, 0x90, - 0x00, 0x28, 0x40, 0xf0, 0xbd, 0x80, 0x00, 0x23, 0x63, 0x61, 0xa3, 0x61, 0x62, 0x4a, 0x53, 0x60, - 0xd4, 0xf8, 0x08, 0x80, 0xb8, 0xeb, 0x03, 0x0b, 0x18, 0xbf, 0x4f, 0xf0, 0x01, 0x0b, 0x67, 0x68, - 0xb7, 0xeb, 0x03, 0x0a, 0x18, 0xbf, 0x4f, 0xf0, 0x01, 0x0a, 0xd4, 0xf8, 0x10, 0x90, 0x3b, 0x46, - 0x47, 0x46, 0x98, 0x46, 0xb9, 0xf1, 0x00, 0x0f, 0x00, 0xf0, 0x99, 0x80, 0x4a, 0xea, 0x4b, 0x03, - 0x22, 0x7b, 0x43, 0xea, 0x42, 0x23, 0x1b, 0xb2, 0x9a, 0xb2, 0xb9, 0xf1, 0x1f, 0x0f, 0x2b, 0xdd, - 0xb9, 0xf1, 0x20, 0x0f, 0x15, 0xd0, 0x42, 0xf0, 0x08, 0x02, 0x49, 0x46, 0xb9, 0xf1, 0x00, 0x0f, - 0x17, 0xdb, 0x4b, 0x11, 0xb1, 0xf5, 0x80, 0x6f, 0x16, 0xd2, 0x19, 0x01, 0x89, 0xb2, 0x0a, 0x43, - 0x5b, 0x01, 0x4b, 0x45, 0x13, 0xd0, 0x32, 0x80, 0x47, 0x4a, 0x53, 0x60, 0xa9, 0xeb, 0x03, 0x09, - 0x59, 0xe0, 0x23, 0x78, 0x42, 0xea, 0x43, 0x32, 0x92, 0xb2, 0x42, 0xf0, 0x04, 0x02, 0x20, 0x23, - 0xf1, 0xe7, 0x09, 0xf1, 0x1f, 0x01, 0xe4, 0xe7, 0x4f, 0xf4, 0x80, 0x63, 0xe9, 0xe7, 0x21, 0x78, - 0x42, 0xea, 0x41, 0x32, 0x92, 0xb2, 0xe6, 0xe7, 0x4f, 0xea, 0x09, 0x12, 0x42, 0xf0, 0x04, 0x02, - 0x12, 0xb2, 0x21, 0x78, 0x42, 0xea, 0x41, 0x32, 0x12, 0xb2, 0x13, 0x43, 0x9b, 0xb2, 0x33, 0x80, - 0x35, 0x4b, 0xc3, 0xf8, 0x04, 0x90, 0xdd, 0xf8, 0x04, 0x90, 0x34, 0xe0, 0xeb, 0x68, 0xc3, 0xf3, - 0x04, 0x23, 0x0e, 0x2b, 0xfa, 0xd8, 0x01, 0x2a, 0x0b, 0xdd, 0x61, 0x68, 0xa2, 0x69, 0x8b, 0x18, - 0x58, 0x78, 0x8b, 0x5c, 0x43, 0xea, 0x00, 0x23, 0x33, 0x80, 0xa3, 0x69, 0x02, 0x33, 0xa3, 0x61, - 0x29, 0xe0, 0x62, 0x68, 0xa3, 0x69, 0xd3, 0x5c, 0x43, 0xf4, 0x70, 0x43, 0x33, 0x80, 0xa3, 0x69, - 0x01, 0x33, 0xa3, 0x61, 0x1f, 0xe0, 0xa1, 0x68, 0x62, 0x69, 0x01, 0x23, 0x0a, 0x44, 0x31, 0x46, - 0x28, 0x46, 0xff, 0xf7, 0x32, 0xfd, 0x01, 0x28, 0xf5, 0xd1, 0x63, 0x69, 0x01, 0x33, 0x63, 0x61, - 0x1d, 0x4b, 0x5b, 0x68, 0x01, 0x2b, 0x02, 0xdd, 0x01, 0x3b, 0x1a, 0x4a, 0x53, 0x60, 0x19, 0x4a, - 0x53, 0x68, 0x01, 0x3b, 0x53, 0x60, 0x17, 0x4b, 0x5a, 0x68, 0x00, 0x2a, 0x3f, 0xf4, 0x7a, 0xaf, - 0xb8, 0xf1, 0x00, 0x0f, 0xc2, 0xd1, 0x00, 0x2f, 0xea, 0xd0, 0x12, 0x4b, 0x5b, 0x68, 0x01, 0x2b, - 0xd9, 0xdd, 0xa1, 0x68, 0x62, 0x69, 0x01, 0x23, 0x0a, 0x44, 0x31, 0x46, 0x28, 0x46, 0xff, 0xf7, - 0x0c, 0xfd, 0x01, 0x28, 0xf5, 0xd1, 0x63, 0x69, 0x01, 0x33, 0x63, 0x61, 0xcb, 0xe7, 0x47, 0x46, - 0x09, 0x48, 0x00, 0xf0, 0xaa, 0xfb, 0x0f, 0xb1, 0xa0, 0x69, 0x24, 0xe7, 0x60, 0x69, 0x22, 0xe7, - 0x6f, 0xf0, 0x05, 0x00, 0x1f, 0xe7, 0x3c, 0x92, 0x00, 0x10, 0xe0, 0x92, 0x00, 0x10, 0xec, 0x92, - 0x00, 0x10, 0xbc, 0x92, 0x00, 0x10, 0x0c, 0x0e, 0x00, 0x20, 0x08, 0xb5, 0x12, 0x4b, 0x98, 0x42, - 0x0d, 0xd0, 0x11, 0x4b, 0x98, 0x42, 0x12, 0xd0, 0x11, 0x4b, 0x98, 0x42, 0x17, 0xd1, 0x1c, 0x20, - 0xff, 0xf7, 0xcb, 0xfa, 0x21, 0x20, 0xff, 0xf7, 0xc0, 0xf9, 0x00, 0x20, 0x08, 0xbd, 0x0b, 0x20, - 0xff, 0xf7, 0xc3, 0xfa, 0x09, 0x20, 0xff, 0xf7, 0xb8, 0xf9, 0x00, 0x20, 0xf6, 0xe7, 0x0c, 0x20, - 0xff, 0xf7, 0xbb, 0xfa, 0x0a, 0x20, 0xff, 0xf7, 0xb0, 0xf9, 0x00, 0x20, 0xee, 0xe7, 0x6f, 0xf0, - 0x02, 0x00, 0xeb, 0xe7, 0x00, 0xbf, 0x00, 0x20, 0x04, 0x40, 0x00, 0x30, 0x04, 0x40, 0x00, 0x40, - 0x04, 0x40, 0x70, 0xb5, 0x04, 0x46, 0x0e, 0x46, 0xff, 0xf7, 0xcf, 0xff, 0x05, 0x46, 0x38, 0xbb, - 0x1f, 0x4b, 0x9c, 0x42, 0x26, 0xd0, 0x1e, 0x4b, 0x9c, 0x42, 0x2a, 0xd0, 0x1e, 0x4b, 0x9c, 0x42, - 0x32, 0xd1, 0x1d, 0x48, 0xff, 0xf7, 0x75, 0xfb, 0x21, 0x20, 0xff, 0xf7, 0xa5, 0xf9, 0x17, 0x4b, - 0x9c, 0x42, 0x09, 0xd0, 0x03, 0xf5, 0x80, 0x53, 0x9c, 0x42, 0x23, 0xd0, 0x03, 0xf5, 0x80, 0x53, - 0x9c, 0x42, 0x1d, 0xd0, 0x4f, 0xf0, 0xff, 0x35, 0x00, 0x23, 0x14, 0x4a, 0x42, 0xf8, 0x25, 0x30, - 0x14, 0x4a, 0x42, 0xf8, 0x25, 0x30, 0x31, 0x46, 0x20, 0x46, 0x00, 0xf0, 0x9c, 0xf8, 0x05, 0x46, - 0x28, 0x46, 0x70, 0xbd, 0x10, 0x48, 0xff, 0xf7, 0x54, 0xfb, 0x09, 0x20, 0xff, 0xf7, 0x84, 0xf9, - 0xdd, 0xe7, 0x0d, 0x48, 0xff, 0xf7, 0x4d, 0xfb, 0x0a, 0x20, 0xff, 0xf7, 0x7d, 0xf9, 0xd6, 0xe7, - 0x02, 0x25, 0xe1, 0xe7, 0x01, 0x25, 0xdf, 0xe7, 0x6f, 0xf0, 0x02, 0x05, 0xe8, 0xe7, 0x00, 0x20, - 0x04, 0x40, 0x00, 0x30, 0x04, 0x40, 0x00, 0x40, 0x04, 0x40, 0x44, 0x93, 0x00, 0x10, 0x14, 0x0e, - 0x00, 0x20, 0x20, 0x0e, 0x00, 0x20, 0x2c, 0x93, 0x00, 0x10, 0x38, 0x93, 0x00, 0x10, 0x08, 0xb5, - 0x00, 0xf0, 0xa1, 0xf8, 0x08, 0xbd, 0x08, 0xb5, 0x00, 0xf0, 0x31, 0xf9, 0x08, 0xbd, 0x08, 0xb5, - 0x00, 0xf0, 0x87, 0xf9, 0x08, 0xbd, 0x08, 0xb5, 0x00, 0xf0, 0xa3, 0xf9, 0x08, 0xbd, 0x08, 0xb5, - 0x00, 0xf0, 0xc1, 0xf9, 0x08, 0xbd, 0x08, 0xb5, 0x08, 0x4b, 0x98, 0x42, 0x07, 0xd0, 0x03, 0xf5, - 0x80, 0x53, 0x98, 0x42, 0x03, 0xd0, 0x03, 0xf5, 0x80, 0x53, 0x98, 0x42, 0x02, 0xd1, 0x00, 0xf0, - 0xce, 0xfa, 0x08, 0xbd, 0x6f, 0xf0, 0x02, 0x00, 0xfb, 0xe7, 0x00, 0x20, 0x04, 0x40, 0x08, 0xb5, - 0x08, 0x4b, 0x98, 0x42, 0x07, 0xd0, 0x03, 0xf5, 0x80, 0x53, 0x98, 0x42, 0x03, 0xd0, 0x03, 0xf5, - 0x80, 0x53, 0x98, 0x42, 0x02, 0xd1, 0x00, 0xf0, 0xc5, 0xfa, 0x08, 0xbd, 0x6f, 0xf0, 0x02, 0x00, - 0xfb, 0xe7, 0x00, 0x20, 0x04, 0x40, 0x08, 0xb5, 0x00, 0xf0, 0x33, 0xfa, 0x08, 0xbd, 0x08, 0xb5, - 0x00, 0xf0, 0x49, 0xfa, 0x08, 0xbd, 0x08, 0xb5, 0x08, 0x4b, 0x98, 0x42, 0x07, 0xd0, 0x03, 0xf5, - 0x80, 0x53, 0x98, 0x42, 0x03, 0xd0, 0x03, 0xf5, 0x80, 0x53, 0x98, 0x42, 0x02, 0xd1, 0x00, 0xf0, - 0x54, 0xfa, 0x08, 0xbd, 0x6f, 0xf0, 0x02, 0x00, 0xfb, 0xe7, 0x00, 0x20, 0x04, 0x40, 0x08, 0xb5, - 0x08, 0x4b, 0x98, 0x42, 0x07, 0xd0, 0x03, 0xf5, 0x80, 0x53, 0x98, 0x42, 0x03, 0xd0, 0x03, 0xf5, - 0x80, 0x53, 0x98, 0x42, 0x02, 0xd1, 0x00, 0xf0, 0x44, 0xfa, 0x08, 0xbd, 0x6f, 0xf0, 0x02, 0x00, - 0xfb, 0xe7, 0x00, 0x20, 0x04, 0x40, 0x08, 0xb5, 0x00, 0xf0, 0x41, 0xfa, 0x08, 0xbd, 0x08, 0xb5, - 0x00, 0xf0, 0x5d, 0xfa, 0x08, 0xbd, 0x70, 0xb5, 0x06, 0x46, 0x0d, 0x46, 0x01, 0x21, 0xff, 0xf7, - 0xf2, 0xff, 0x04, 0x46, 0x08, 0xb1, 0x20, 0x46, 0x70, 0xbd, 0x02, 0x21, 0x30, 0x46, 0xff, 0xf7, - 0xee, 0xff, 0x04, 0x46, 0x00, 0x28, 0xf6, 0xd1, 0x08, 0x21, 0x30, 0x46, 0xff, 0xf7, 0x7f, 0xff, - 0x04, 0x46, 0x00, 0x28, 0xef, 0xd1, 0x00, 0x21, 0x30, 0x46, 0xff, 0xf7, 0x80, 0xff, 0x04, 0x46, - 0x00, 0x28, 0xe8, 0xd1, 0x00, 0x21, 0x30, 0x46, 0xff, 0xf7, 0x75, 0xff, 0x04, 0x46, 0x00, 0x28, - 0xe1, 0xd1, 0x33, 0x68, 0x43, 0xf0, 0x01, 0x03, 0x33, 0x60, 0x29, 0x46, 0x30, 0x46, 0xff, 0xf7, - 0x5e, 0xff, 0xd8, 0xe7, 0x00, 0x00, 0x08, 0xb5, 0x07, 0xee, 0x90, 0x1a, 0x45, 0x4b, 0x98, 0x42, - 0x07, 0xd0, 0x03, 0xf5, 0x80, 0x53, 0x98, 0x42, 0x03, 0xd0, 0x03, 0xf5, 0x80, 0x53, 0x98, 0x42, - 0x79, 0xd1, 0x03, 0x68, 0x13, 0xf4, 0x00, 0x4f, 0x1c, 0xd1, 0x3e, 0x4b, 0x1b, 0x68, 0x5b, 0x08, - 0x07, 0xee, 0x10, 0x3a, 0xb8, 0xee, 0xc7, 0x7a, 0xf8, 0xee, 0x67, 0x7a, 0xc7, 0xee, 0x27, 0x6a, - 0x08, 0x23, 0x80, 0x2b, 0x12, 0xdc, 0x07, 0xee, 0x90, 0x3a, 0xf8, 0xee, 0xe7, 0x7a, 0x86, 0xee, - 0xa7, 0x7a, 0xf7, 0xee, 0x00, 0x7a, 0xb4, 0xee, 0xe7, 0x7a, 0xf1, 0xee, 0x10, 0xfa, 0x04, 0xd4, - 0x5b, 0x00, 0xee, 0xe7, 0x9f, 0xed, 0x31, 0x7a, 0xe4, 0xe7, 0x5b, 0x10, 0x80, 0x2b, 0x04, 0xdc, - 0x07, 0x2b, 0x03, 0xdc, 0x6f, 0xf0, 0x02, 0x00, 0x3b, 0xe0, 0x80, 0x23, 0x07, 0xee, 0x90, 0x3a, - 0xb8, 0xee, 0xe7, 0x7a, 0xc6, 0xee, 0x87, 0x7a, 0xbd, 0xee, 0xe7, 0x7a, 0xf8, 0xee, 0xc7, 0x6a, - 0x77, 0xee, 0xe6, 0x7a, 0xf0, 0xee, 0x67, 0x6a, 0xfe, 0xee, 0xec, 0x6a, 0x16, 0xee, 0x90, 0x2a, - 0x03, 0x2a, 0x27, 0xdd, 0x03, 0x3a, 0x20, 0x2b, 0x2f, 0xd0, 0x25, 0xdd, 0x40, 0x2b, 0x30, 0xd0, - 0x80, 0x2b, 0x33, 0xd1, 0x00, 0x23, 0x1b, 0x04, 0x41, 0x69, 0x21, 0xf4, 0x40, 0x31, 0x03, 0xf4, - 0x40, 0x33, 0x0b, 0x43, 0x43, 0x61, 0x43, 0x69, 0x23, 0xf4, 0x7f, 0x63, 0x23, 0xf0, 0x0f, 0x03, - 0x17, 0xee, 0x10, 0x1a, 0xc1, 0xf3, 0x0b, 0x01, 0x0b, 0x43, 0x43, 0x61, 0x83, 0x69, 0x23, 0xf4, - 0x7f, 0x63, 0x23, 0xf0, 0x0f, 0x03, 0xc2, 0xf3, 0x0b, 0x02, 0x13, 0x43, 0x83, 0x61, 0xff, 0xf7, - 0xea, 0xfe, 0x08, 0xbd, 0x03, 0x32, 0xd6, 0xe7, 0x08, 0x2b, 0x08, 0xd0, 0x10, 0x2b, 0x01, 0xd1, - 0x03, 0x23, 0xd8, 0xe7, 0x6f, 0xf0, 0x07, 0x00, 0xf3, 0xe7, 0x02, 0x23, 0xd3, 0xe7, 0x04, 0x23, - 0xd1, 0xe7, 0x01, 0x23, 0xcf, 0xe7, 0x6f, 0xf0, 0x02, 0x00, 0xea, 0xe7, 0x6f, 0xf0, 0x07, 0x00, - 0xe7, 0xe7, 0x00, 0x20, 0x04, 0x40, 0xfc, 0x09, 0x00, 0x20, 0x00, 0x80, 0x70, 0x00, 0x03, 0x68, - 0x13, 0xf4, 0x00, 0x4f, 0x29, 0xd1, 0x26, 0x4b, 0x1b, 0x68, 0x5b, 0x08, 0x06, 0xee, 0x90, 0x3a, - 0x43, 0x69, 0xc3, 0xf3, 0x0b, 0x03, 0x07, 0xee, 0x90, 0x3a, 0xf8, 0xee, 0x67, 0x7a, 0x9f, 0xed, - 0x21, 0x7a, 0x37, 0xee, 0x87, 0x7a, 0x83, 0x69, 0xc3, 0xf3, 0x0b, 0x03, 0x07, 0xee, 0x90, 0x3a, - 0xf8, 0xee, 0x67, 0x7a, 0xb0, 0xee, 0x08, 0x6a, 0xf4, 0xee, 0xc6, 0x7a, 0xf1, 0xee, 0x10, 0xfa, - 0x0e, 0xdd, 0xb1, 0xee, 0x08, 0x6a, 0xf4, 0xee, 0xc6, 0x7a, 0xf1, 0xee, 0x10, 0xfa, 0x07, 0xd8, - 0xb0, 0xee, 0x08, 0x6a, 0x77, 0xee, 0xc6, 0x7a, 0x06, 0xe0, 0xdf, 0xed, 0x13, 0x6a, 0xd7, 0xe7, - 0xb0, 0xee, 0x08, 0x6a, 0x77, 0xee, 0x86, 0x7a, 0x9f, 0xed, 0x11, 0x6a, 0x67, 0xee, 0x86, 0x7a, - 0x77, 0xee, 0x87, 0x7a, 0x43, 0x69, 0x03, 0xf4, 0x40, 0x33, 0xc3, 0xf1, 0x07, 0x02, 0x01, 0x23, - 0x93, 0x40, 0x07, 0xee, 0x10, 0x3a, 0xb8, 0xee, 0xc7, 0x7a, 0x67, 0xee, 0x27, 0x7a, 0xb8, 0xee, - 0xe6, 0x7a, 0xc7, 0xee, 0x27, 0x6a, 0xfd, 0xee, 0xe6, 0x7a, 0x17, 0xee, 0x90, 0x0a, 0x70, 0x47, - 0x00, 0xbf, 0xfc, 0x09, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x70, 0x00, 0x00, 0x00, - 0x00, 0x3c, 0x0e, 0x4b, 0x98, 0x42, 0x07, 0xd0, 0x03, 0xf5, 0x80, 0x53, 0x98, 0x42, 0x03, 0xd0, - 0x03, 0xf5, 0x80, 0x53, 0x98, 0x42, 0x0c, 0xd1, 0x4b, 0x1f, 0x03, 0x2b, 0x0c, 0xd8, 0x19, 0x02, - 0x03, 0x68, 0x23, 0xf4, 0x40, 0x73, 0x01, 0xf4, 0x40, 0x71, 0x19, 0x43, 0x01, 0x60, 0x00, 0x20, - 0x70, 0x47, 0x6f, 0xf0, 0x02, 0x00, 0x70, 0x47, 0x6f, 0xf0, 0x02, 0x00, 0x70, 0x47, 0x00, 0x20, - 0x04, 0x40, 0x0f, 0x4b, 0x98, 0x42, 0x07, 0xd0, 0x03, 0xf5, 0x80, 0x53, 0x98, 0x42, 0x03, 0xd0, - 0x03, 0xf5, 0x80, 0x53, 0x98, 0x42, 0x11, 0xd1, 0x21, 0xb1, 0x01, 0x29, 0x08, 0xd0, 0x6f, 0xf0, - 0x02, 0x00, 0x70, 0x47, 0x03, 0x68, 0x23, 0xf4, 0x80, 0x63, 0x03, 0x60, 0x00, 0x20, 0x70, 0x47, - 0x03, 0x68, 0x43, 0xf4, 0x80, 0x63, 0x03, 0x60, 0x00, 0x20, 0x70, 0x47, 0x6f, 0xf0, 0x02, 0x00, - 0x70, 0x47, 0x00, 0x20, 0x04, 0x40, 0x4d, 0x4b, 0x98, 0x42, 0x08, 0xd0, 0x03, 0xf5, 0x80, 0x53, - 0x98, 0x42, 0x04, 0xd0, 0x03, 0xf5, 0x80, 0x53, 0x98, 0x42, 0x40, 0xf0, 0x8a, 0x80, 0x0c, 0x29, - 0x00, 0xf2, 0x8a, 0x80, 0xdf, 0xe8, 0x01, 0xf0, 0x07, 0x0d, 0x29, 0x49, 0x69, 0x0d, 0x1b, 0x29, - 0x39, 0x49, 0x59, 0x69, 0x77, 0x00, 0x03, 0x68, 0x23, 0xf0, 0x02, 0x03, 0x03, 0x60, 0x00, 0x20, - 0x70, 0x47, 0x03, 0x68, 0x43, 0xf0, 0x02, 0x03, 0x03, 0x60, 0x03, 0x68, 0x23, 0xf0, 0x0c, 0x03, - 0x03, 0x60, 0x03, 0x68, 0x23, 0xf0, 0x10, 0x03, 0x03, 0x60, 0x00, 0x20, 0x70, 0x47, 0x03, 0x68, - 0x43, 0xf0, 0x02, 0x03, 0x03, 0x60, 0x03, 0x68, 0x23, 0xf0, 0x0c, 0x03, 0x03, 0x60, 0x03, 0x68, - 0x43, 0xf0, 0x10, 0x03, 0x03, 0x60, 0x00, 0x20, 0x70, 0x47, 0x03, 0x68, 0x43, 0xf0, 0x02, 0x03, - 0x03, 0x60, 0x03, 0x68, 0x23, 0xf0, 0x0c, 0x03, 0x43, 0xf0, 0x04, 0x03, 0x03, 0x60, 0x03, 0x68, - 0x23, 0xf0, 0x10, 0x03, 0x03, 0x60, 0x00, 0x20, 0x70, 0x47, 0x03, 0x68, 0x43, 0xf0, 0x02, 0x03, - 0x03, 0x60, 0x03, 0x68, 0x23, 0xf0, 0x0c, 0x03, 0x43, 0xf0, 0x04, 0x03, 0x03, 0x60, 0x03, 0x68, - 0x43, 0xf0, 0x10, 0x03, 0x03, 0x60, 0x00, 0x20, 0x70, 0x47, 0x03, 0x68, 0x43, 0xf0, 0x02, 0x03, - 0x03, 0x60, 0x03, 0x68, 0x23, 0xf0, 0x0c, 0x03, 0x43, 0xf0, 0x08, 0x03, 0x03, 0x60, 0x03, 0x68, - 0x23, 0xf0, 0x10, 0x03, 0x03, 0x60, 0x00, 0x20, 0x70, 0x47, 0x03, 0x68, 0x43, 0xf0, 0x02, 0x03, - 0x03, 0x60, 0x03, 0x68, 0x23, 0xf0, 0x0c, 0x03, 0x43, 0xf0, 0x08, 0x03, 0x03, 0x60, 0x03, 0x68, - 0x43, 0xf0, 0x10, 0x03, 0x03, 0x60, 0x00, 0x20, 0x70, 0x47, 0x03, 0x68, 0x43, 0xf0, 0x02, 0x03, - 0x03, 0x60, 0x03, 0x68, 0x43, 0xf0, 0x0c, 0x03, 0x03, 0x60, 0x03, 0x68, 0x23, 0xf0, 0x10, 0x03, - 0x03, 0x60, 0x00, 0x20, 0x70, 0x47, 0x03, 0x68, 0x43, 0xf0, 0x02, 0x03, 0x03, 0x60, 0x03, 0x68, - 0x43, 0xf0, 0x0c, 0x03, 0x03, 0x60, 0x03, 0x68, 0x43, 0xf0, 0x10, 0x03, 0x03, 0x60, 0x00, 0x20, - 0x70, 0x47, 0x6f, 0xf0, 0x02, 0x00, 0x70, 0x47, 0x6f, 0xf0, 0x02, 0x00, 0x70, 0x47, 0x00, 0x20, - 0x04, 0x40, 0x0b, 0x4b, 0x98, 0x42, 0x07, 0xd0, 0x03, 0xf5, 0x80, 0x53, 0x98, 0x42, 0x03, 0xd0, - 0x03, 0xf5, 0x80, 0x53, 0x98, 0x42, 0x05, 0xd1, 0x83, 0x68, 0x13, 0xf0, 0x10, 0x0f, 0x04, 0xd1, - 0xc0, 0x69, 0x70, 0x47, 0x6f, 0xf0, 0x02, 0x00, 0x70, 0x47, 0x6f, 0xf0, 0x0c, 0x00, 0x70, 0x47, - 0x00, 0xbf, 0x00, 0x20, 0x04, 0x40, 0x0b, 0x4b, 0x98, 0x42, 0x07, 0xd0, 0x03, 0xf5, 0x80, 0x53, - 0x98, 0x42, 0x03, 0xd0, 0x03, 0xf5, 0x80, 0x53, 0x98, 0x42, 0x06, 0xd1, 0x83, 0x68, 0x13, 0xf0, - 0x80, 0x0f, 0x05, 0xd1, 0xc1, 0x61, 0x00, 0x20, 0x70, 0x47, 0x1d, 0x71, 0x6d, 0xa1, 0xb4, 0xd2, - 0xe9, 0xdd, 0x99, 0x1c, 0xf2, 0xce, 0x10, 0xe4, 0x8f, 0xba, 0x01, 0xe3, 0x80, 0x08, 0xf7, 0xe9, - 0x41, 0xd8, 0x9f, 0x52, 0xad, 0x84, 0x60, 0x3b, 0xda, 0xc4, 0x46, 0xeb, 0x57, 0x80, 0xe6, 0x8b, - 0x57, 0x9f, 0xcc, 0x36, 0x90, 0xa2, 0x8f, 0xef, 0x58, 0x54, 0x0e, 0x70, 0xf2, 0x42, 0x54, 0x26, - 0x56, 0x11, 0xce, 0x96, 0xff, 0xa7, 0x83, 0x77, 0xce, 0x28, 0x07, 0x88, 0x8a, 0xad, 0xe9, 0x89, - 0x5b, 0x84, 0x4e, 0x8b, 0x33, 0xf2, 0x14, 0x7b, 0xc3, 0x11, 0x79, 0xa1, 0x91, 0x3e, 0x18, 0x25, - 0x76, 0x11, 0x82, 0x10, 0x89, 0x41, 0xe0, 0xe2, 0x04, 0x03, 0x44, 0xad, 0xa5, 0xb3, 0x59, 0x21, - 0xca, 0x8d, 0x64, 0x01, 0x51, 0x43, 0xaf, 0x19, 0xc4, 0xe2, 0xfd, 0xff, 0x07, 0xa7, 0xcb, 0x16, - 0xa8, 0x43, 0xa0, 0x87, 0x4d, 0x73, 0xef, 0x43, 0xb7, 0xed, 0x45, 0x24, 0xc2, 0xd4, 0x5a, 0x83, - 0x5a, 0xe9, 0x99, 0xd9, 0x02, 0xe1, 0xd5, 0xdc, 0x1e, 0x45, 0xcb, 0x07, 0xd6, 0x3f, 0x80, 0xf1, - 0x48, 0x4b, 0x3a, 0xf9, 0x26, 0xc3, 0xe1, 0x71, 0xca, 0xaa, 0x1e, 0x0b, 0x30, 0x0c, 0x36, 0xf0, - 0x1a, 0xaa, 0x2d, 0x2c, 0x17, 0x96, 0xbb, 0x06, 0xe2, 0x07, 0x27, 0xd1, 0x47, 0xb3, 0x40, 0xc0, - 0x3a, 0x33, 0x7f, 0x65, 0x7f, 0x50, 0xa3, 0xbb, 0x03, 0x72, 0x7f, 0x71, 0x9c, 0x42, 0x67, 0x32, - 0xa5, 0xc1, 0x1b, 0xda, 0x25, 0xe7, 0xd4, 0x98, 0x00, 0xcf, 0x2a, 0x9a, 0xb9, 0x4d, 0x9f, 0x2e, - 0x50, 0x5e, 0x0e, 0x54, 0xe3, 0xff, 0x75, 0x77, 0x1d, 0x08, 0x71, 0x0e, 0x90, 0x6a, 0x69, 0xcb, - 0xdb, 0xee, 0x39, 0xab, 0x5c, 0xcf, 0x62, 0x81, 0x34, 0xe4, 0x22, 0xf6, 0x47, 0x56, 0xfc, 0xf5, - 0x64, 0xf5, 0x16, 0xf8, 0x39, 0x6c, 0x84, 0xb9, 0x9a, 0x97, 0x5e, 0xa4, 0xed, 0x6a + 0xbe,0xef,0xed,0x05,0x1f,0xf2,0x94,0x49,0x59,0x01,0x1e,0xee,0x24,0x02,0x10,0x00, + 0x00,0x00,0x00,0x00,0x1e,0xe4,0x46,0x49,0x53,0x57,0x45,0x44,0x47,0x44,0x01,0x00, + 0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0xa1,0x20,0x10,0x00,0x07,0x10,0x00,0x00, + 0x00,0x00,0x01,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x10,0x20,0x11,0x07,0x00,0x10,0x15,0x05, + 0x00,0x10,0x4f,0x07,0x00,0x10,0x51,0x07,0x00,0x10,0x53,0x07,0x00,0x10,0x55,0x07, + 0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x57,0x07,0x00,0x10,0x59,0x07,0x00,0x10,0x00,0x00,0x00,0x00,0x5b,0x07, + 0x00,0x10,0x81,0x0b,0x00,0x10,0x5f,0x07,0x00,0x10,0x61,0x07,0x00,0x10,0x63,0x07, + 0x00,0x10,0x65,0x07,0x00,0x10,0x67,0x07,0x00,0x10,0x69,0x07,0x00,0x10,0x6b,0x07, + 0x00,0x10,0x6d,0x07,0x00,0x10,0x6f,0x07,0x00,0x10,0x71,0x07,0x00,0x10,0x73,0x07, + 0x00,0x10,0x75,0x07,0x00,0x10,0x77,0x07,0x00,0x10,0x79,0x07,0x00,0x10,0x7b,0x07, + 0x00,0x10,0x7d,0x07,0x00,0x10,0x7f,0x07,0x00,0x10,0x81,0x07,0x00,0x10,0x83,0x07, + 0x00,0x10,0x85,0x07,0x00,0x10,0x87,0x07,0x00,0x10,0x89,0x07,0x00,0x10,0x8b,0x07, + 0x00,0x10,0x8d,0x07,0x00,0x10,0xe9,0x06,0x00,0x10,0xf3,0x06,0x00,0x10,0xfd,0x06, + 0x00,0x10,0x95,0x07,0x00,0x10,0x97,0x07,0x00,0x10,0x99,0x07,0x00,0x10,0x9b,0x07, + 0x00,0x10,0x9d,0x07,0x00,0x10,0x9f,0x07,0x00,0x10,0xa1,0x07,0x00,0x10,0xa3,0x07, + 0x00,0x10,0xa5,0x07,0x00,0x10,0xa7,0x07,0x00,0x10,0xa9,0x07,0x00,0x10,0xab,0x07, + 0x00,0x10,0xad,0x07,0x00,0x10,0xaf,0x07,0x00,0x10,0xb1,0x07,0x00,0x10,0xb3,0x07, + 0x00,0x10,0xb5,0x07,0x00,0x10,0xb7,0x07,0x00,0x10,0xb9,0x07,0x00,0x10,0xbb,0x07, + 0x00,0x10,0xbd,0x07,0x00,0x10,0xbf,0x07,0x00,0x10,0xc1,0x07,0x00,0x10,0xc3,0x07, + 0x00,0x10,0xc5,0x07,0x00,0x10,0xc7,0x07,0x00,0x10,0xc9,0x07,0x00,0x10,0xcb,0x07, + 0x00,0x10,0xcd,0x07,0x00,0x10,0xcf,0x07,0x00,0x10,0xd1,0x07,0x00,0x10,0x07,0x07, + 0x00,0x10,0xd5,0x07,0x00,0x10,0xd7,0x07,0x00,0x10,0xd9,0x07,0x00,0x10,0xdb,0x07, + 0x00,0x10,0xdd,0x07,0x00,0x10,0xdf,0x07,0x00,0x10,0xe1,0x07,0x00,0x10,0xe3,0x07, + 0x00,0x10,0xe5,0x07,0x00,0x10,0xe7,0x07,0x00,0x10,0xe9,0x07,0x00,0x10,0xeb,0x07, + 0x00,0x10,0xed,0x07,0x00,0x10,0xef,0x07,0x00,0x10,0xf1,0x07,0x00,0x10,0xf3,0x07, + 0x00,0x10,0xf5,0x07,0x00,0x10,0xf7,0x07,0x00,0x10,0xf9,0x07,0x00,0x10,0xfb,0x07, + 0x00,0x10,0xfd,0x07,0x00,0x10,0xff,0x07,0x00,0x10,0x10,0xb5,0x05,0x4c,0x23,0x78, + 0x33,0xb9,0x04,0x4b,0x13,0xb1,0x04,0x48,0xaf,0xf3,0x00,0x80,0x01,0x23,0x23,0x70, + 0x10,0xbd,0xc4,0x09,0x00,0x20,0x00,0x00,0x00,0x00,0x68,0x97,0x00,0x10,0x08,0xb5, + 0x03,0x4b,0x1b,0xb1,0x03,0x49,0x03,0x48,0xaf,0xf3,0x00,0x80,0x08,0xbd,0x00,0x00, + 0x00,0x00,0xc8,0x09,0x00,0x20,0x68,0x97,0x00,0x10,0x38,0xb5,0x0d,0x48,0x01,0xf0, + 0x82,0xff,0x0c,0x48,0x01,0xf0,0x7f,0xff,0x00,0x24,0x00,0x20,0x00,0xf0,0xf5,0xf8, + 0x0a,0x4d,0x28,0x46,0x00,0xf0,0x05,0xfc,0x00,0x20,0x00,0xf0,0x10,0xf9,0x28,0x46, + 0x00,0xf0,0xff,0xfb,0x65,0x1c,0x21,0x46,0x05,0x48,0x01,0xf0,0x0a,0xff,0x2c,0x46, + 0xeb,0xe7,0x48,0x90,0x00,0x10,0x4c,0x90,0x00,0x10,0x20,0xa1,0x07,0x00,0x74,0x90, + 0x00,0x10,0x08,0xb5,0xc9,0xb2,0x00,0xf0,0x1a,0xff,0x08,0xbd,0x10,0xb5,0x88,0xb0, + 0x0c,0x46,0x8d,0xf8,0x00,0x20,0x00,0x22,0x8d,0xf8,0x01,0x20,0x01,0x90,0x02,0x92, + 0x8d,0xf8,0x0c,0x30,0x04,0x91,0x05,0x92,0x06,0x92,0x07,0x92,0x68,0x46,0x00,0xf0, + 0x18,0xff,0xa0,0x42,0x02,0xd1,0x00,0x20,0x08,0xb0,0x10,0xbd,0x6f,0xf0,0x08,0x00, + 0xfa,0xe7,0x10,0xb5,0x88,0xb0,0x0c,0x46,0x8d,0xf8,0x00,0x20,0x00,0x22,0x8d,0xf8, + 0x01,0x20,0x01,0x92,0x02,0x90,0x8d,0xf8,0x0c,0x30,0x04,0x91,0x05,0x92,0x06,0x92, + 0x07,0x92,0x68,0x46,0x00,0xf0,0xfd,0xfe,0xa0,0x42,0x02,0xd1,0x00,0x20,0x08,0xb0, + 0x10,0xbd,0x6f,0xf0,0x08,0x00,0xfa,0xe7,0x00,0x00,0x08,0xb5,0x02,0x49,0x00,0x20, + 0x00,0xf0,0xbb,0xfe,0x08,0xbd,0x00,0x09,0x3d,0x00,0x08,0xb5,0x03,0x46,0x01,0x48, + 0x01,0xf0,0xb7,0xfe,0xfe,0xe7,0x80,0x90,0x00,0x10,0x08,0xb5,0x4f,0xf4,0xe1,0x31, + 0x02,0x4b,0x18,0x68,0x01,0xf0,0x25,0xfa,0x08,0xbd,0x00,0x00,0x00,0x20,0x00,0xb5, + 0x85,0xb0,0x12,0x4b,0xec,0x46,0x0f,0xcb,0x8c,0xe8,0x0f,0x00,0x60,0x46,0x00,0xf0, + 0xde,0xf8,0x03,0x46,0x18,0xb1,0x18,0x46,0x05,0xb0,0x5d,0xf8,0x04,0xfb,0xff,0xf7, + 0xe4,0xff,0x03,0x46,0x00,0x28,0xf6,0xd1,0x00,0xf0,0xe5,0xf8,0x48,0xb9,0x00,0xf0, + 0xb0,0xf8,0x03,0x46,0x00,0x28,0xee,0xd0,0x91,0x22,0x05,0x49,0x06,0x48,0xff,0xf7, + 0xcc,0xff,0x8c,0x22,0x03,0x49,0x03,0x48,0xff,0xf7,0xc7,0xff,0x00,0xbf,0x00,0x91, + 0x00,0x10,0x9c,0x90,0x00,0x10,0xf8,0x90,0x00,0x10,0x00,0xbf,0x70,0x47,0x4f,0xf0, + 0xff,0x30,0x70,0x47,0x4f,0xf0,0xff,0x30,0x70,0x47,0x4f,0xf0,0xff,0x30,0x70,0x47, + 0x4f,0xf0,0xff,0x30,0x70,0x47,0x2d,0xe9,0xf0,0x41,0xd8,0xb9,0x0c,0x46,0x90,0x46, + 0x05,0x46,0x07,0x46,0x02,0xe0,0x01,0x34,0x01,0x37,0x01,0x35,0x45,0x45,0x0e,0xda, + 0x0c,0x4e,0x30,0x46,0x01,0xf0,0x3f,0xfa,0xc1,0xb2,0x21,0x70,0x30,0x46,0x01,0xf0, + 0x4e,0xfa,0x23,0x78,0x0d,0x2b,0xee,0xd1,0x0a,0x23,0x23,0x70,0x01,0x37,0x38,0x46, + 0xbd,0xe8,0xf0,0x81,0x01,0xf0,0x37,0xfd,0x09,0x23,0x03,0x60,0x4f,0xf0,0xff,0x37, + 0xf5,0xe7,0x00,0x20,0x04,0x40,0x70,0xb5,0x01,0x38,0x01,0x28,0x13,0xd8,0x0c,0x46, + 0x16,0x46,0x00,0x25,0x05,0xe0,0x14,0xf8,0x01,0x1b,0x0a,0x48,0x01,0xf0,0x2f,0xfa, + 0x01,0x35,0xb5,0x42,0x0d,0xda,0x23,0x78,0x0a,0x2b,0xf4,0xd1,0x0d,0x21,0x05,0x48, + 0x01,0xf0,0x25,0xfa,0xef,0xe7,0x01,0xf0,0x16,0xfd,0x09,0x23,0x03,0x60,0x4f,0xf0, + 0xff,0x36,0x30,0x46,0x70,0xbd,0x00,0x20,0x04,0x40,0x10,0xb5,0x04,0x46,0x0b,0x4b, + 0x1b,0x68,0x83,0x42,0x0c,0xd9,0x0a,0x4a,0x04,0xeb,0x44,0x03,0x02,0xeb,0x83,0x03, + 0x04,0xeb,0x44,0x04,0x59,0x68,0x52,0xf8,0x24,0x00,0x00,0xf0,0xfe,0xfc,0x10,0xbd, + 0x39,0x22,0x04,0x49,0x05,0x48,0xff,0xf7,0x50,0xff,0xec,0xe7,0x00,0xbf,0x28,0x91, + 0x00,0x10,0x10,0x91,0x00,0x10,0x48,0x91,0x00,0x10,0xa8,0x91,0x00,0x10,0x10,0xb5, + 0x04,0x46,0x0b,0x4b,0x1b,0x68,0x83,0x42,0x0c,0xd9,0x0a,0x4a,0x04,0xeb,0x44,0x03, + 0x02,0xeb,0x83,0x03,0x04,0xeb,0x44,0x04,0x59,0x68,0x52,0xf8,0x24,0x00,0x00,0xf0, + 0xd8,0xfc,0x10,0xbd,0x44,0x22,0x04,0x49,0x05,0x48,0xff,0xf7,0x2e,0xff,0xec,0xe7, + 0x00,0xbf,0x28,0x91,0x00,0x10,0x10,0x91,0x00,0x10,0x48,0x91,0x00,0x10,0xa8,0x91, + 0x00,0x10,0x38,0xb5,0x00,0x24,0x25,0x46,0x00,0xe0,0x01,0x34,0x0a,0x4b,0x1b,0x68, + 0xa3,0x42,0x0e,0xd9,0x20,0x46,0xff,0xf7,0xd2,0xff,0x04,0xeb,0x44,0x03,0x06,0x48, + 0x00,0xeb,0x83,0x00,0x00,0xf0,0xcd,0xfc,0x00,0x28,0xee,0xd0,0x6f,0xf0,0x07,0x05, + 0xeb,0xe7,0x28,0x46,0x38,0xbd,0x28,0x91,0x00,0x10,0x10,0x91,0x00,0x10,0x58,0xb1, + 0x10,0xb4,0x06,0x4c,0x0f,0xc8,0x84,0xe8,0x0f,0x00,0x05,0x4b,0x01,0x22,0x1a,0x70, + 0x00,0x20,0x5d,0xf8,0x04,0x4b,0x70,0x47,0x6f,0xf0,0x5f,0x00,0x70,0x47,0xe0,0x09, + 0x00,0x20,0xf0,0x09,0x00,0x20,0x38,0xb5,0x00,0x24,0x25,0x46,0x00,0xe0,0x01,0x34, + 0x09,0x4b,0x1b,0x68,0xa3,0x42,0x0b,0xd9,0x04,0xeb,0x44,0x03,0x07,0x48,0x00,0xeb, + 0x83,0x00,0x00,0xf0,0x9e,0xfc,0x00,0x28,0xf1,0xd0,0x6f,0xf0,0x07,0x05,0xee,0xe7, + 0x28,0x46,0x38,0xbd,0x00,0xbf,0x2c,0x91,0x00,0x10,0x30,0x91,0x00,0x10,0x08,0xb5, + 0x00,0x20,0x00,0xf0,0x86,0xfc,0x08,0xbd,0x08,0xb5,0x01,0x20,0x00,0xf0,0x81,0xfc, + 0x08,0xbd,0x08,0xb5,0x02,0x20,0x00,0xf0,0x7c,0xfc,0x08,0xbd,0x08,0xb5,0x03,0x20, + 0x00,0xf0,0x77,0xfc,0x08,0xbd,0x3b,0x48,0x85,0x46,0x3b,0x48,0x80,0x47,0x80,0xb9, + 0x3b,0x49,0x3b,0x4a,0x3c,0x4b,0x9b,0x1a,0x03,0xdd,0x04,0x3b,0xc8,0x58,0xd0,0x50, + 0xfb,0xdc,0x39,0x49,0x3a,0x4a,0x00,0x20,0x91,0x42,0xbc,0xbf,0x41,0xf8,0x04,0x0b, + 0xfa,0xe7,0x37,0x48,0x80,0x47,0x37,0x48,0x80,0x47,0x37,0x48,0x80,0x47,0xff,0xf7, + 0xfe,0xff,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7, + 0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7, + 0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7, + 0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7, + 0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7, + 0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7, + 0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7, + 0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7, + 0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7, + 0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7, + 0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0xfe,0xe7, + 0xfe,0xe7,0xfe,0xe7,0xfe,0xe7,0x00,0x00,0x10,0x20,0xdd,0x08,0x00,0x10,0x74,0x97, + 0x00,0x10,0x00,0x00,0x00,0x20,0xc4,0x09,0x00,0x20,0xc4,0x09,0x00,0x20,0x74,0x0e, + 0x00,0x20,0xf1,0x08,0x00,0x10,0xed,0x1f,0x00,0x10,0xc5,0x03,0x00,0x10,0x08,0xb5, + 0x03,0x46,0x0b,0x4a,0x12,0x68,0x42,0xb1,0x0a,0x4a,0x10,0x68,0x03,0x44,0x09,0x4a, + 0x93,0x42,0x06,0xd8,0x07,0x4a,0x13,0x60,0x08,0xbd,0x05,0x4a,0x07,0x49,0x11,0x60, + 0xf2,0xe7,0x01,0xf0,0xc8,0xfb,0x0c,0x23,0x03,0x60,0x4f,0xf0,0xff,0x30,0xf3,0xe7, + 0x00,0xbf,0xf4,0x09,0x00,0x20,0x00,0xf0,0x0f,0x20,0x78,0x0e,0x00,0x20,0x4f,0xf0, + 0x80,0x43,0x9b,0x68,0x03,0xf4,0x60,0x63,0xb3,0xf5,0x80,0x6f,0x0e,0xd0,0xb3,0xf5, + 0xc0,0x6f,0x16,0xd0,0xb3,0xf5,0x00,0x6f,0x16,0xd0,0xb3,0xf5,0x20,0x6f,0x15,0xd0, + 0x0d,0x4b,0x1b,0x78,0xa1,0x2b,0x13,0xd9,0x0c,0x4a,0x00,0xe0,0x0c,0x4a,0x4f,0xf0, + 0x80,0x43,0x9b,0x68,0xc3,0xf3,0x82,0x13,0x22,0xfa,0x03,0xf3,0x09,0x4a,0x13,0x60, + 0x70,0x47,0x4f,0xf4,0xfa,0x52,0xf2,0xe7,0x07,0x4a,0xf0,0xe7,0x07,0x4a,0xee,0xe7, + 0x07,0x4a,0xec,0xe7,0x00,0xbf,0xf8,0x09,0x00,0x20,0x80,0xf0,0xfa,0x02,0x00,0x36, + 0x6e,0x01,0xfc,0x09,0x00,0x20,0x00,0x0e,0x27,0x07,0x00,0x12,0x7a,0x00,0x00,0x5a, + 0x62,0x02,0x4f,0xf0,0x80,0x42,0x13,0x68,0x23,0xf4,0x40,0x33,0x43,0xf4,0x00,0x33, + 0x13,0x60,0x00,0x20,0x70,0x47,0x08,0xb5,0x00,0xf0,0x1a,0xfb,0x4f,0x4b,0x18,0x70, + 0x4f,0x4b,0x4f,0x4a,0x9a,0x60,0x62,0xb6,0xd3,0xf8,0x88,0x20,0x42,0xf4,0x70,0x02, + 0xc3,0xf8,0x88,0x20,0xbf,0xf3,0x4f,0x8f,0xbf,0xf3,0x6f,0x8f,0x04,0x20,0x00,0xf0, + 0xdc,0xf9,0xff,0xf7,0xa4,0xff,0x4f,0xf0,0x80,0x42,0x13,0x68,0x43,0xf4,0x00,0x33, + 0x13,0x60,0x44,0x4b,0x01,0x22,0xc3,0xf8,0x00,0x27,0x42,0x4b,0xd3,0xf8,0x00,0x31, + 0x13,0xf4,0x80,0x3f,0xf9,0xd0,0x3f,0x4a,0xd2,0xf8,0x00,0x31,0x43,0xf0,0x01,0x03, + 0xc2,0xf8,0x00,0x31,0x3c,0x4b,0xd3,0xf8,0x00,0x31,0x13,0xf4,0x80,0x3f,0xf9,0xd0, + 0x03,0x20,0x00,0xf0,0x72,0xf9,0x04,0x20,0x00,0xf0,0x6f,0xf9,0x05,0x20,0x00,0xf0, + 0x6c,0xf9,0x06,0x20,0x00,0xf0,0x69,0xf9,0x07,0x20,0x00,0xf0,0x66,0xf9,0x08,0x20, + 0x00,0xf0,0x63,0xf9,0x09,0x20,0x00,0xf0,0x60,0xf9,0x0a,0x20,0x00,0xf0,0x5d,0xf9, + 0x0d,0x20,0x00,0xf0,0x5a,0xf9,0x0e,0x20,0x00,0xf0,0x57,0xf9,0x0f,0x20,0x00,0xf0, + 0x54,0xf9,0x10,0x20,0x00,0xf0,0x51,0xf9,0x11,0x20,0x00,0xf0,0x4e,0xf9,0x12,0x20, + 0x00,0xf0,0x4b,0xf9,0x13,0x20,0x00,0xf0,0x48,0xf9,0x14,0x20,0x00,0xf0,0x45,0xf9, + 0x17,0x20,0x00,0xf0,0x42,0xf9,0x1c,0x20,0x00,0xf0,0x3f,0xf9,0x1d,0x20,0x00,0xf0, + 0x3c,0xf9,0x1e,0x20,0x00,0xf0,0x39,0xf9,0x1f,0x20,0x00,0xf0,0x36,0xf9,0x21,0x20, + 0x00,0xf0,0x33,0xf9,0x22,0x20,0x00,0xf0,0x30,0xf9,0x23,0x20,0x00,0xf0,0x2d,0xf9, + 0x24,0x20,0x00,0xf0,0x2a,0xf9,0x27,0x20,0x00,0xf0,0x27,0xf9,0x28,0x20,0x00,0xf0, + 0x24,0xf9,0x29,0x20,0x00,0xf0,0x21,0xf9,0x2a,0x20,0x00,0xf0,0x1e,0xf9,0x2b,0x20, + 0x00,0xf0,0x1b,0xf9,0x2c,0x20,0x00,0xf0,0x18,0xf9,0x2d,0x20,0x00,0xf0,0x15,0xf9, + 0x2e,0x20,0x00,0xf0,0x12,0xf9,0x2f,0x20,0x00,0xf0,0x0f,0xf9,0x34,0x20,0x00,0xf0, + 0x0c,0xf9,0xff,0xf7,0x44,0xfd,0x08,0xbd,0x00,0xbf,0xf8,0x09,0x00,0x20,0x00,0xed, + 0x00,0xe0,0x00,0x02,0x00,0x10,0x00,0xa0,0x02,0x40,0x38,0xb5,0x4f,0xf0,0xe0,0x23, + 0x9c,0x69,0x1a,0x69,0x22,0xf4,0x80,0x32,0x18,0x49,0x0a,0x60,0x1b,0x69,0x13,0xf0, + 0x01,0x0f,0x21,0xd1,0x4f,0xf0,0xe0,0x23,0x6f,0xf0,0x7f,0x44,0x5c,0x61,0x9c,0x61, + 0x05,0x22,0x1a,0x61,0x4f,0xf0,0x80,0x75,0x11,0x4b,0x19,0x68,0x11,0x4a,0x00,0x23, + 0xa0,0xfb,0x01,0x01,0x08,0xf0,0x61,0xf9,0xb0,0xfb,0xf5,0xf3,0x0e,0x4a,0x13,0x60, + 0x05,0xfb,0x13,0x00,0x84,0x42,0x0c,0xd8,0x13,0x68,0x01,0x33,0x13,0x60,0x20,0x1a, + 0x28,0x44,0x09,0x4b,0x18,0x60,0x38,0xbd,0x4f,0xf0,0xe0,0x23,0x5d,0x69,0x01,0x35, + 0xe2,0xe7,0x20,0x1a,0x05,0x4b,0x18,0x60,0xf5,0xe7,0x04,0x0a,0x00,0x20,0xfc,0x09, + 0x00,0x20,0x40,0x42,0x0f,0x00,0x04,0x00,0x00,0x20,0x08,0x0a,0x00,0x20,0x08,0xb5, + 0x0e,0x4b,0x19,0x60,0x0e,0x4b,0x1b,0x68,0x00,0x2b,0x10,0xdc,0x08,0xb9,0x00,0x20, + 0x08,0xbd,0xff,0xf7,0xb2,0xff,0x09,0x4b,0x1b,0x68,0x00,0x2b,0x0a,0xdd,0x4f,0xf0, + 0xe0,0x22,0x13,0x69,0x43,0xf0,0x02,0x03,0x13,0x61,0x00,0x20,0xf0,0xe7,0x6f,0xf0, + 0x05,0x00,0xed,0xe7,0x00,0x20,0xeb,0xe7,0x00,0xbf,0x00,0x0a,0x00,0x20,0x04,0x00, + 0x00,0x20,0x08,0xb5,0x09,0x4b,0x1b,0x68,0x2b,0xb1,0x6f,0xf0,0x0f,0x00,0x98,0x47, + 0x06,0x4b,0x00,0x22,0x1a,0x60,0x05,0x4b,0x1a,0x68,0x4f,0xf0,0xe0,0x23,0x1a,0x61, + 0x04,0x4b,0x4f,0xf0,0xff,0x32,0x1a,0x60,0x08,0xbd,0x00,0x0a,0x00,0x20,0x04,0x0a, + 0x00,0x20,0x04,0x00,0x00,0x20,0x08,0xb5,0x4f,0xf0,0xe0,0x23,0x1b,0x69,0x13,0xf4, + 0x80,0x3f,0x07,0xd0,0x0a,0x4b,0x1b,0x68,0x00,0x2b,0x04,0xdd,0x08,0x4a,0x13,0x68, + 0x01,0x3b,0x13,0x60,0x08,0xbd,0xff,0xf7,0xd4,0xff,0x05,0x4b,0x1b,0x68,0x00,0x2b, + 0xf8,0xd0,0x00,0x20,0x98,0x47,0x02,0x4b,0x00,0x22,0x1a,0x60,0xf2,0xe7,0x04,0x00, + 0x00,0x20,0x00,0x0a,0x00,0x20,0x08,0xb5,0xff,0xf7,0xdd,0xff,0x08,0xbd,0x10,0xb5, + 0x15,0x4b,0x1b,0x68,0x00,0x2b,0x15,0xdb,0x13,0x4b,0x1c,0x68,0xe4,0xb9,0x4f,0xf0, + 0xe0,0x23,0x9a,0x69,0x11,0x4b,0x1b,0x68,0x9a,0x42,0x18,0xd8,0xff,0xf7,0xb1,0xff, + 0x0f,0x4b,0x1b,0x68,0x23,0xb1,0x00,0x20,0x98,0x47,0x0c,0x4b,0x00,0x22,0x1a,0x60, + 0x20,0x46,0x10,0xbd,0x0a,0x4b,0x1b,0x68,0x23,0xb1,0x00,0x20,0x98,0x47,0x07,0x4b, + 0x00,0x22,0x1a,0x60,0x00,0x24,0xf3,0xe7,0x6f,0xf0,0x05,0x04,0xf0,0xe7,0x6f,0xf0, + 0x05,0x04,0xed,0xe7,0x00,0xbf,0x04,0x00,0x00,0x20,0x08,0x0a,0x00,0x20,0x00,0x0a, + 0x00,0x20,0x08,0xb5,0x13,0x4b,0x1b,0x68,0x00,0x2b,0x1e,0xdc,0x08,0xb9,0x00,0x20, + 0x08,0xbd,0xff,0xf7,0x22,0xff,0x0e,0x4b,0x1b,0x68,0x00,0x2b,0x0a,0xdd,0x4f,0xf0, + 0xe0,0x23,0x1b,0x69,0x13,0xf4,0x80,0x3f,0xf5,0xd0,0x09,0x4a,0x13,0x68,0x01,0x3b, + 0x13,0x60,0xf0,0xe7,0x4f,0xf0,0xe0,0x23,0x9a,0x69,0x06,0x4b,0x1b,0x68,0x9a,0x42, + 0xf8,0xd8,0xff,0xf7,0x6e,0xff,0x00,0x20,0xe2,0xe7,0x6f,0xf0,0x05,0x00,0xdf,0xe7, + 0x00,0xbf,0x04,0x00,0x00,0x20,0x08,0x0a,0x00,0x20,0x1f,0x28,0x0b,0xd9,0x20,0x38, + 0xc0,0xb2,0x4f,0xf0,0x80,0x41,0x8b,0x6c,0x01,0x22,0x02,0xfa,0x00,0xf0,0x18,0x43, + 0x88,0x64,0x00,0x20,0x70,0x47,0x4f,0xf0,0x80,0x41,0x4b,0x6a,0x01,0x22,0x02,0xfa, + 0x00,0xf0,0x18,0x43,0x48,0x62,0xf4,0xe7,0x1f,0x28,0x0c,0xd9,0x20,0x38,0xc0,0xb2, + 0x4f,0xf0,0x80,0x41,0x8b,0x6c,0x01,0x22,0x02,0xfa,0x00,0xf0,0x23,0xea,0x00,0x00, + 0x88,0x64,0x00,0x20,0x70,0x47,0x4f,0xf0,0x80,0x41,0x4b,0x6a,0x01,0x22,0x02,0xfa, + 0x00,0xf0,0x23,0xea,0x00,0x00,0x48,0x62,0xf3,0xe7,0x10,0xb5,0x04,0x46,0x00,0x21, + 0x4f,0xf4,0x7a,0x70,0xff,0xf7,0x0b,0xff,0x4f,0xf0,0x80,0x43,0x9b,0x68,0x23,0x42, + 0x07,0xd1,0xff,0xf7,0x64,0xff,0x10,0xf1,0x06,0x0f,0xf5,0xd0,0x6f,0xf0,0x09,0x00, + 0x02,0xe0,0xff,0xf7,0x1e,0xff,0x00,0x20,0x10,0xbd,0x70,0xb5,0x04,0x46,0x4f,0xf0, + 0x80,0x43,0x9d,0x68,0x05,0xf4,0x60,0x65,0x06,0x28,0x00,0xf2,0xa4,0x80,0xdf,0xe8, + 0x00,0xf0,0x04,0xa2,0x5f,0x26,0x35,0x4a,0x5f,0x00,0x4f,0xf0,0x80,0x42,0x93,0x68, + 0x43,0xf4,0x80,0x23,0x93,0x60,0x4f,0xf0,0x80,0x60,0xff,0xf7,0xce,0xff,0x00,0x28, + 0x40,0xf0,0x94,0x80,0x4f,0xf0,0x80,0x42,0x93,0x68,0x23,0xf4,0x60,0x63,0x93,0x60, + 0x4f,0xf4,0x00,0x50,0xff,0xf7,0xc1,0xff,0x06,0x46,0x00,0x28,0x53,0xd1,0x06,0x2c, + 0x61,0xd8,0xdf,0xe8,0x04,0xf0,0x5a,0x60,0x79,0x64,0x6b,0x72,0x79,0x00,0x4f,0xf0, + 0x00,0x50,0xff,0xf7,0xb2,0xff,0x00,0x28,0x7b,0xd1,0x4f,0xf0,0x80,0x42,0x93,0x68, + 0x23,0xf4,0x60,0x63,0x43,0xf4,0xc0,0x63,0x93,0x60,0xe1,0xe7,0x4f,0xf0,0x80,0x42, + 0x93,0x68,0x43,0xf4,0x00,0x23,0x93,0x60,0x4f,0xf0,0x00,0x60,0xff,0xf7,0x9d,0xff, + 0x00,0x28,0x69,0xd1,0x4f,0xf0,0x80,0x42,0x93,0x68,0x23,0xf4,0x60,0x63,0x43,0xf4, + 0x00,0x63,0x93,0x60,0xcc,0xe7,0x4f,0xf0,0x80,0x42,0x93,0x68,0x43,0xf4,0x80,0x13, + 0x93,0x60,0x4f,0xf0,0x80,0x50,0xff,0xf7,0x88,0xff,0x00,0x28,0x57,0xd1,0x4f,0xf0, + 0x80,0x42,0x93,0x68,0x23,0xf4,0x60,0x63,0x43,0xf4,0x20,0x63,0x93,0x60,0xb7,0xe7, + 0x4f,0xf0,0x80,0x42,0x93,0x68,0x43,0xf4,0x00,0x33,0x93,0x60,0x4f,0xf0,0x00,0x70, + 0xff,0xf7,0x73,0xff,0x00,0x28,0x45,0xd1,0x4f,0xf0,0x80,0x42,0x93,0x68,0x23,0xf4, + 0x60,0x63,0x93,0x60,0xa4,0xe7,0x4f,0xf0,0x80,0x42,0x93,0x68,0x23,0xf4,0x60,0x63, + 0x2b,0x43,0x93,0x60,0x6f,0xf0,0x09,0x06,0x07,0xe0,0x4f,0xf0,0x80,0x42,0x93,0x68, + 0x23,0xf4,0xd0,0x13,0x93,0x60,0xff,0xf7,0x3a,0xfd,0x30,0x46,0x70,0xbd,0x4f,0xf0, + 0x80,0x42,0x93,0x68,0x23,0xf4,0xf0,0x13,0x93,0x60,0xf4,0xe7,0x4f,0xf0,0x80,0x42, + 0x93,0x68,0x23,0xf4,0xb0,0x13,0x93,0x60,0xed,0xe7,0x4f,0xf0,0x80,0x42,0x93,0x68, + 0x23,0xf4,0x60,0x23,0x93,0x60,0xe6,0xe7,0x4f,0xf0,0x80,0x42,0x93,0x68,0x23,0xf4, + 0xe0,0x13,0x93,0x60,0xdf,0xe7,0x6f,0xf0,0x02,0x06,0xde,0xe7,0x6f,0xf0,0x09,0x06, + 0xdb,0xe7,0x6f,0xf0,0x09,0x06,0xd8,0xe7,0x6f,0xf0,0x09,0x06,0xd5,0xe7,0x6f,0xf0, + 0x09,0x06,0xd2,0xe7,0x6f,0xf0,0x09,0x06,0xcf,0xe7,0x1f,0x28,0x0e,0xd9,0x20,0x38, + 0xc0,0xb2,0x01,0x23,0x03,0xfa,0x00,0xf0,0x4f,0xf0,0x80,0x43,0x58,0x64,0x4f,0xf0, + 0x80,0x43,0x5b,0x6c,0x00,0x2b,0xfa,0xd1,0x00,0x20,0x70,0x47,0x01,0x23,0x03,0xfa, + 0x00,0xf0,0x4f,0xf0,0x80,0x43,0x58,0x60,0x4f,0xf0,0x80,0x43,0x5b,0x68,0x00,0x2b, + 0xfa,0xd1,0xf1,0xe7,0x0d,0x29,0x48,0xd1,0x2d,0xe9,0xf0,0x43,0x87,0xb0,0x04,0x46, + 0x4f,0xf0,0x84,0x50,0x00,0xf0,0x5f,0xf8,0x4f,0xf0,0x84,0x50,0x06,0x68,0x00,0x96, + 0xd0,0xf8,0x04,0x90,0xcd,0xf8,0x04,0x90,0x85,0x68,0x02,0x95,0xc7,0x68,0x03,0x97, + 0xd0,0xf8,0x10,0x80,0xcd,0xf8,0x10,0x80,0x43,0x69,0x05,0x93,0x00,0xf0,0x53,0xf8, + 0xf3,0x0b,0x23,0x70,0xf3,0x0d,0x63,0x70,0xf6,0x0f,0xa6,0x70,0x4f,0xea,0x49,0x03, + 0xdb,0xb2,0x1e,0x43,0xa6,0x70,0x4f,0xea,0xd9,0x13,0xe3,0x70,0x4f,0xea,0xd9,0x33, + 0x23,0x71,0x4f,0xea,0xd9,0x59,0x84,0xf8,0x05,0x90,0xeb,0x0b,0xa3,0x71,0xeb,0x0d, + 0xe3,0x71,0xed,0x0f,0x25,0x72,0x7b,0x00,0xdb,0xb2,0x1d,0x43,0x25,0x72,0xfb,0x09, + 0x63,0x72,0xfb,0x0b,0xa3,0x72,0xff,0x0d,0xe7,0x72,0x4f,0xea,0xd8,0x38,0x84,0xf8, + 0x0c,0x80,0x00,0x20,0x07,0xb0,0xbd,0xe8,0xf0,0x83,0x6f,0xf0,0x02,0x00,0x70,0x47, + 0x00,0xb5,0x85,0xb0,0x0d,0x21,0x68,0x46,0xff,0xf7,0xac,0xff,0x9d,0xf8,0x00,0x00, + 0x00,0xf0,0x0f,0x02,0x9e,0x28,0x8c,0xbf,0x00,0x23,0x01,0x23,0x09,0x2a,0x88,0xbf, + 0x43,0xf0,0x01,0x03,0x13,0xb9,0x05,0xb0,0x5d,0xf8,0x04,0xfb,0x4f,0xf0,0x80,0x43, + 0x18,0x6d,0xc0,0xb2,0xf7,0xe7,0x08,0xb5,0x01,0x46,0x01,0x48,0x00,0xf0,0x0b,0xf8, + 0x08,0xbd,0x00,0x90,0x02,0x40,0x08,0xb5,0x01,0x46,0x01,0x48,0x00,0xf0,0x23,0xf8, + 0x08,0xbd,0x00,0x90,0x02,0x40,0xa1,0xf1,0x84,0x51,0xb1,0xf5,0x80,0x3f,0x14,0xd2, + 0x41,0xf2,0x34,0x23,0x03,0x64,0x03,0xf1,0x69,0x53,0x03,0xf5,0x7d,0x13,0x03,0xf6, + 0x6f,0x23,0x03,0x64,0x03,0xf1,0xd0,0x43,0xa3,0xf5,0x1c,0x03,0xa3,0xf6,0x83,0x53, + 0x03,0x64,0x03,0x4b,0x03,0x64,0x00,0x20,0x70,0x47,0x6f,0xf0,0x02,0x00,0x70,0x47, + 0x00,0xbf,0xc1,0xb2,0x08,0x96,0xa1,0xf1,0x84,0x51,0xb1,0xf5,0x80,0x3f,0x03,0xd2, + 0x03,0x4b,0x03,0x64,0x00,0x20,0x70,0x47,0x6f,0xf0,0x02,0x00,0x70,0x47,0xef,0xbe, + 0xad,0xde,0x08,0xb5,0x00,0xf0,0x82,0xf8,0x08,0xbd,0x08,0xb5,0x00,0xf0,0x80,0xf8, + 0x08,0xbd,0x08,0xb5,0x00,0xf0,0x80,0xf8,0x08,0xbd,0x08,0xb5,0x00,0xf0,0x7a,0xf8, + 0x08,0xbd,0x08,0xb5,0x00,0xf0,0xb9,0xf8,0x08,0xbd,0x08,0xb5,0x00,0xf0,0x76,0xf8, + 0x08,0xbd,0x38,0xb5,0x04,0x46,0x05,0x68,0x42,0x68,0x01,0x7a,0x28,0x46,0x00,0xf0, + 0x82,0xf8,0xe8,0xb9,0x63,0x7a,0x04,0x2b,0x5d,0xd8,0xdf,0xe8,0x03,0xf0,0x03,0x1a, + 0x2a,0x3a,0x4b,0x00,0x2b,0x6e,0x62,0x68,0x23,0xea,0x02,0x03,0x2b,0x66,0x6b,0x6e, + 0x62,0x68,0x23,0xea,0x02,0x03,0x6b,0x66,0xd5,0xf8,0xb8,0x30,0x62,0x68,0x23,0xea, + 0x02,0x03,0xc5,0xf8,0xb8,0x30,0x62,0x68,0xa1,0x7a,0x28,0x46,0xff,0xf7,0xd5,0xff, + 0x38,0xbd,0x2b,0x6e,0x62,0x68,0x13,0x43,0x2b,0x66,0x6b,0x6e,0x62,0x68,0x23,0xea, + 0x02,0x03,0x6b,0x66,0xd5,0xf8,0xb8,0x30,0x62,0x68,0x13,0x43,0xc5,0xf8,0xb8,0x30, + 0xe9,0xe7,0x2b,0x6e,0x62,0x68,0x23,0xea,0x02,0x03,0x2b,0x66,0x6b,0x6e,0x62,0x68, + 0x13,0x43,0x6b,0x66,0xd5,0xf8,0xb8,0x30,0x62,0x68,0x13,0x43,0xc5,0xf8,0xb8,0x30, + 0xd9,0xe7,0x2b,0x6e,0x62,0x68,0x13,0x43,0x2b,0x66,0x6b,0x6e,0x62,0x68,0x23,0xea, + 0x02,0x03,0x6b,0x66,0xd5,0xf8,0xb8,0x30,0x62,0x68,0x23,0xea,0x02,0x03,0xc5,0xf8, + 0xb8,0x30,0xc8,0xe7,0x2b,0x6e,0x62,0x68,0x23,0xea,0x02,0x03,0x2b,0x66,0x6b,0x6e, + 0x62,0x68,0x13,0x43,0x6b,0x66,0xd5,0xf8,0xb8,0x30,0x62,0x68,0x23,0xea,0x02,0x03, + 0xc5,0xf8,0xb8,0x30,0xb7,0xe7,0x6f,0xf0,0x02,0x00,0xb9,0xe7,0xc1,0x61,0x70,0x47, + 0x01,0x62,0x70,0x47,0x81,0x64,0x70,0x47,0x00,0x6c,0x70,0x47,0x21,0xb1,0x01,0x29, + 0x0a,0xd0,0x6f,0xf0,0x02,0x00,0x70,0x47,0xd0,0xf8,0xc0,0x30,0x23,0xea,0x02,0x02, + 0xc0,0xf8,0xc0,0x20,0x00,0x20,0x70,0x47,0xd0,0xf8,0xc0,0x30,0x1a,0x43,0xc0,0xf8, + 0xc0,0x20,0x00,0x20,0x70,0x47,0x03,0x6b,0x13,0x43,0x03,0x63,0x03,0x29,0x21,0xd8, + 0xdf,0xe8,0x01,0xf0,0x02,0x0a,0x12,0x19,0x42,0x61,0x42,0x60,0x02,0x67,0xc2,0x67, + 0xc0,0xf8,0x88,0x20,0x00,0x20,0x70,0x47,0x02,0x61,0x42,0x60,0x02,0x67,0xc2,0x67, + 0xc0,0xf8,0x88,0x20,0x00,0x20,0x70,0x47,0xc2,0x67,0x02,0x67,0x82,0x60,0xc0,0xf8, + 0x88,0x20,0x00,0x20,0x70,0x47,0xc2,0x67,0xc2,0x66,0x82,0x60,0xc0,0xf8,0x88,0x20, + 0x00,0x20,0x70,0x47,0x6f,0xf0,0x02,0x00,0x70,0x47,0x70,0xb5,0x06,0x46,0x03,0x28, + 0x08,0xd8,0x7e,0xb1,0x01,0x2e,0x18,0xd0,0x02,0x2e,0x18,0xd0,0x03,0x2e,0x07,0xd0, + 0x00,0x25,0x08,0xe0,0x5a,0x22,0x14,0x49,0x15,0x48,0xff,0xf7,0x7e,0xf9,0xf0,0xe7, + 0x14,0x4d,0x00,0xe0,0x14,0x4d,0x28,0x46,0xff,0xf7,0x23,0xff,0x04,0x46,0x01,0x46, + 0x28,0x46,0xff,0xf7,0x22,0xff,0x00,0x25,0x05,0xe0,0x0f,0x4d,0xf3,0xe7,0x0f,0x4d, + 0xf1,0xe7,0x01,0x35,0x64,0x08,0x74,0xb1,0x14,0xf0,0x01,0x0f,0xf9,0xd0,0x05,0xeb, + 0x46,0x13,0x0b,0x4a,0x52,0xf8,0x23,0x20,0x00,0x2a,0xf2,0xd0,0x0a,0x49,0x51,0xf8, + 0x23,0x00,0x90,0x47,0xed,0xe7,0x70,0xbd,0x00,0xbf,0xb8,0x91,0x00,0x10,0x1c,0x92, + 0x00,0x10,0x00,0xb0,0x00,0x40,0x00,0x80,0x00,0x40,0x00,0x90,0x00,0x40,0x00,0xa0, + 0x00,0x40,0x0c,0x0a,0x00,0x20,0x0c,0x0c,0x00,0x20,0x70,0xb5,0x05,0x46,0x0e,0x46, + 0x1e,0x20,0xff,0xf7,0x31,0xfd,0x1f,0x20,0xff,0xf7,0x2e,0xfd,0x2c,0x20,0xff,0xf7, + 0x2b,0xfd,0x07,0x48,0xff,0xf7,0xf5,0xfe,0x07,0x4c,0x33,0x46,0x2a,0x46,0x06,0x49, + 0x20,0x46,0x00,0xf0,0x9a,0xf9,0xa3,0x68,0x43,0xf0,0x01,0x03,0xa3,0x60,0x00,0x20, + 0x70,0xbd,0x20,0x93,0x00,0x10,0x00,0x70,0x02,0x40,0x00,0x60,0x02,0x40,0x00,0xb5, + 0x83,0xb0,0x03,0x46,0x00,0x91,0x03,0x4a,0x04,0x49,0x04,0x48,0x00,0xf0,0xd1,0xf9, + 0x03,0xb0,0x5d,0xf8,0x04,0xfb,0x00,0xc0,0x0b,0x40,0x00,0x60,0x02,0x40,0x00,0x70, + 0x02,0x40,0x08,0xb5,0x02,0x46,0x02,0x49,0x03,0x48,0x00,0xf0,0x1c,0xfa,0x08,0xbd, + 0x00,0xbf,0x00,0xc0,0x0b,0x40,0x00,0x70,0x02,0x40,0x10,0xb4,0x84,0x46,0x00,0x20, + 0x02,0xe0,0x0c,0x79,0x14,0x54,0x01,0x30,0xdc,0xf8,0x0c,0x40,0x14,0xf0,0x7c,0x5f, + 0x01,0xd0,0x98,0x42,0xf5,0xd1,0x5d,0xf8,0x04,0x4b,0x70,0x47,0x0b,0x68,0x23,0xf0, + 0x03,0x03,0x02,0xf0,0x03,0x0c,0x43,0xea,0x0c,0x03,0x0b,0x60,0x03,0x68,0x23,0xf0, + 0x30,0x03,0x12,0x01,0x02,0xf0,0x30,0x02,0x1a,0x43,0x02,0x60,0x00,0x20,0x70,0x47, + 0x0b,0x68,0x43,0xf0,0x04,0x03,0x0b,0x60,0x43,0x68,0x23,0xf0,0x01,0x03,0x43,0x60, + 0x00,0x20,0x70,0x47,0x00,0x00,0x03,0x68,0xc3,0xf3,0x03,0x30,0x13,0xf4,0x70,0x4f, + 0x00,0xd1,0x10,0x20,0x40,0x00,0x02,0x4b,0x1b,0x68,0xb3,0xfb,0xf0,0xf0,0x70,0x47, + 0x00,0xbf,0xfc,0x09,0x00,0x20,0x02,0x68,0xc2,0xf3,0x03,0x23,0x12,0xf4,0x70,0x6f, + 0x00,0xd1,0x10,0x23,0x03,0x4a,0x10,0x68,0x40,0x08,0x5b,0x00,0xb0,0xfb,0xf3,0xf0, + 0x70,0x47,0xfc,0x09,0x00,0x20,0x08,0xb5,0x03,0x46,0x08,0x46,0x3d,0x49,0x09,0x68, + 0x91,0x42,0x70,0xd3,0xb1,0xfb,0xf2,0xf1,0x4f,0xea,0x51,0x0c,0x11,0xf0,0x01,0x0f, + 0x02,0xd0,0x0c,0xf1,0x01,0x02,0x00,0xe0,0x62,0x46,0x60,0xb1,0x0a,0xbb,0x01,0x68, + 0x21,0xf4,0x70,0x61,0x41,0xf4,0x80,0x71,0x01,0x60,0x01,0x68,0x21,0xf4,0x70,0x41, + 0x41,0xf4,0x80,0x51,0x01,0x60,0x6b,0xb1,0x00,0x2a,0x32,0xd1,0x1a,0x68,0x22,0xf4, + 0x70,0x42,0x42,0xf4,0x80,0x52,0x1a,0x60,0x1a,0x68,0x22,0xf4,0x70,0x62,0x42,0xf4, + 0x80,0x72,0x1a,0x60,0x00,0x2b,0x42,0xd1,0x00,0x28,0x47,0xd0,0xff,0xf7,0xab,0xff, + 0x08,0xbd,0x0f,0x2a,0x08,0xd9,0x01,0x68,0x41,0xf4,0x70,0x61,0x01,0x60,0x01,0x68, + 0x41,0xf4,0x70,0x41,0x01,0x60,0xde,0xe7,0x01,0x68,0x21,0xf4,0x70,0x61,0x4f,0xea, + 0x0c,0x2e,0x0e,0xf4,0x70,0x6e,0x41,0xea,0x0e,0x01,0x01,0x60,0x01,0x68,0x21,0xf4, + 0x70,0x41,0x4f,0xea,0x02,0x3e,0x1f,0xfa,0x8e,0xfe,0x41,0xea,0x0e,0x01,0x01,0x60, + 0xc9,0xe7,0x0f,0x2a,0x08,0xd9,0x1a,0x68,0x42,0xf4,0x70,0x42,0x1a,0x60,0x1a,0x68, + 0x42,0xf4,0x70,0x62,0x1a,0x60,0xcd,0xe7,0x19,0x68,0x21,0xf4,0x70,0x41,0x4f,0xea, + 0x0c,0x3c,0x1f,0xfa,0x8c,0xfc,0x41,0xea,0x0c,0x01,0x19,0x60,0x19,0x68,0x21,0xf4, + 0x70,0x61,0x12,0x02,0x02,0xf4,0x70,0x62,0x0a,0x43,0x1a,0x60,0xba,0xe7,0x18,0x46, + 0xff,0xf7,0x79,0xff,0xbc,0xe7,0x6f,0xf0,0x02,0x00,0xb9,0xe7,0x6f,0xf0,0x02,0x00, + 0xb6,0xe7,0xfc,0x09,0x00,0x20,0x0b,0x68,0x23,0xf4,0x40,0x33,0x12,0x04,0x02,0xf4, + 0x40,0x32,0x13,0x43,0x0b,0x60,0x03,0x68,0x23,0xf4,0x40,0x33,0x1a,0x43,0x02,0x60, + 0x00,0x20,0x70,0x47,0x0b,0x68,0x23,0xf4,0x40,0x23,0x92,0x04,0x02,0xf4,0x40,0x22, + 0x13,0x43,0x0b,0x60,0x03,0x68,0x23,0xf4,0x40,0x23,0x1a,0x43,0x02,0x60,0x00,0x20, + 0x70,0x47,0x38,0xb5,0x05,0x46,0x0c,0x46,0x02,0x29,0x09,0xd8,0x6b,0x68,0x23,0xf4, + 0x40,0x73,0x24,0x02,0x04,0xf4,0x40,0x74,0x1c,0x43,0x6c,0x60,0x00,0x20,0x38,0xbd, + 0x4f,0xf4,0x58,0x72,0x02,0x49,0x02,0x48,0xff,0xf7,0x07,0xf8,0xee,0xe7,0x3c,0x92, + 0x00,0x10,0xa0,0x92,0x00,0x10,0x38,0xb5,0x05,0x46,0x0c,0x46,0x02,0x29,0x09,0xd8, + 0x6b,0x68,0x23,0xf4,0x40,0x63,0xa4,0x02,0x04,0xf4,0x40,0x64,0x1c,0x43,0x6c,0x60, + 0x00,0x20,0x38,0xbd,0x40,0xf2,0x6f,0x32,0x02,0x49,0x02,0x48,0xfe,0xf7,0xed,0xff, + 0xee,0xe7,0x3c,0x92,0x00,0x10,0xa0,0x92,0x00,0x10,0x38,0xb5,0x05,0x46,0x0c,0x46, + 0x02,0x29,0x09,0xd8,0x6b,0x68,0x23,0xf4,0x40,0x53,0x24,0x03,0x04,0xf4,0x40,0x54, + 0x1c,0x43,0x6c,0x60,0x00,0x20,0x38,0xbd,0x40,0xf2,0x7e,0x32,0x02,0x49,0x02,0x48, + 0xfe,0xf7,0xd3,0xff,0xee,0xe7,0x3c,0x92,0x00,0x10,0xa0,0x92,0x00,0x10,0x43,0x68, + 0x23,0xf4,0x80,0x33,0x43,0x60,0x00,0x20,0x70,0x47,0x0b,0x69,0x43,0xf0,0x01,0x03, + 0x0b,0x61,0x83,0x68,0x43,0xf0,0x80,0x73,0x83,0x60,0x00,0x20,0x70,0x47,0x0b,0x69, + 0x23,0xf0,0x01,0x03,0x0b,0x61,0x83,0x68,0x23,0xf0,0x80,0x73,0x83,0x60,0x00,0x20, + 0x70,0x47,0x43,0x68,0x23,0xf0,0xff,0x03,0x0b,0x43,0x43,0x60,0x00,0x20,0x70,0x47, + 0x03,0x68,0x23,0xf0,0xc0,0x03,0x89,0x01,0xc9,0xb2,0x0b,0x43,0x03,0x60,0x70,0x47, + 0x83,0x68,0x43,0xf0,0x04,0x03,0x83,0x60,0x00,0x20,0x70,0x47,0x83,0x68,0x43,0xf0, + 0x02,0x03,0x83,0x60,0x00,0x20,0x70,0x47,0x00,0x00,0x2d,0xe9,0xf0,0x41,0x05,0x46, + 0x0c,0x46,0x17,0x46,0x98,0x46,0x1f,0x4b,0x00,0x26,0x1e,0x60,0x5e,0x60,0x86,0x60, + 0xff,0xf7,0xe6,0xff,0x28,0x46,0xff,0xf7,0xe9,0xff,0x21,0x46,0x28,0x46,0xff,0xf7, + 0xbc,0xff,0x42,0x46,0x21,0x46,0x28,0x46,0xff,0xf7,0xc5,0xfe,0x32,0x46,0x21,0x46, + 0x28,0x46,0xff,0xf7,0x40,0xff,0x32,0x46,0x21,0x46,0x28,0x46,0xff,0xf7,0x4a,0xff, + 0xf9,0xb2,0x20,0x46,0xff,0xf7,0xbd,0xff,0x31,0x46,0x20,0x46,0xff,0xf7,0x51,0xff, + 0x31,0x46,0x20,0x46,0xff,0xf7,0x67,0xff,0x31,0x46,0x20,0x46,0xff,0xf7,0x7d,0xff, + 0x20,0x46,0xff,0xf7,0x94,0xff,0x32,0x46,0x21,0x46,0x28,0x46,0xff,0xf7,0x66,0xfe, + 0x03,0x21,0x28,0x46,0xff,0xf7,0xac,0xff,0x21,0x46,0x28,0x46,0xff,0xf7,0x70,0xfe, + 0x30,0x46,0xbd,0xe8,0xf0,0x81,0x0c,0x0e,0x00,0x20,0x80,0x68,0x00,0xf0,0x01,0x00, + 0x70,0x47,0xf8,0xb5,0x05,0x46,0x0f,0x46,0x14,0x46,0x1e,0x46,0xff,0xf7,0xf5,0xff, + 0x10,0xb1,0x3e,0xb9,0x00,0x20,0xf8,0xbd,0x9b,0x22,0x23,0x49,0x24,0x48,0xfe,0xf7, + 0x3c,0xff,0xf6,0xe7,0x01,0x21,0x22,0x48,0x00,0xf0,0xc9,0xfc,0x00,0x28,0x39,0xd1, + 0xea,0x68,0x12,0xf4,0xf8,0x5f,0xfb,0xd1,0x39,0x46,0x28,0x46,0xff,0xf7,0x6f,0xff, + 0x32,0x46,0x08,0xe0,0x01,0x23,0x23,0x80,0x4f,0xf4,0x70,0x4c,0xa4,0xf8,0x00,0xc0, + 0xa4,0xf8,0x00,0xc0,0x20,0x3a,0x20,0x2a,0xf4,0xd8,0xa2,0xb1,0x1f,0x2a,0x1f,0xd8, + 0x13,0x01,0x9b,0xb2,0x43,0xf0,0x01,0x03,0x9d,0xf8,0x18,0x10,0x43,0xea,0x41,0x33, + 0x1b,0xb2,0x9b,0xb2,0x23,0x80,0x10,0x2a,0x02,0xd9,0x4f,0xf4,0x70,0x43,0x23,0x80, + 0x4f,0xf4,0x70,0x43,0x23,0x80,0xea,0x68,0x12,0xf4,0xf8,0x5f,0xfb,0xd1,0x39,0x46, + 0x28,0x46,0xff,0xf7,0x3a,0xff,0x06,0x48,0x00,0xf0,0x9f,0xfc,0x30,0x46,0xba,0xe7, + 0x01,0x23,0xe1,0xe7,0x6f,0xf0,0x05,0x00,0xb5,0xe7,0x3c,0x92,0x00,0x10,0xbc,0x92, + 0x00,0x10,0x0c,0x0e,0x00,0x20,0x2d,0xe9,0xf0,0x4f,0x83,0xb0,0x05,0x46,0x0e,0x46, + 0x14,0x46,0x5a,0xb1,0xa3,0x68,0x7b,0xb1,0x28,0x46,0xff,0xf7,0x96,0xff,0xa0,0xb1, + 0x23,0x69,0xc3,0xb9,0x00,0x20,0x03,0xb0,0xbd,0xe8,0xf0,0x8f,0xdd,0x22,0x6d,0x49, + 0x6e,0x48,0xfe,0xf7,0xda,0xfe,0xed,0xe7,0x63,0x68,0x00,0x2b,0xec,0xd1,0xde,0x22, + 0x69,0x49,0x6a,0x48,0xfe,0xf7,0xd1,0xfe,0xe6,0xe7,0xe1,0x22,0x66,0x49,0x68,0x48, + 0xfe,0xf7,0xcb,0xfe,0xe4,0xe7,0x01,0x21,0x67,0x48,0x00,0xf0,0x58,0xfc,0x01,0x90, + 0x00,0x28,0x40,0xf0,0xbd,0x80,0x00,0x23,0x63,0x61,0xa3,0x61,0x62,0x4a,0x53,0x60, + 0xd4,0xf8,0x08,0x80,0xb8,0xeb,0x03,0x0b,0x18,0xbf,0x4f,0xf0,0x01,0x0b,0x67,0x68, + 0xb7,0xeb,0x03,0x0a,0x18,0xbf,0x4f,0xf0,0x01,0x0a,0xd4,0xf8,0x10,0x90,0x3b,0x46, + 0x47,0x46,0x98,0x46,0xb9,0xf1,0x00,0x0f,0x00,0xf0,0x99,0x80,0x4a,0xea,0x4b,0x03, + 0x22,0x7b,0x43,0xea,0x42,0x23,0x1b,0xb2,0x9a,0xb2,0xb9,0xf1,0x1f,0x0f,0x2b,0xdd, + 0xb9,0xf1,0x20,0x0f,0x15,0xd0,0x42,0xf0,0x08,0x02,0x49,0x46,0xb9,0xf1,0x00,0x0f, + 0x17,0xdb,0x4b,0x11,0xb1,0xf5,0x80,0x6f,0x16,0xd2,0x19,0x01,0x89,0xb2,0x0a,0x43, + 0x5b,0x01,0x4b,0x45,0x13,0xd0,0x32,0x80,0x47,0x4a,0x53,0x60,0xa9,0xeb,0x03,0x09, + 0x59,0xe0,0x23,0x78,0x42,0xea,0x43,0x32,0x92,0xb2,0x42,0xf0,0x04,0x02,0x20,0x23, + 0xf1,0xe7,0x09,0xf1,0x1f,0x01,0xe4,0xe7,0x4f,0xf4,0x80,0x63,0xe9,0xe7,0x21,0x78, + 0x42,0xea,0x41,0x32,0x92,0xb2,0xe6,0xe7,0x4f,0xea,0x09,0x12,0x42,0xf0,0x04,0x02, + 0x12,0xb2,0x21,0x78,0x42,0xea,0x41,0x32,0x12,0xb2,0x13,0x43,0x9b,0xb2,0x33,0x80, + 0x35,0x4b,0xc3,0xf8,0x04,0x90,0xdd,0xf8,0x04,0x90,0x34,0xe0,0xeb,0x68,0xc3,0xf3, + 0x04,0x23,0x0e,0x2b,0xfa,0xd8,0x01,0x2a,0x0b,0xdd,0x61,0x68,0xa2,0x69,0x8b,0x18, + 0x58,0x78,0x8b,0x5c,0x43,0xea,0x00,0x23,0x33,0x80,0xa3,0x69,0x02,0x33,0xa3,0x61, + 0x29,0xe0,0x62,0x68,0xa3,0x69,0xd3,0x5c,0x43,0xf4,0x70,0x43,0x33,0x80,0xa3,0x69, + 0x01,0x33,0xa3,0x61,0x1f,0xe0,0xa1,0x68,0x62,0x69,0x01,0x23,0x0a,0x44,0x31,0x46, + 0x28,0x46,0xff,0xf7,0x32,0xfd,0x01,0x28,0xf5,0xd1,0x63,0x69,0x01,0x33,0x63,0x61, + 0x1d,0x4b,0x5b,0x68,0x01,0x2b,0x02,0xdd,0x01,0x3b,0x1a,0x4a,0x53,0x60,0x19,0x4a, + 0x53,0x68,0x01,0x3b,0x53,0x60,0x17,0x4b,0x5a,0x68,0x00,0x2a,0x3f,0xf4,0x7a,0xaf, + 0xb8,0xf1,0x00,0x0f,0xc2,0xd1,0x00,0x2f,0xea,0xd0,0x12,0x4b,0x5b,0x68,0x01,0x2b, + 0xd9,0xdd,0xa1,0x68,0x62,0x69,0x01,0x23,0x0a,0x44,0x31,0x46,0x28,0x46,0xff,0xf7, + 0x0c,0xfd,0x01,0x28,0xf5,0xd1,0x63,0x69,0x01,0x33,0x63,0x61,0xcb,0xe7,0x47,0x46, + 0x09,0x48,0x00,0xf0,0xaa,0xfb,0x0f,0xb1,0xa0,0x69,0x24,0xe7,0x60,0x69,0x22,0xe7, + 0x6f,0xf0,0x05,0x00,0x1f,0xe7,0x3c,0x92,0x00,0x10,0xe0,0x92,0x00,0x10,0xec,0x92, + 0x00,0x10,0xbc,0x92,0x00,0x10,0x0c,0x0e,0x00,0x20,0x08,0xb5,0x12,0x4b,0x98,0x42, + 0x0d,0xd0,0x11,0x4b,0x98,0x42,0x12,0xd0,0x11,0x4b,0x98,0x42,0x17,0xd1,0x1c,0x20, + 0xff,0xf7,0xcb,0xfa,0x21,0x20,0xff,0xf7,0xc0,0xf9,0x00,0x20,0x08,0xbd,0x0b,0x20, + 0xff,0xf7,0xc3,0xfa,0x09,0x20,0xff,0xf7,0xb8,0xf9,0x00,0x20,0xf6,0xe7,0x0c,0x20, + 0xff,0xf7,0xbb,0xfa,0x0a,0x20,0xff,0xf7,0xb0,0xf9,0x00,0x20,0xee,0xe7,0x6f,0xf0, + 0x02,0x00,0xeb,0xe7,0x00,0xbf,0x00,0x20,0x04,0x40,0x00,0x30,0x04,0x40,0x00,0x40, + 0x04,0x40,0x70,0xb5,0x04,0x46,0x0e,0x46,0xff,0xf7,0xcf,0xff,0x05,0x46,0x38,0xbb, + 0x1f,0x4b,0x9c,0x42,0x26,0xd0,0x1e,0x4b,0x9c,0x42,0x2a,0xd0,0x1e,0x4b,0x9c,0x42, + 0x32,0xd1,0x1d,0x48,0xff,0xf7,0x75,0xfb,0x21,0x20,0xff,0xf7,0xa5,0xf9,0x17,0x4b, + 0x9c,0x42,0x09,0xd0,0x03,0xf5,0x80,0x53,0x9c,0x42,0x23,0xd0,0x03,0xf5,0x80,0x53, + 0x9c,0x42,0x1d,0xd0,0x4f,0xf0,0xff,0x35,0x00,0x23,0x14,0x4a,0x42,0xf8,0x25,0x30, + 0x14,0x4a,0x42,0xf8,0x25,0x30,0x31,0x46,0x20,0x46,0x00,0xf0,0x9c,0xf8,0x05,0x46, + 0x28,0x46,0x70,0xbd,0x10,0x48,0xff,0xf7,0x54,0xfb,0x09,0x20,0xff,0xf7,0x84,0xf9, + 0xdd,0xe7,0x0d,0x48,0xff,0xf7,0x4d,0xfb,0x0a,0x20,0xff,0xf7,0x7d,0xf9,0xd6,0xe7, + 0x02,0x25,0xe1,0xe7,0x01,0x25,0xdf,0xe7,0x6f,0xf0,0x02,0x05,0xe8,0xe7,0x00,0x20, + 0x04,0x40,0x00,0x30,0x04,0x40,0x00,0x40,0x04,0x40,0x44,0x93,0x00,0x10,0x14,0x0e, + 0x00,0x20,0x20,0x0e,0x00,0x20,0x2c,0x93,0x00,0x10,0x38,0x93,0x00,0x10,0x08,0xb5, + 0x00,0xf0,0xa1,0xf8,0x08,0xbd,0x08,0xb5,0x00,0xf0,0x31,0xf9,0x08,0xbd,0x08,0xb5, + 0x00,0xf0,0x87,0xf9,0x08,0xbd,0x08,0xb5,0x00,0xf0,0xa3,0xf9,0x08,0xbd,0x08,0xb5, + 0x00,0xf0,0xc1,0xf9,0x08,0xbd,0x08,0xb5,0x08,0x4b,0x98,0x42,0x07,0xd0,0x03,0xf5, + 0x80,0x53,0x98,0x42,0x03,0xd0,0x03,0xf5,0x80,0x53,0x98,0x42,0x02,0xd1,0x00,0xf0, + 0xce,0xfa,0x08,0xbd,0x6f,0xf0,0x02,0x00,0xfb,0xe7,0x00,0x20,0x04,0x40,0x08,0xb5, + 0x08,0x4b,0x98,0x42,0x07,0xd0,0x03,0xf5,0x80,0x53,0x98,0x42,0x03,0xd0,0x03,0xf5, + 0x80,0x53,0x98,0x42,0x02,0xd1,0x00,0xf0,0xc5,0xfa,0x08,0xbd,0x6f,0xf0,0x02,0x00, + 0xfb,0xe7,0x00,0x20,0x04,0x40,0x08,0xb5,0x00,0xf0,0x33,0xfa,0x08,0xbd,0x08,0xb5, + 0x00,0xf0,0x49,0xfa,0x08,0xbd,0x08,0xb5,0x08,0x4b,0x98,0x42,0x07,0xd0,0x03,0xf5, + 0x80,0x53,0x98,0x42,0x03,0xd0,0x03,0xf5,0x80,0x53,0x98,0x42,0x02,0xd1,0x00,0xf0, + 0x54,0xfa,0x08,0xbd,0x6f,0xf0,0x02,0x00,0xfb,0xe7,0x00,0x20,0x04,0x40,0x08,0xb5, + 0x08,0x4b,0x98,0x42,0x07,0xd0,0x03,0xf5,0x80,0x53,0x98,0x42,0x03,0xd0,0x03,0xf5, + 0x80,0x53,0x98,0x42,0x02,0xd1,0x00,0xf0,0x44,0xfa,0x08,0xbd,0x6f,0xf0,0x02,0x00, + 0xfb,0xe7,0x00,0x20,0x04,0x40,0x08,0xb5,0x00,0xf0,0x41,0xfa,0x08,0xbd,0x08,0xb5, + 0x00,0xf0,0x5d,0xfa,0x08,0xbd,0x70,0xb5,0x06,0x46,0x0d,0x46,0x01,0x21,0xff,0xf7, + 0xf2,0xff,0x04,0x46,0x08,0xb1,0x20,0x46,0x70,0xbd,0x02,0x21,0x30,0x46,0xff,0xf7, + 0xee,0xff,0x04,0x46,0x00,0x28,0xf6,0xd1,0x08,0x21,0x30,0x46,0xff,0xf7,0x7f,0xff, + 0x04,0x46,0x00,0x28,0xef,0xd1,0x00,0x21,0x30,0x46,0xff,0xf7,0x80,0xff,0x04,0x46, + 0x00,0x28,0xe8,0xd1,0x00,0x21,0x30,0x46,0xff,0xf7,0x75,0xff,0x04,0x46,0x00,0x28, + 0xe1,0xd1,0x33,0x68,0x43,0xf0,0x01,0x03,0x33,0x60,0x29,0x46,0x30,0x46,0xff,0xf7, + 0x5e,0xff,0xd8,0xe7,0x00,0x00,0x08,0xb5,0x07,0xee,0x90,0x1a,0x45,0x4b,0x98,0x42, + 0x07,0xd0,0x03,0xf5,0x80,0x53,0x98,0x42,0x03,0xd0,0x03,0xf5,0x80,0x53,0x98,0x42, + 0x79,0xd1,0x03,0x68,0x13,0xf4,0x00,0x4f,0x1c,0xd1,0x3e,0x4b,0x1b,0x68,0x5b,0x08, + 0x07,0xee,0x10,0x3a,0xb8,0xee,0xc7,0x7a,0xf8,0xee,0x67,0x7a,0xc7,0xee,0x27,0x6a, + 0x08,0x23,0x80,0x2b,0x12,0xdc,0x07,0xee,0x90,0x3a,0xf8,0xee,0xe7,0x7a,0x86,0xee, + 0xa7,0x7a,0xf7,0xee,0x00,0x7a,0xb4,0xee,0xe7,0x7a,0xf1,0xee,0x10,0xfa,0x04,0xd4, + 0x5b,0x00,0xee,0xe7,0x9f,0xed,0x31,0x7a,0xe4,0xe7,0x5b,0x10,0x80,0x2b,0x04,0xdc, + 0x07,0x2b,0x03,0xdc,0x6f,0xf0,0x02,0x00,0x3b,0xe0,0x80,0x23,0x07,0xee,0x90,0x3a, + 0xb8,0xee,0xe7,0x7a,0xc6,0xee,0x87,0x7a,0xbd,0xee,0xe7,0x7a,0xf8,0xee,0xc7,0x6a, + 0x77,0xee,0xe6,0x7a,0xf0,0xee,0x67,0x6a,0xfe,0xee,0xec,0x6a,0x16,0xee,0x90,0x2a, + 0x03,0x2a,0x27,0xdd,0x03,0x3a,0x20,0x2b,0x2f,0xd0,0x25,0xdd,0x40,0x2b,0x30,0xd0, + 0x80,0x2b,0x33,0xd1,0x00,0x23,0x1b,0x04,0x41,0x69,0x21,0xf4,0x40,0x31,0x03,0xf4, + 0x40,0x33,0x0b,0x43,0x43,0x61,0x43,0x69,0x23,0xf4,0x7f,0x63,0x23,0xf0,0x0f,0x03, + 0x17,0xee,0x10,0x1a,0xc1,0xf3,0x0b,0x01,0x0b,0x43,0x43,0x61,0x83,0x69,0x23,0xf4, + 0x7f,0x63,0x23,0xf0,0x0f,0x03,0xc2,0xf3,0x0b,0x02,0x13,0x43,0x83,0x61,0xff,0xf7, + 0xea,0xfe,0x08,0xbd,0x03,0x32,0xd6,0xe7,0x08,0x2b,0x08,0xd0,0x10,0x2b,0x01,0xd1, + 0x03,0x23,0xd8,0xe7,0x6f,0xf0,0x07,0x00,0xf3,0xe7,0x02,0x23,0xd3,0xe7,0x04,0x23, + 0xd1,0xe7,0x01,0x23,0xcf,0xe7,0x6f,0xf0,0x02,0x00,0xea,0xe7,0x6f,0xf0,0x07,0x00, + 0xe7,0xe7,0x00,0x20,0x04,0x40,0xfc,0x09,0x00,0x20,0x00,0x80,0x70,0x00,0x03,0x68, + 0x13,0xf4,0x00,0x4f,0x29,0xd1,0x26,0x4b,0x1b,0x68,0x5b,0x08,0x06,0xee,0x90,0x3a, + 0x43,0x69,0xc3,0xf3,0x0b,0x03,0x07,0xee,0x90,0x3a,0xf8,0xee,0x67,0x7a,0x9f,0xed, + 0x21,0x7a,0x37,0xee,0x87,0x7a,0x83,0x69,0xc3,0xf3,0x0b,0x03,0x07,0xee,0x90,0x3a, + 0xf8,0xee,0x67,0x7a,0xb0,0xee,0x08,0x6a,0xf4,0xee,0xc6,0x7a,0xf1,0xee,0x10,0xfa, + 0x0e,0xdd,0xb1,0xee,0x08,0x6a,0xf4,0xee,0xc6,0x7a,0xf1,0xee,0x10,0xfa,0x07,0xd8, + 0xb0,0xee,0x08,0x6a,0x77,0xee,0xc6,0x7a,0x06,0xe0,0xdf,0xed,0x13,0x6a,0xd7,0xe7, + 0xb0,0xee,0x08,0x6a,0x77,0xee,0x86,0x7a,0x9f,0xed,0x11,0x6a,0x67,0xee,0x86,0x7a, + 0x77,0xee,0x87,0x7a,0x43,0x69,0x03,0xf4,0x40,0x33,0xc3,0xf1,0x07,0x02,0x01,0x23, + 0x93,0x40,0x07,0xee,0x10,0x3a,0xb8,0xee,0xc7,0x7a,0x67,0xee,0x27,0x7a,0xb8,0xee, + 0xe6,0x7a,0xc7,0xee,0x27,0x6a,0xfd,0xee,0xe6,0x7a,0x17,0xee,0x90,0x0a,0x70,0x47, + 0x00,0xbf,0xfc,0x09,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x80,0x70,0x00,0x00,0x00, + 0x00,0x3c,0x0e,0x4b,0x98,0x42,0x07,0xd0,0x03,0xf5,0x80,0x53,0x98,0x42,0x03,0xd0, + 0x03,0xf5,0x80,0x53,0x98,0x42,0x0c,0xd1,0x4b,0x1f,0x03,0x2b,0x0c,0xd8,0x19,0x02, + 0x03,0x68,0x23,0xf4,0x40,0x73,0x01,0xf4,0x40,0x71,0x19,0x43,0x01,0x60,0x00,0x20, + 0x70,0x47,0x6f,0xf0,0x02,0x00,0x70,0x47,0x6f,0xf0,0x02,0x00,0x70,0x47,0x00,0x20, + 0x04,0x40,0x0f,0x4b,0x98,0x42,0x07,0xd0,0x03,0xf5,0x80,0x53,0x98,0x42,0x03,0xd0, + 0x03,0xf5,0x80,0x53,0x98,0x42,0x11,0xd1,0x21,0xb1,0x01,0x29,0x08,0xd0,0x6f,0xf0, + 0x02,0x00,0x70,0x47,0x03,0x68,0x23,0xf4,0x80,0x63,0x03,0x60,0x00,0x20,0x70,0x47, + 0x03,0x68,0x43,0xf4,0x80,0x63,0x03,0x60,0x00,0x20,0x70,0x47,0x6f,0xf0,0x02,0x00, + 0x70,0x47,0x00,0x20,0x04,0x40,0x4d,0x4b,0x98,0x42,0x08,0xd0,0x03,0xf5,0x80,0x53, + 0x98,0x42,0x04,0xd0,0x03,0xf5,0x80,0x53,0x98,0x42,0x40,0xf0,0x8a,0x80,0x0c,0x29, + 0x00,0xf2,0x8a,0x80,0xdf,0xe8,0x01,0xf0,0x07,0x0d,0x29,0x49,0x69,0x0d,0x1b,0x29, + 0x39,0x49,0x59,0x69,0x77,0x00,0x03,0x68,0x23,0xf0,0x02,0x03,0x03,0x60,0x00,0x20, + 0x70,0x47,0x03,0x68,0x43,0xf0,0x02,0x03,0x03,0x60,0x03,0x68,0x23,0xf0,0x0c,0x03, + 0x03,0x60,0x03,0x68,0x23,0xf0,0x10,0x03,0x03,0x60,0x00,0x20,0x70,0x47,0x03,0x68, + 0x43,0xf0,0x02,0x03,0x03,0x60,0x03,0x68,0x23,0xf0,0x0c,0x03,0x03,0x60,0x03,0x68, + 0x43,0xf0,0x10,0x03,0x03,0x60,0x00,0x20,0x70,0x47,0x03,0x68,0x43,0xf0,0x02,0x03, + 0x03,0x60,0x03,0x68,0x23,0xf0,0x0c,0x03,0x43,0xf0,0x04,0x03,0x03,0x60,0x03,0x68, + 0x23,0xf0,0x10,0x03,0x03,0x60,0x00,0x20,0x70,0x47,0x03,0x68,0x43,0xf0,0x02,0x03, + 0x03,0x60,0x03,0x68,0x23,0xf0,0x0c,0x03,0x43,0xf0,0x04,0x03,0x03,0x60,0x03,0x68, + 0x43,0xf0,0x10,0x03,0x03,0x60,0x00,0x20,0x70,0x47,0x03,0x68,0x43,0xf0,0x02,0x03, + 0x03,0x60,0x03,0x68,0x23,0xf0,0x0c,0x03,0x43,0xf0,0x08,0x03,0x03,0x60,0x03,0x68, + 0x23,0xf0,0x10,0x03,0x03,0x60,0x00,0x20,0x70,0x47,0x03,0x68,0x43,0xf0,0x02,0x03, + 0x03,0x60,0x03,0x68,0x23,0xf0,0x0c,0x03,0x43,0xf0,0x08,0x03,0x03,0x60,0x03,0x68, + 0x43,0xf0,0x10,0x03,0x03,0x60,0x00,0x20,0x70,0x47,0x03,0x68,0x43,0xf0,0x02,0x03, + 0x03,0x60,0x03,0x68,0x43,0xf0,0x0c,0x03,0x03,0x60,0x03,0x68,0x23,0xf0,0x10,0x03, + 0x03,0x60,0x00,0x20,0x70,0x47,0x03,0x68,0x43,0xf0,0x02,0x03,0x03,0x60,0x03,0x68, + 0x43,0xf0,0x0c,0x03,0x03,0x60,0x03,0x68,0x43,0xf0,0x10,0x03,0x03,0x60,0x00,0x20, + 0x70,0x47,0x6f,0xf0,0x02,0x00,0x70,0x47,0x6f,0xf0,0x02,0x00,0x70,0x47,0x00,0x20, + 0x04,0x40,0x0b,0x4b,0x98,0x42,0x07,0xd0,0x03,0xf5,0x80,0x53,0x98,0x42,0x03,0xd0, + 0x03,0xf5,0x80,0x53,0x98,0x42,0x05,0xd1,0x83,0x68,0x13,0xf0,0x10,0x0f,0x04,0xd1, + 0xc0,0x69,0x70,0x47,0x6f,0xf0,0x02,0x00,0x70,0x47,0x6f,0xf0,0x0c,0x00,0x70,0x47, + 0x00,0xbf,0x00,0x20,0x04,0x40,0x0b,0x4b,0x98,0x42,0x07,0xd0,0x03,0xf5,0x80,0x53, + 0x98,0x42,0x03,0xd0,0x03,0xf5,0x80,0x53,0x98,0x42,0x06,0xd1,0x83,0x68,0x13,0xf0, + 0x80,0x0f,0x05,0xd1,0xc1,0x61,0x00,0x20,0x70,0x47,0x1d,0x71,0x6d,0xa1,0xb4,0xd2, + 0xe9,0xdd,0x99,0x1c,0xf2,0xce,0x10,0xe4,0x8f,0xba,0x01,0xe3,0x80,0x08,0xf7,0xe9, + 0x41,0xd8,0x9f,0x52,0xad,0x84,0x60,0x3b,0xda,0xc4,0x46,0xeb,0x57,0x80,0xe6,0x8b, + 0x57,0x9f,0xcc,0x36,0x90,0xa2,0x8f,0xef,0x58,0x54,0x0e,0x70,0xf2,0x42,0x54,0x26, + 0x56,0x11,0xce,0x96,0xff,0xa7,0x83,0x77,0xce,0x28,0x07,0x88,0x8a,0xad,0xe9,0x89, + 0x5b,0x84,0x4e,0x8b,0x33,0xf2,0x14,0x7b,0xc3,0x11,0x79,0xa1,0x91,0x3e,0x18,0x25, + 0x76,0x11,0x82,0x10,0x89,0x41,0xe0,0xe2,0x04,0x03,0x44,0xad,0xa5,0xb3,0x59,0x21, + 0xca,0x8d,0x64,0x01,0x51,0x43,0xaf,0x19,0xc4,0xe2,0xfd,0xff,0x07,0xa7,0xcb,0x16, + 0xa8,0x43,0xa0,0x87,0x4d,0x73,0xef,0x43,0xb7,0xed,0x45,0x24,0xc2,0xd4,0x5a,0x83, + 0x5a,0xe9,0x99,0xd9,0x02,0xe1,0xd5,0xdc,0x1e,0x45,0xcb,0x07,0xd6,0x3f,0x80,0xf1, + 0x48,0x4b,0x3a,0xf9,0x26,0xc3,0xe1,0x71,0xca,0xaa,0x1e,0x0b,0x30,0x0c,0x36,0xf0, + 0x1a,0xaa,0x2d,0x2c,0x17,0x96,0xbb,0x06,0xe2,0x07,0x27,0xd1,0x47,0xb3,0x40,0xc0, + 0x3a,0x33,0x7f,0x65,0x7f,0x50,0xa3,0xbb,0x03,0x72,0x7f,0x71,0x9c,0x42,0x67,0x32, + 0xa5,0xc1,0x1b,0xda,0x25,0xe7,0xd4,0x98,0x00,0xcf,0x2a,0x9a,0xb9,0x4d,0x9f,0x2e, + 0x50,0x5e,0x0e,0x54,0xe3,0xff,0x75,0x77,0x1d,0x08,0x71,0x0e,0x90,0x6a,0x69,0xcb, + 0xdb,0xee,0x39,0xab,0x5c,0xcf,0x62,0x81,0x34,0xe4,0x22,0xf6,0x47,0x56,0xfc,0xf5, + 0x64,0xf5,0x16,0xf8,0x39,0x6c,0x84,0xb9,0x9a,0x97,0x5e,0xa4,0xed,0x6a }; -static const unsigned char scp_0000013_ack[] = { 0xbe, 0xef, 0xed, 0x06, 0x00, 0x00, 0x94, 0x65 }; +static const unsigned char scp_0000013_ack[] = { 0xbe,0xef,0xed,0x06,0x00,0x00,0x94,0x65 }; -static const unsigned char scp_0000014_write_mem_response[] = { 0xbe, 0xef, 0xed, 0x05, 0x00, - 0x08, 0x95, 0xae, 0x59, 0x01, - 0x00, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x26, 0x67, 0xc8, 0x6e }; +static const unsigned char scp_0000014_write_mem_response[] = { 0xbe,0xef,0xed,0x05,0x00, + 0x08,0x95,0xae,0x59,0x01, + 0x00,0x04,0x00,0x00,0x00, + 0x00,0x26,0x67,0xc8,0x6e }; -static const unsigned char scp_0000015_ack[] = { 0xbe, 0xef, 0xed, 0x06, 0x00, 0x00, 0x95, 0xf1 }; +static const unsigned char scp_0000015_ack[] = { 0xbe,0xef,0xed,0x06,0x00,0x00,0x95,0xf1 }; static const unsigned char scp_0000016_write_mem[] = { - 0xbe, 0xef, 0xed, 0x05, 0x1f, 0xf2, 0x96, 0xd6, 0x59, 0x02, 0x1e, 0xee, 0x24, 0x02, 0x10, 0x00, - 0x1e, 0xe4, 0x00, 0x00, 0x1e, 0xe4, 0x6f, 0xf0, 0x02, 0x00, 0x70, 0x47, 0x6f, 0xf0, 0x0b, 0x00, - 0x70, 0x47, 0x00, 0x20, 0x04, 0x40, 0x80, 0x68, 0xc0, 0xf3, 0x05, 0x20, 0x70, 0x47, 0x80, 0x68, - 0xc0, 0xf3, 0x05, 0x40, 0xc0, 0xf1, 0x20, 0x00, 0x70, 0x47, 0x0e, 0x4b, 0x98, 0x42, 0x07, 0xd0, - 0x03, 0xf5, 0x80, 0x53, 0x98, 0x42, 0x03, 0xd0, 0x03, 0xf5, 0x80, 0x53, 0x98, 0x42, 0x0b, 0xd1, - 0x4b, 0x1e, 0x1f, 0x2b, 0x0b, 0xd8, 0x43, 0x68, 0x23, 0xf0, 0x3f, 0x03, 0x01, 0xf0, 0x3f, 0x01, - 0x19, 0x43, 0x41, 0x60, 0x00, 0x20, 0x70, 0x47, 0x6f, 0xf0, 0x02, 0x00, 0x70, 0x47, 0x6f, 0xf0, - 0x02, 0x00, 0x70, 0x47, 0x00, 0xbf, 0x00, 0x20, 0x04, 0x40, 0x0e, 0x4b, 0x98, 0x42, 0x07, 0xd0, - 0x03, 0xf5, 0x80, 0x53, 0x98, 0x42, 0x03, 0xd0, 0x03, 0xf5, 0x80, 0x53, 0x98, 0x42, 0x0c, 0xd1, - 0x4b, 0x1e, 0x1f, 0x2b, 0x0c, 0xd8, 0x09, 0x02, 0x43, 0x68, 0x23, 0xf4, 0x7c, 0x53, 0x01, 0xf4, - 0x7c, 0x51, 0x19, 0x43, 0x41, 0x60, 0x00, 0x20, 0x70, 0x47, 0x6f, 0xf0, 0x02, 0x00, 0x70, 0x47, - 0x6f, 0xf0, 0x02, 0x00, 0x70, 0x47, 0x00, 0x20, 0x04, 0x40, 0x10, 0xb5, 0x04, 0x46, 0x20, 0x46, - 0xff, 0xf7, 0x4f, 0xfd, 0x00, 0x28, 0xfa, 0xd0, 0x20, 0x46, 0xff, 0xf7, 0x42, 0xfd, 0x10, 0xbd, - 0x38, 0xb5, 0x04, 0x46, 0x0d, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x57, 0xfd, 0x00, 0x28, 0xfa, 0xd0, - 0x29, 0x46, 0x20, 0x46, 0xff, 0xf7, 0x39, 0xfd, 0x38, 0xbd, 0x50, 0xe8, 0x00, 0x3f, 0x3b, 0xb9, - 0x40, 0xe8, 0x00, 0x13, 0x00, 0x2b, 0xf8, 0xd1, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x20, 0x70, 0x47, - 0x6f, 0xf0, 0x05, 0x00, 0x70, 0x47, 0xbf, 0xf3, 0x5f, 0x8f, 0x00, 0x23, 0x03, 0x60, 0x70, 0x47, - 0x00, 0x00, 0x01, 0x4b, 0x18, 0x68, 0x70, 0x47, 0x00, 0xbf, 0x08, 0x00, 0x00, 0x20, 0x70, 0xb5, - 0x0d, 0x4e, 0x0d, 0x4d, 0x76, 0x1b, 0xb6, 0x10, 0x06, 0xd0, 0x00, 0x24, 0x55, 0xf8, 0x04, 0x3b, - 0x01, 0x34, 0x98, 0x47, 0xa6, 0x42, 0xf9, 0xd1, 0x09, 0x4e, 0x09, 0x4d, 0x76, 0x1b, 0x07, 0xf0, - 0xa0, 0xfb, 0xb6, 0x10, 0x06, 0xd0, 0x00, 0x24, 0x55, 0xf8, 0x04, 0x3b, 0x01, 0x34, 0x98, 0x47, - 0xa6, 0x42, 0xf9, 0xd1, 0x70, 0xbd, 0xb8, 0x09, 0x00, 0x20, 0xb8, 0x09, 0x00, 0x20, 0xc0, 0x09, - 0x00, 0x20, 0xb8, 0x09, 0x00, 0x20, 0x84, 0x46, 0x41, 0xea, 0x00, 0x03, 0x13, 0xf0, 0x03, 0x03, - 0x6d, 0xd1, 0x40, 0x3a, 0x41, 0xd3, 0x51, 0xf8, 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, - 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, - 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, - 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, - 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, - 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, - 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, - 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, - 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x40, 0x3a, 0xbd, 0xd2, 0x30, 0x32, 0x11, 0xd3, 0x51, 0xf8, - 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, - 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x51, 0xf8, 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x10, 0x3a, - 0xed, 0xd2, 0x0c, 0x32, 0x05, 0xd3, 0x51, 0xf8, 0x04, 0x3b, 0x40, 0xf8, 0x04, 0x3b, 0x04, 0x3a, - 0xf9, 0xd2, 0x04, 0x32, 0x08, 0xd0, 0xd2, 0x07, 0x1c, 0xbf, 0x11, 0xf8, 0x01, 0x3b, 0x00, 0xf8, - 0x01, 0x3b, 0x01, 0xd3, 0x0b, 0x88, 0x03, 0x80, 0x60, 0x46, 0x70, 0x47, 0x00, 0xbf, 0x08, 0x2a, - 0x13, 0xd3, 0x8b, 0x07, 0x8d, 0xd0, 0x10, 0xf0, 0x03, 0x03, 0x8a, 0xd0, 0xc3, 0xf1, 0x04, 0x03, - 0xd2, 0x1a, 0xdb, 0x07, 0x1c, 0xbf, 0x11, 0xf8, 0x01, 0x3b, 0x00, 0xf8, 0x01, 0x3b, 0x80, 0xd3, - 0x31, 0xf8, 0x02, 0x3b, 0x20, 0xf8, 0x02, 0x3b, 0x7b, 0xe7, 0x04, 0x3a, 0xd9, 0xd3, 0x01, 0x3a, - 0x11, 0xf8, 0x01, 0x3b, 0x00, 0xf8, 0x01, 0x3b, 0xf9, 0xd2, 0x0b, 0x78, 0x03, 0x70, 0x4b, 0x78, - 0x43, 0x70, 0x8b, 0x78, 0x83, 0x70, 0x60, 0x46, 0x70, 0x47, 0x83, 0x07, 0x30, 0xb5, 0x48, 0xd0, - 0x54, 0x1e, 0x00, 0x2a, 0x3f, 0xd0, 0xca, 0xb2, 0x03, 0x46, 0x01, 0xe0, 0x01, 0x3c, 0x3a, 0xd3, - 0x03, 0xf8, 0x01, 0x2b, 0x9d, 0x07, 0xf9, 0xd1, 0x03, 0x2c, 0x2d, 0xd9, 0xcd, 0xb2, 0x45, 0xea, - 0x05, 0x25, 0x0f, 0x2c, 0x45, 0xea, 0x05, 0x45, 0x36, 0xd9, 0xa4, 0xf1, 0x10, 0x02, 0x22, 0xf0, - 0x0f, 0x0c, 0x03, 0xf1, 0x20, 0x0e, 0xe6, 0x44, 0x4f, 0xea, 0x12, 0x1c, 0x03, 0xf1, 0x10, 0x02, - 0x42, 0xe9, 0x04, 0x55, 0x42, 0xe9, 0x02, 0x55, 0x10, 0x32, 0x72, 0x45, 0xf8, 0xd1, 0x0c, 0xf1, - 0x01, 0x02, 0x14, 0xf0, 0x0c, 0x0f, 0x03, 0xeb, 0x02, 0x12, 0x04, 0xf0, 0x0f, 0x0c, 0x13, 0xd0, - 0xac, 0xf1, 0x04, 0x03, 0x23, 0xf0, 0x03, 0x03, 0x04, 0x33, 0x13, 0x44, 0x42, 0xf8, 0x04, 0x5b, - 0x93, 0x42, 0xfb, 0xd1, 0x0c, 0xf0, 0x03, 0x04, 0x2c, 0xb1, 0xca, 0xb2, 0x1c, 0x44, 0x03, 0xf8, - 0x01, 0x2b, 0x9c, 0x42, 0xfb, 0xd1, 0x30, 0xbd, 0x64, 0x46, 0x13, 0x46, 0x00, 0x2c, 0xf4, 0xd1, - 0xf9, 0xe7, 0x03, 0x46, 0x14, 0x46, 0xbf, 0xe7, 0x1a, 0x46, 0xa4, 0x46, 0xe0, 0xe7, 0x0f, 0xb4, - 0x00, 0xb5, 0x07, 0x49, 0x83, 0xb0, 0x04, 0xab, 0x08, 0x68, 0x53, 0xf8, 0x04, 0x2b, 0x81, 0x68, - 0x01, 0x93, 0x00, 0xf0, 0xde, 0xf8, 0x03, 0xb0, 0x5d, 0xf8, 0x04, 0xeb, 0x04, 0xb0, 0x70, 0x47, - 0x00, 0xbf, 0x08, 0x00, 0x00, 0x20, 0x70, 0xb5, 0x05, 0x46, 0x88, 0xb0, 0x08, 0x46, 0x0c, 0x46, - 0x00, 0xf0, 0x5f, 0xf8, 0x22, 0x4e, 0xaa, 0x6b, 0x05, 0x90, 0x01, 0x21, 0x43, 0x18, 0xcd, 0xe9, - 0x06, 0x61, 0x04, 0xa8, 0x02, 0x21, 0x04, 0x94, 0x03, 0x93, 0xac, 0x68, 0x01, 0x90, 0x02, 0x91, - 0x22, 0xb3, 0x63, 0x6e, 0x13, 0xf0, 0x01, 0x0f, 0xb4, 0xf9, 0x0c, 0x30, 0x9a, 0xb2, 0x01, 0xd1, - 0x98, 0x05, 0x25, 0xd5, 0x91, 0x04, 0x06, 0xd4, 0x62, 0x6e, 0x43, 0xf4, 0x00, 0x53, 0x22, 0xf4, - 0x00, 0x52, 0xa3, 0x81, 0x62, 0x66, 0x28, 0x46, 0x01, 0xaa, 0x21, 0x46, 0x03, 0xf0, 0x21, 0xfa, - 0x63, 0x6e, 0x00, 0x28, 0x14, 0xbf, 0x4f, 0xf0, 0xff, 0x35, 0x0a, 0x25, 0xda, 0x07, 0x02, 0xd4, - 0xa3, 0x89, 0x9b, 0x05, 0x06, 0xd5, 0x28, 0x46, 0x08, 0xb0, 0x70, 0xbd, 0x28, 0x46, 0x03, 0xf0, - 0x12, 0xf8, 0xd6, 0xe7, 0xa0, 0x6d, 0x03, 0xf0, 0xb2, 0xfb, 0x28, 0x46, 0x08, 0xb0, 0x70, 0xbd, - 0xa0, 0x6d, 0x03, 0xf0, 0xaa, 0xfb, 0xb4, 0xf9, 0x0c, 0x30, 0x9a, 0xb2, 0xd2, 0xe7, 0x54, 0x93, - 0x00, 0x10, 0x02, 0x4b, 0x01, 0x46, 0x18, 0x68, 0xff, 0xf7, 0xad, 0xbf, 0x00, 0xbf, 0x08, 0x00, - 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x90, 0xf8, 0x00, 0xf0, 0x6d, 0xe9, 0x02, 0x45, 0x20, 0xf0, 0x07, 0x01, 0x6f, 0xf0, - 0x00, 0x0c, 0x10, 0xf0, 0x07, 0x04, 0x91, 0xf8, 0x20, 0xf0, 0x40, 0xf0, 0x49, 0x80, 0x4f, 0xf0, - 0x00, 0x04, 0x6f, 0xf0, 0x07, 0x00, 0xd1, 0xe9, 0x00, 0x23, 0x91, 0xf8, 0x40, 0xf0, 0x00, 0xf1, - 0x08, 0x00, 0x82, 0xfa, 0x4c, 0xf2, 0xa4, 0xfa, 0x8c, 0xf2, 0x83, 0xfa, 0x4c, 0xf3, 0xa2, 0xfa, - 0x8c, 0xf3, 0x4b, 0xbb, 0xd1, 0xe9, 0x02, 0x23, 0x82, 0xfa, 0x4c, 0xf2, 0x00, 0xf1, 0x08, 0x00, - 0xa4, 0xfa, 0x8c, 0xf2, 0x83, 0xfa, 0x4c, 0xf3, 0xa2, 0xfa, 0x8c, 0xf3, 0xe3, 0xb9, 0xd1, 0xe9, - 0x04, 0x23, 0x82, 0xfa, 0x4c, 0xf2, 0x00, 0xf1, 0x08, 0x00, 0xa4, 0xfa, 0x8c, 0xf2, 0x83, 0xfa, - 0x4c, 0xf3, 0xa2, 0xfa, 0x8c, 0xf3, 0x7b, 0xb9, 0xd1, 0xe9, 0x06, 0x23, 0x01, 0xf1, 0x20, 0x01, - 0x82, 0xfa, 0x4c, 0xf2, 0x00, 0xf1, 0x08, 0x00, 0xa4, 0xfa, 0x8c, 0xf2, 0x83, 0xfa, 0x4c, 0xf3, - 0xa2, 0xfa, 0x8c, 0xf3, 0x00, 0x2b, 0xc6, 0xd0, 0x00, 0x2a, 0x04, 0xbf, 0x04, 0x30, 0x1a, 0x46, - 0x12, 0xba, 0xb2, 0xfa, 0x82, 0xf2, 0xfd, 0xe8, 0x02, 0x45, 0x00, 0xeb, 0xd2, 0x00, 0x70, 0x47, - 0xd1, 0xe9, 0x00, 0x23, 0x04, 0xf0, 0x03, 0x05, 0xc4, 0xf1, 0x00, 0x00, 0x4f, 0xea, 0xc5, 0x05, - 0x14, 0xf0, 0x04, 0x0f, 0x91, 0xf8, 0x40, 0xf0, 0x0c, 0xfa, 0x05, 0xf5, 0x62, 0xea, 0x05, 0x02, - 0x1c, 0xbf, 0x63, 0xea, 0x05, 0x03, 0x62, 0x46, 0x4f, 0xf0, 0x00, 0x04, 0xa9, 0xe7, 0x00, 0x00, - 0x00, 0x00, 0x2d, 0xe9, 0xf0, 0x4f, 0x2d, 0xed, 0x0a, 0x8b, 0xd3, 0xb0, 0x1c, 0x46, 0x09, 0xee, - 0x10, 0x1a, 0x91, 0x46, 0x09, 0xee, 0x90, 0x0a, 0x05, 0x46, 0x03, 0xf0, 0x06, 0xfb, 0x03, 0x68, - 0x17, 0x93, 0x18, 0x46, 0x0d, 0x94, 0xff, 0xf7, 0x7c, 0xff, 0x16, 0x90, 0x1d, 0xb1, 0xab, 0x6b, - 0x00, 0x2b, 0x00, 0xf0, 0x48, 0x82, 0x19, 0xee, 0x10, 0x2a, 0x53, 0x6e, 0xdb, 0x07, 0x40, 0xf1, - 0x47, 0x81, 0xb2, 0xf9, 0x0c, 0x30, 0x9a, 0xb2, 0x96, 0x04, 0x09, 0xd4, 0x19, 0xee, 0x10, 0x1a, - 0x43, 0xf4, 0x00, 0x53, 0x8b, 0x81, 0x9a, 0xb2, 0x4b, 0x6e, 0x23, 0xf4, 0x00, 0x53, 0x4b, 0x66, - 0x15, 0x07, 0x40, 0xf1, 0xcc, 0x80, 0x19, 0xee, 0x10, 0x3a, 0x1b, 0x69, 0x00, 0x2b, 0x00, 0xf0, - 0xc6, 0x80, 0x02, 0xf0, 0x1a, 0x03, 0x0a, 0x2b, 0x00, 0xf0, 0xd2, 0x80, 0x4d, 0x46, 0x9f, 0xed, - 0x9c, 0x7b, 0x2b, 0x78, 0x00, 0x24, 0x29, 0xaa, 0xcd, 0xe9, 0x27, 0x44, 0xcd, 0xe9, 0x19, 0x44, - 0xcd, 0xe9, 0x1b, 0x44, 0x8d, 0xed, 0x14, 0x7b, 0x19, 0xee, 0x90, 0x9a, 0x12, 0x94, 0x26, 0x92, - 0x90, 0x46, 0x18, 0x94, 0x0a, 0x94, 0x00, 0x2b, 0x00, 0xf0, 0xb0, 0x81, 0xab, 0x46, 0x04, 0xe0, - 0x1b, 0xf8, 0x01, 0x3f, 0x00, 0x2b, 0x00, 0xf0, 0xcd, 0x80, 0x25, 0x2b, 0xf8, 0xd1, 0xbb, 0xeb, - 0x05, 0x06, 0x40, 0xf0, 0xcb, 0x80, 0x9b, 0xf8, 0x00, 0x30, 0x00, 0x2b, 0x00, 0xf0, 0x9e, 0x81, - 0x00, 0x23, 0x4f, 0xf0, 0xff, 0x32, 0x9b, 0xf8, 0x01, 0x70, 0x8d, 0xf8, 0x7b, 0x30, 0x09, 0x93, - 0x0b, 0xf1, 0x01, 0x0b, 0x08, 0x92, 0x9a, 0x46, 0x2b, 0x24, 0x20, 0x21, 0x0b, 0xf1, 0x01, 0x0b, - 0xa7, 0xf1, 0x20, 0x03, 0x5a, 0x2b, 0x00, 0xf2, 0x00, 0x81, 0xdf, 0xe8, 0x13, 0xf0, 0x0a, 0x03, - 0xfe, 0x00, 0xfe, 0x00, 0x05, 0x03, 0xfe, 0x00, 0xfe, 0x00, 0xfe, 0x00, 0x6a, 0x00, 0xfe, 0x00, - 0xfe, 0x00, 0x76, 0x02, 0x9e, 0x02, 0xfe, 0x00, 0x81, 0x02, 0xa8, 0x02, 0xfe, 0x00, 0xa3, 0x02, - 0x5b, 0x00, 0x5b, 0x00, 0x5b, 0x00, 0x5b, 0x00, 0x5b, 0x00, 0x5b, 0x00, 0x5b, 0x00, 0x5b, 0x00, - 0x5b, 0x00, 0xfe, 0x00, 0xfe, 0x00, 0xfe, 0x00, 0xfe, 0x00, 0xfe, 0x00, 0xfe, 0x00, 0xfe, 0x00, - 0x8e, 0x01, 0xfe, 0x00, 0x16, 0x02, 0xed, 0x01, 0x8e, 0x01, 0x8e, 0x01, 0x8e, 0x01, 0xfe, 0x00, - 0xfe, 0x00, 0xfe, 0x00, 0xfe, 0x00, 0x00, 0x03, 0xfe, 0x00, 0xfe, 0x00, 0x45, 0x02, 0xfe, 0x00, - 0xfe, 0x00, 0xfe, 0x00, 0x20, 0x02, 0xfe, 0x00, 0xc2, 0x02, 0xfe, 0x00, 0xfe, 0x00, 0x9a, 0x07, - 0xfe, 0x00, 0xfe, 0x00, 0xfe, 0x00, 0xfe, 0x00, 0xfe, 0x00, 0xfe, 0x00, 0xfe, 0x00, 0xfe, 0x00, - 0x8e, 0x01, 0xfe, 0x00, 0x16, 0x02, 0xef, 0x01, 0x8e, 0x01, 0x8e, 0x01, 0x8e, 0x01, 0xe6, 0x02, - 0xef, 0x01, 0xe8, 0x01, 0xfe, 0x00, 0xf3, 0x02, 0xfe, 0x00, 0x86, 0x02, 0x47, 0x02, 0xd4, 0x02, - 0xe8, 0x01, 0xfe, 0x00, 0x20, 0x02, 0x7d, 0x00, 0x76, 0x07, 0xfe, 0x00, 0xfe, 0x00, 0x7a, 0x07, - 0xfe, 0x00, 0x7d, 0x00, 0xa7, 0xf1, 0x30, 0x03, 0x00, 0x22, 0x1b, 0xf8, 0x01, 0x7b, 0x02, 0xeb, - 0x82, 0x02, 0x03, 0xeb, 0x42, 0x02, 0xa7, 0xf1, 0x30, 0x03, 0x09, 0x2b, 0xf5, 0xd9, 0x09, 0x92, - 0x8e, 0xe7, 0x48, 0x46, 0x03, 0xf0, 0x29, 0xfa, 0x43, 0x68, 0x1b, 0x93, 0x18, 0x46, 0xff, 0xf7, - 0xa0, 0xfe, 0x1c, 0x90, 0x06, 0x46, 0x48, 0x46, 0x03, 0xf0, 0x1f, 0xfa, 0x83, 0x68, 0x19, 0x93, - 0x20, 0x21, 0x00, 0x2e, 0x40, 0xf0, 0xea, 0x86, 0x9b, 0xf8, 0x00, 0x70, 0x76, 0xe7, 0x19, 0xee, - 0x10, 0x1a, 0x19, 0xee, 0x90, 0x0a, 0x19, 0xee, 0x10, 0x5a, 0x01, 0xf0, 0x00, 0xfd, 0x00, 0x28, - 0x41, 0xf0, 0x24, 0x83, 0xaa, 0x89, 0x02, 0xf0, 0x1a, 0x03, 0x0a, 0x2b, 0x7f, 0xf4, 0x2e, 0xaf, - 0x19, 0xee, 0x10, 0x1a, 0xb1, 0xf9, 0x0e, 0x30, 0x00, 0x2b, 0xff, 0xf6, 0x27, 0xaf, 0x4b, 0x6e, - 0xd9, 0x07, 0x02, 0xd4, 0x92, 0x05, 0x41, 0xf1, 0x56, 0x81, 0x19, 0xee, 0x10, 0x1a, 0x19, 0xee, - 0x90, 0x0a, 0x23, 0x46, 0x4a, 0x46, 0x53, 0xb0, 0xbd, 0xec, 0x0a, 0x8b, 0xbd, 0xe8, 0xf0, 0x4f, - 0x01, 0xf0, 0x9d, 0xbc, 0xbb, 0xeb, 0x05, 0x06, 0x00, 0xf0, 0xd8, 0x80, 0x28, 0x9b, 0x33, 0x44, - 0x28, 0x93, 0x27, 0x9b, 0x01, 0x33, 0x07, 0x2b, 0xc8, 0xe9, 0x00, 0x56, 0x27, 0x93, 0x05, 0xdc, - 0x08, 0xf1, 0x08, 0x08, 0x0a, 0x9b, 0x33, 0x44, 0x0a, 0x93, 0x24, 0xe7, 0x19, 0xee, 0x10, 0x1a, - 0x26, 0xaa, 0x48, 0x46, 0x04, 0xf0, 0x71, 0xfc, 0x90, 0xb9, 0x0d, 0xf1, 0xa4, 0x08, 0xf1, 0xe7, - 0x19, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x04, 0xf0, 0x67, 0xfc, 0x00, 0x28, 0x00, 0xf0, - 0xa6, 0x80, 0x0c, 0x9b, 0x23, 0xb1, 0x19, 0xee, 0x90, 0x0a, 0x19, 0x46, 0x02, 0xf0, 0x1b, 0xff, - 0x19, 0xee, 0x10, 0x2a, 0x53, 0x6e, 0xd8, 0x07, 0x40, 0xf1, 0xfa, 0x80, 0x93, 0x89, 0x5a, 0x06, - 0x01, 0xf1, 0xd5, 0x82, 0x0a, 0x98, 0x53, 0xb0, 0xbd, 0xec, 0x0a, 0x8b, 0xbd, 0xe8, 0xf0, 0x8f, - 0xb2, 0xf9, 0x0c, 0x30, 0x9f, 0x05, 0x9a, 0xb2, 0x3f, 0xf5, 0xb6, 0xae, 0x19, 0xee, 0x10, 0x5a, - 0xa8, 0x6d, 0x03, 0xf0, 0xaa, 0xf9, 0xb5, 0xf9, 0x0c, 0x30, 0x9a, 0xb2, 0xac, 0xe6, 0xaf, 0xf3, - 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0x00, 0xf0, 0x86, 0x80, - 0x00, 0x23, 0x8d, 0xf8, 0xe4, 0x70, 0x8d, 0xf8, 0x7b, 0x30, 0x01, 0x22, 0xcd, 0xe9, 0x0b, 0x23, - 0x07, 0x92, 0x08, 0x93, 0x10, 0x93, 0x13, 0x93, 0x11, 0x93, 0x39, 0xad, 0x1a, 0xf0, 0x02, 0x02, - 0x0e, 0x92, 0x02, 0xd0, 0x07, 0x9a, 0x02, 0x32, 0x07, 0x92, 0x1a, 0xf0, 0x84, 0x02, 0x0f, 0x92, - 0x05, 0xd1, 0x09, 0x9a, 0x07, 0x99, 0x56, 0x1a, 0x00, 0x2e, 0x00, 0xf3, 0x68, 0x83, 0x28, 0x9c, - 0x8b, 0xb1, 0x27, 0x9b, 0x0d, 0xf1, 0x7b, 0x02, 0x01, 0x33, 0x01, 0x34, 0xc8, 0xf8, 0x00, 0x20, - 0x07, 0x2b, 0x4f, 0xf0, 0x01, 0x02, 0x28, 0x94, 0x27, 0x93, 0xc8, 0xf8, 0x04, 0x20, 0x00, 0xf3, - 0x9f, 0x83, 0x08, 0xf1, 0x08, 0x08, 0x0e, 0x9b, 0x83, 0xb1, 0x27, 0x9b, 0x1f, 0xaa, 0x01, 0x33, - 0x02, 0x34, 0xc8, 0xf8, 0x00, 0x20, 0x07, 0x2b, 0x4f, 0xf0, 0x02, 0x02, 0x28, 0x94, 0x27, 0x93, - 0xc8, 0xf8, 0x04, 0x20, 0x00, 0xf3, 0x99, 0x83, 0x08, 0xf1, 0x08, 0x08, 0x0f, 0x9b, 0x80, 0x2b, - 0x00, 0xf0, 0x6a, 0x82, 0x08, 0x9b, 0x0b, 0x9a, 0x9e, 0x1a, 0x00, 0x2e, 0x00, 0xf3, 0xab, 0x82, - 0x1a, 0xf4, 0x80, 0x7f, 0x40, 0xf0, 0x06, 0x82, 0x0b, 0x9b, 0xc8, 0xf8, 0x04, 0x30, 0x1c, 0x44, - 0x27, 0x9b, 0xc8, 0xf8, 0x00, 0x50, 0x01, 0x33, 0x07, 0x2b, 0x28, 0x94, 0x27, 0x93, 0x00, 0xf3, - 0x19, 0x83, 0x08, 0xf1, 0x08, 0x08, 0x1a, 0xf0, 0x04, 0x0f, 0x05, 0xd0, 0x09, 0x9b, 0x07, 0x9a, - 0x9d, 0x1a, 0x00, 0x2d, 0x00, 0xf3, 0x85, 0x83, 0xdd, 0xe9, 0x09, 0x23, 0x07, 0x99, 0x8a, 0x42, - 0xac, 0xbf, 0x9b, 0x18, 0x5b, 0x18, 0x0a, 0x93, 0x00, 0x2c, 0x7f, 0xf4, 0x51, 0xaf, 0x00, 0x23, - 0x27, 0x93, 0x0c, 0x9b, 0x1b, 0xb1, 0x0c, 0x99, 0x48, 0x46, 0x02, 0xf0, 0x74, 0xfe, 0x0d, 0xf1, - 0xa4, 0x08, 0x5d, 0x46, 0x2b, 0x78, 0x00, 0x2b, 0x7f, 0xf4, 0x50, 0xae, 0x28, 0x9b, 0x00, 0x2b, - 0x41, 0xf0, 0x18, 0x82, 0x00, 0x23, 0x27, 0x93, 0x4a, 0xe7, 0x0d, 0x9b, 0x07, 0x33, 0x23, 0xf0, - 0x07, 0x03, 0xb3, 0xec, 0x02, 0x7b, 0x8d, 0xed, 0x14, 0x7b, 0xdd, 0xe9, 0x14, 0x12, 0x0d, 0x93, - 0x22, 0xf0, 0x00, 0x43, 0x0a, 0xee, 0x10, 0x1a, 0x0a, 0xee, 0x90, 0x3a, 0x4f, 0xf0, 0xff, 0x32, - 0xb0, 0xee, 0x4a, 0x8a, 0xf0, 0xee, 0x6a, 0x8a, 0xb7, 0x4b, 0x51, 0xec, 0x18, 0x0b, 0x06, 0xf0, - 0x4c, 0xfa, 0x00, 0x28, 0x40, 0xf0, 0xe8, 0x84, 0xb3, 0x4b, 0x51, 0xec, 0x18, 0x0b, 0x4f, 0xf0, - 0xff, 0x32, 0x06, 0xf0, 0x24, 0xfa, 0x00, 0x28, 0x40, 0xf0, 0xde, 0x84, 0xdd, 0xe9, 0x14, 0x01, - 0x00, 0x22, 0x00, 0x23, 0x06, 0xf0, 0x11, 0xfa, 0x00, 0x28, 0x40, 0xf0, 0x67, 0x87, 0x9d, 0xf8, - 0x7b, 0x30, 0xa9, 0x4d, 0xaa, 0x4a, 0x2a, 0xf0, 0x80, 0x0a, 0x03, 0x21, 0x47, 0x2f, 0xc8, 0xbf, - 0x15, 0x46, 0x00, 0x22, 0x0c, 0x92, 0x07, 0x91, 0x0b, 0x91, 0x08, 0x92, 0x10, 0x92, 0x13, 0x92, - 0x11, 0x92, 0x00, 0x2b, 0x3f, 0xf4, 0x3a, 0xaf, 0x07, 0x9a, 0x01, 0x32, 0x07, 0x92, 0x35, 0xe7, - 0x93, 0x89, 0x99, 0x05, 0x3f, 0xf5, 0x03, 0xaf, 0x19, 0xee, 0x10, 0x4a, 0x90, 0x6d, 0x03, 0xf0, - 0xbe, 0xf8, 0xa3, 0x89, 0xfb, 0xe6, 0x28, 0x46, 0x02, 0xf0, 0x15, 0xfd, 0xb3, 0xe5, 0x9b, 0xf8, - 0x00, 0x70, 0x4a, 0xf0, 0x20, 0x0a, 0x09, 0xe6, 0x4a, 0xf0, 0x10, 0x0a, 0x1a, 0xf0, 0x20, 0x0f, - 0x0d, 0x9b, 0x00, 0xf0, 0x40, 0x84, 0x07, 0x33, 0x23, 0xf0, 0x07, 0x03, 0x1a, 0x46, 0x5b, 0x68, - 0x52, 0xf8, 0x08, 0x4b, 0x0d, 0x92, 0x1e, 0x46, 0x00, 0x2b, 0xc0, 0xf2, 0x43, 0x84, 0x08, 0x9b, - 0x01, 0x33, 0x00, 0xf0, 0xbc, 0x82, 0x2a, 0xf0, 0x80, 0x03, 0x07, 0x93, 0x54, 0xea, 0x06, 0x03, - 0x40, 0xf0, 0xb7, 0x82, 0x08, 0x9b, 0x00, 0x2b, 0x40, 0xf0, 0xb8, 0x82, 0xdd, 0xf8, 0x1c, 0xa0, - 0x00, 0x23, 0x08, 0x93, 0x0b, 0x93, 0x52, 0xad, 0x1f, 0xe1, 0x0d, 0x9a, 0x00, 0x23, 0x52, 0xf8, - 0x04, 0x1b, 0x8d, 0xf8, 0x7b, 0x30, 0x8d, 0xf8, 0xe4, 0x10, 0x0d, 0x92, 0xe5, 0xe6, 0x0d, 0x9c, - 0x54, 0xf8, 0x04, 0x5b, 0x00, 0x26, 0x8d, 0xf8, 0x7b, 0x60, 0x00, 0x2d, 0x00, 0xf0, 0x90, 0x85, - 0x08, 0x9b, 0x5a, 0x1c, 0x00, 0xf0, 0x51, 0x86, 0x1a, 0x46, 0x31, 0x46, 0x28, 0x46, 0x03, 0xf0, - 0x90, 0xfb, 0x0c, 0x90, 0x00, 0x28, 0x01, 0xf0, 0x2c, 0x81, 0x0c, 0x9b, 0x08, 0x96, 0x59, 0x1b, - 0x0b, 0x91, 0x21, 0xea, 0xe1, 0x71, 0x9d, 0xf8, 0x7b, 0x30, 0x0d, 0x94, 0x07, 0x91, 0x0c, 0x96, - 0x10, 0x96, 0x13, 0x96, 0x11, 0x96, 0x8c, 0xe7, 0x4a, 0xf0, 0x10, 0x0a, 0x1a, 0xf0, 0x20, 0x06, - 0x00, 0xf0, 0xc9, 0x83, 0x0d, 0x9b, 0x07, 0x33, 0x23, 0xf0, 0x07, 0x03, 0x5e, 0x68, 0x53, 0xf8, - 0x08, 0x4b, 0x0d, 0x93, 0x2a, 0xf4, 0x80, 0x63, 0x07, 0x93, 0x00, 0x23, 0x00, 0x22, 0x8d, 0xf8, - 0x7b, 0x20, 0x08, 0x9a, 0x55, 0x1c, 0x00, 0xf0, 0xc0, 0x80, 0x07, 0x99, 0x21, 0xf0, 0x80, 0x0a, - 0x54, 0xea, 0x06, 0x01, 0x40, 0xf0, 0xb7, 0x80, 0x00, 0x2a, 0x40, 0xf0, 0x07, 0x86, 0x00, 0x2b, - 0xa6, 0xd1, 0x07, 0x9b, 0x13, 0xf0, 0x01, 0x03, 0x0b, 0x93, 0x00, 0xf0, 0x14, 0x84, 0x30, 0x23, - 0x8d, 0xf8, 0x47, 0x31, 0x0d, 0xf2, 0x47, 0x15, 0xbf, 0xe0, 0x0d, 0x9b, 0x53, 0xf8, 0x04, 0x2b, - 0x09, 0x92, 0x00, 0x2a, 0x80, 0xf2, 0xd5, 0x83, 0x09, 0x9a, 0x0d, 0x93, 0x52, 0x42, 0x09, 0x92, - 0x9b, 0xf8, 0x00, 0x70, 0x4a, 0xf0, 0x04, 0x0a, 0x70, 0xe5, 0x1a, 0xf0, 0x20, 0x0f, 0x40, 0xf0, - 0xd2, 0x84, 0x1a, 0xf0, 0x10, 0x0f, 0x40, 0xf0, 0xe7, 0x85, 0x1a, 0xf0, 0x40, 0x0f, 0x40, 0xf0, - 0xa9, 0x86, 0x1a, 0xf4, 0x00, 0x7f, 0x00, 0xf0, 0xdf, 0x85, 0x0d, 0x9b, 0x0a, 0x99, 0x53, 0xf8, - 0x04, 0x2b, 0x0d, 0x93, 0x11, 0x70, 0x5d, 0x46, 0xe4, 0xe6, 0x9b, 0xf8, 0x00, 0x70, 0x8d, 0xf8, - 0x7b, 0x40, 0x53, 0xe5, 0x9b, 0xf8, 0x00, 0x70, 0x4a, 0xf0, 0x80, 0x0a, 0x4e, 0xe5, 0x5a, 0x46, - 0x12, 0xf8, 0x01, 0x7b, 0x2a, 0x2f, 0x01, 0xf0, 0x6d, 0x82, 0xa7, 0xf1, 0x30, 0x03, 0x09, 0x2b, - 0x93, 0x46, 0x98, 0xbf, 0x00, 0x22, 0x01, 0xf2, 0xe9, 0x80, 0x1b, 0xf8, 0x01, 0x7b, 0x02, 0xeb, - 0x82, 0x02, 0x03, 0xeb, 0x42, 0x02, 0xa7, 0xf1, 0x30, 0x03, 0x09, 0x2b, 0xf5, 0xd9, 0x08, 0x92, - 0x36, 0xe5, 0x4a, 0xf0, 0x10, 0x03, 0x07, 0x93, 0x07, 0x9b, 0x13, 0xf0, 0x20, 0x06, 0x00, 0xf0, - 0x59, 0x83, 0x0d, 0x9b, 0x07, 0x33, 0x23, 0xf0, 0x07, 0x03, 0x5e, 0x68, 0x53, 0xf8, 0x08, 0x4b, - 0x0d, 0x93, 0x01, 0x23, 0x82, 0xe7, 0x0d, 0x9b, 0x53, 0xf8, 0x04, 0x4b, 0x0d, 0x93, 0x30, 0x23, - 0x4a, 0xf0, 0x02, 0x02, 0x78, 0x27, 0x8d, 0xf8, 0x7c, 0x30, 0x1d, 0x4b, 0x18, 0x93, 0x07, 0x92, - 0x8d, 0xf8, 0x7d, 0x70, 0x00, 0x26, 0x02, 0x23, 0x70, 0xe7, 0x9b, 0xf8, 0x00, 0x70, 0x68, 0x2f, - 0x03, 0xbf, 0x9b, 0xf8, 0x01, 0x70, 0x4a, 0xf4, 0x00, 0x7a, 0x0b, 0xf1, 0x01, 0x0b, 0x4a, 0xf0, - 0x40, 0x0a, 0x03, 0xe5, 0x9b, 0xf8, 0x00, 0x70, 0x6c, 0x2f, 0x03, 0xbf, 0x9b, 0xf8, 0x01, 0x70, - 0x4a, 0xf0, 0x20, 0x0a, 0x0b, 0xf1, 0x01, 0x0b, 0x4a, 0xf0, 0x10, 0x0a, 0xf6, 0xe4, 0x9b, 0xf8, - 0x00, 0x70, 0x4a, 0xf0, 0x08, 0x0a, 0xf1, 0xe4, 0x9b, 0xf8, 0x00, 0x70, 0x4a, 0xf0, 0x01, 0x0a, - 0xec, 0xe4, 0x9d, 0xf8, 0x7b, 0x30, 0x00, 0x2b, 0x7f, 0xf4, 0x6e, 0xad, 0x9b, 0xf8, 0x00, 0x70, - 0x8d, 0xf8, 0x7b, 0x10, 0xe2, 0xe4, 0xff, 0xff, 0xef, 0x7f, 0x58, 0x93, 0x00, 0x10, 0x5c, 0x93, - 0x00, 0x10, 0x68, 0x93, 0x00, 0x10, 0xcd, 0xf8, 0x1c, 0xa0, 0x01, 0x2b, 0x00, 0xf0, 0xa1, 0x81, - 0x02, 0x2b, 0x52, 0xad, 0x20, 0xd1, 0x18, 0x9a, 0x04, 0xf0, 0x0f, 0x03, 0x24, 0x09, 0xd3, 0x5c, - 0x05, 0xf8, 0x01, 0x3d, 0x44, 0xea, 0x06, 0x74, 0x36, 0x09, 0x54, 0xea, 0x06, 0x03, 0xf3, 0xd1, - 0x52, 0xab, 0x5b, 0x1b, 0xdd, 0xf8, 0x1c, 0xa0, 0x0b, 0x93, 0x08, 0x99, 0x0b, 0x98, 0x9d, 0xf8, - 0x7b, 0x30, 0x81, 0x42, 0x4f, 0xf0, 0x00, 0x02, 0xb8, 0xbf, 0x01, 0x46, 0x0c, 0x92, 0x07, 0x91, - 0x10, 0x92, 0x13, 0x92, 0x11, 0x92, 0x8c, 0xe6, 0x04, 0xf0, 0x07, 0x03, 0xe4, 0x08, 0x44, 0xea, - 0x46, 0x74, 0xf6, 0x08, 0x30, 0x33, 0x54, 0xea, 0x06, 0x01, 0x2a, 0x46, 0x05, 0xf8, 0x01, 0x3d, - 0xf2, 0xd1, 0x07, 0x99, 0xcc, 0x07, 0x00, 0xf1, 0x75, 0x82, 0x52, 0xab, 0x5b, 0x1b, 0x8a, 0x46, - 0x0b, 0x93, 0xda, 0xe7, 0x65, 0x2f, 0x40, 0xf3, 0xd7, 0x80, 0xdd, 0xe9, 0x14, 0x01, 0x00, 0x22, - 0x00, 0x23, 0x06, 0xf0, 0x60, 0xf8, 0x00, 0x28, 0x00, 0xf0, 0xc6, 0x81, 0x27, 0x9b, 0xc1, 0x4a, - 0xc8, 0xf8, 0x00, 0x20, 0x01, 0x33, 0x01, 0x34, 0x01, 0x22, 0x07, 0x2b, 0x28, 0x94, 0x27, 0x93, - 0xc8, 0xf8, 0x04, 0x20, 0x00, 0xf3, 0xde, 0x84, 0x08, 0xf1, 0x08, 0x08, 0x20, 0x9b, 0x12, 0x9a, - 0x93, 0x42, 0x80, 0xf2, 0xd1, 0x82, 0x16, 0x9b, 0x17, 0x9a, 0x1c, 0x44, 0xc8, 0xe9, 0x00, 0x23, - 0x27, 0x9b, 0x28, 0x94, 0x01, 0x33, 0x07, 0x2b, 0x27, 0x93, 0x00, 0xf3, 0x23, 0x84, 0x08, 0xf1, - 0x08, 0x08, 0x12, 0x9b, 0x5d, 0x1e, 0x00, 0x2d, 0x7f, 0xf7, 0xd5, 0xad, 0x10, 0x2d, 0x27, 0x9b, - 0x41, 0xf3, 0x67, 0x81, 0xad, 0x4f, 0x0e, 0x97, 0x22, 0x46, 0x10, 0x26, 0x19, 0xee, 0x10, 0x4a, - 0x05, 0xe0, 0x08, 0xf1, 0x08, 0x08, 0x10, 0x3d, 0x10, 0x2d, 0x40, 0xf3, 0xc1, 0x84, 0x01, 0x33, - 0x10, 0x32, 0x07, 0x2b, 0xc8, 0xe9, 0x00, 0x76, 0xcd, 0xe9, 0x27, 0x32, 0xf1, 0xdd, 0x26, 0xaa, - 0x21, 0x46, 0x48, 0x46, 0x04, 0xf0, 0x89, 0xf9, 0x00, 0x28, 0x7f, 0xf4, 0x22, 0xad, 0xdd, 0xe9, - 0x27, 0x32, 0x0d, 0xf1, 0xa4, 0x08, 0xe6, 0xe7, 0x09, 0x9b, 0x07, 0x9a, 0x9e, 0x1a, 0x00, 0x2e, - 0x7f, 0xf7, 0x90, 0xad, 0x10, 0x2e, 0x27, 0x9b, 0x41, 0xf3, 0x3c, 0x80, 0x97, 0x49, 0x0f, 0x95, - 0x22, 0x46, 0x19, 0xee, 0x10, 0x5a, 0x0e, 0x91, 0x0c, 0x46, 0x04, 0xe0, 0x10, 0x3e, 0x10, 0x2e, - 0x08, 0xf1, 0x08, 0x08, 0x19, 0xdd, 0x01, 0x33, 0x10, 0x32, 0x10, 0x21, 0x07, 0x2b, 0xcd, 0xe9, - 0x27, 0x32, 0xc8, 0xf8, 0x00, 0x40, 0xc8, 0xf8, 0x04, 0x10, 0xef, 0xdd, 0x26, 0xaa, 0x29, 0x46, - 0x48, 0x46, 0x0d, 0xf1, 0xa4, 0x08, 0x04, 0xf0, 0x58, 0xf9, 0x00, 0x28, 0x7f, 0xf4, 0xf1, 0xac, - 0x10, 0x3e, 0x10, 0x2e, 0xdd, 0xe9, 0x27, 0x32, 0xe5, 0xdc, 0x0f, 0x9d, 0x14, 0x46, 0x01, 0x33, - 0x0e, 0x9a, 0xc8, 0xf8, 0x00, 0x20, 0x34, 0x44, 0x07, 0x2b, 0xcd, 0xe9, 0x27, 0x34, 0xc8, 0xf8, - 0x04, 0x60, 0x00, 0xf3, 0xa9, 0x83, 0x08, 0x9b, 0x0b, 0x9a, 0x9e, 0x1a, 0x00, 0x2e, 0x08, 0xf1, - 0x08, 0x08, 0x7f, 0xf7, 0x55, 0xad, 0x10, 0x2e, 0x27, 0x9b, 0x40, 0xf3, 0x0f, 0x85, 0x76, 0x48, - 0x0e, 0x90, 0x42, 0x46, 0x21, 0x46, 0x19, 0xee, 0x10, 0x8a, 0x04, 0x46, 0x04, 0xe0, 0x10, 0x3e, - 0x10, 0x2e, 0x02, 0xf1, 0x08, 0x02, 0x16, 0xdd, 0x01, 0x33, 0x10, 0x31, 0x10, 0x20, 0x07, 0x2b, - 0xcd, 0xe9, 0x27, 0x31, 0x14, 0x60, 0x50, 0x60, 0xf1, 0xdd, 0x26, 0xaa, 0x41, 0x46, 0x48, 0x46, - 0x04, 0xf0, 0x1b, 0xf9, 0x00, 0x28, 0x7f, 0xf4, 0xb4, 0xac, 0x10, 0x3e, 0x10, 0x2e, 0xdd, 0xe9, - 0x27, 0x31, 0x29, 0xaa, 0xe8, 0xdc, 0x90, 0x46, 0x0c, 0x46, 0x01, 0x33, 0x0e, 0x9a, 0xc8, 0xf8, - 0x00, 0x20, 0x34, 0x44, 0x07, 0x2b, 0xcd, 0xe9, 0x27, 0x34, 0xc8, 0xf8, 0x04, 0x60, 0x00, 0xf3, - 0xd4, 0x81, 0x08, 0xf1, 0x08, 0x08, 0x1b, 0xe5, 0x12, 0x9b, 0x01, 0x2b, 0x40, 0xf3, 0x73, 0x81, - 0x27, 0x9e, 0xc8, 0xf8, 0x00, 0x50, 0x01, 0x36, 0x01, 0x34, 0x01, 0x23, 0x07, 0x2e, 0x28, 0x94, - 0x27, 0x96, 0xc8, 0xf8, 0x04, 0x30, 0x00, 0xf3, 0x96, 0x83, 0x08, 0xf1, 0x08, 0x08, 0x16, 0x9b, - 0x17, 0x9a, 0x01, 0x36, 0x1c, 0x44, 0x07, 0x2e, 0xc8, 0xe9, 0x00, 0x23, 0xcd, 0xe9, 0x27, 0x64, - 0x00, 0xf3, 0x97, 0x83, 0x08, 0xf1, 0x08, 0x08, 0xdd, 0xe9, 0x14, 0x01, 0x00, 0x22, 0x00, 0x23, - 0x05, 0xf0, 0x69, 0xff, 0x00, 0x28, 0x40, 0xf0, 0x7b, 0x81, 0x12, 0x9b, 0x01, 0x36, 0x01, 0x3b, - 0x01, 0x35, 0x1c, 0x44, 0x07, 0x2e, 0xc8, 0xf8, 0x00, 0x50, 0x27, 0x96, 0xc8, 0xf8, 0x04, 0x30, - 0x28, 0x94, 0x00, 0xf3, 0x51, 0x81, 0x08, 0xf1, 0x08, 0x08, 0x1a, 0x9b, 0xc8, 0xf8, 0x04, 0x30, - 0x01, 0x36, 0x1c, 0x44, 0x07, 0x2e, 0x22, 0xab, 0xcd, 0xe9, 0x27, 0x64, 0xc8, 0xf8, 0x00, 0x30, - 0x7f, 0xf7, 0xe7, 0xac, 0x19, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x04, 0xf0, 0xb5, 0xf8, - 0x00, 0x28, 0x7f, 0xf4, 0x4e, 0xac, 0x28, 0x9c, 0x0d, 0xf1, 0xa4, 0x08, 0xdb, 0xe4, 0x10, 0x2e, - 0xdd, 0xe9, 0x27, 0x32, 0x22, 0xdd, 0x1d, 0x95, 0x10, 0x24, 0x19, 0xee, 0x10, 0x5a, 0x04, 0xe0, - 0x10, 0x3e, 0x10, 0x2e, 0x08, 0xf1, 0x08, 0x08, 0x17, 0xdd, 0x01, 0x33, 0x2c, 0x49, 0x10, 0x32, - 0x07, 0x2b, 0xc8, 0xe9, 0x00, 0x14, 0xcd, 0xe9, 0x27, 0x32, 0xf1, 0xdd, 0x26, 0xaa, 0x29, 0x46, - 0x48, 0x46, 0x0d, 0xf1, 0xa4, 0x08, 0x04, 0xf0, 0x90, 0xf8, 0x00, 0x28, 0x7f, 0xf4, 0x29, 0xac, - 0x10, 0x3e, 0x10, 0x2e, 0xdd, 0xe9, 0x27, 0x32, 0xe7, 0xdc, 0x1d, 0x9d, 0xc8, 0xf8, 0x04, 0x60, - 0x01, 0x33, 0xb4, 0x18, 0x07, 0x2b, 0x1d, 0x4a, 0xc8, 0xf8, 0x00, 0x20, 0xcd, 0xe9, 0x27, 0x34, - 0x00, 0xf3, 0x7d, 0x83, 0x9d, 0xf8, 0x7b, 0x30, 0x08, 0xf1, 0x08, 0x08, 0x60, 0xe4, 0xcd, 0xf8, - 0x1c, 0xa0, 0x0a, 0x2c, 0x76, 0xf1, 0x00, 0x03, 0x80, 0xf0, 0x31, 0x83, 0x30, 0x34, 0x01, 0x23, - 0xdd, 0xf8, 0x1c, 0xa0, 0x8d, 0xf8, 0x47, 0x41, 0x0b, 0x93, 0x0d, 0xf2, 0x47, 0x15, 0x64, 0xe6, - 0x19, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x04, 0xf0, 0x5f, 0xf8, 0x00, 0x28, 0x7f, 0xf4, - 0xf8, 0xab, 0x28, 0x9c, 0x0d, 0xf1, 0xa4, 0x08, 0x55, 0xe4, 0x19, 0xee, 0x10, 0x1a, 0x26, 0xaa, - 0x48, 0x46, 0x04, 0xf0, 0x52, 0xf8, 0x00, 0x28, 0x7f, 0xf4, 0xeb, 0xab, 0x28, 0x9c, 0x0d, 0xf1, - 0xa4, 0x08, 0x5b, 0xe4, 0x00, 0xbf, 0x98, 0x93, 0x00, 0x10, 0xac, 0x93, 0x00, 0x10, 0x9c, 0x93, - 0x00, 0x10, 0x10, 0x2d, 0x27, 0x9b, 0x20, 0xdd, 0x19, 0xee, 0x10, 0x7a, 0x10, 0x26, 0x04, 0xe0, - 0x10, 0x3d, 0x10, 0x2d, 0x08, 0xf1, 0x08, 0x08, 0x17, 0xdd, 0x01, 0x33, 0xac, 0x4a, 0x10, 0x34, - 0x07, 0x2b, 0xc8, 0xe9, 0x00, 0x26, 0xcd, 0xe9, 0x27, 0x34, 0xf1, 0xdd, 0x26, 0xaa, 0x39, 0x46, - 0x48, 0x46, 0x0d, 0xf1, 0xa4, 0x08, 0x04, 0xf0, 0x28, 0xf8, 0x00, 0x28, 0x7f, 0xf4, 0xc1, 0xab, - 0x10, 0x3d, 0x10, 0x2d, 0xdd, 0xe9, 0x27, 0x34, 0xe7, 0xdc, 0x01, 0x33, 0xa0, 0x4a, 0xc8, 0xf8, - 0x04, 0x50, 0x2c, 0x44, 0x07, 0x2b, 0xcd, 0xe9, 0x27, 0x34, 0xc8, 0xf8, 0x00, 0x20, 0x7f, 0xf7, - 0x4b, 0xac, 0x19, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x04, 0xf0, 0x0e, 0xf8, 0x00, 0x28, - 0x7f, 0xf4, 0xa7, 0xab, 0x28, 0x9c, 0x3f, 0xe4, 0x20, 0x9a, 0x00, 0x2a, 0x40, 0xf3, 0x2b, 0x81, - 0xdd, 0xe9, 0x11, 0x73, 0x9f, 0x42, 0xa8, 0xbf, 0x1f, 0x46, 0x00, 0x2f, 0x0b, 0xdd, 0x27, 0x9b, - 0x01, 0x33, 0x3c, 0x44, 0x07, 0x2b, 0xc8, 0xe9, 0x00, 0x57, 0x28, 0x94, 0x27, 0x93, 0x00, 0xf3, - 0xd1, 0x85, 0x08, 0xf1, 0x08, 0x08, 0x11, 0x9e, 0x00, 0x2f, 0xa8, 0xbf, 0xf6, 0x1b, 0x00, 0x2e, - 0x00, 0xf3, 0x44, 0x83, 0x11, 0x9b, 0x1a, 0xf4, 0x80, 0x6f, 0x2b, 0x44, 0x0b, 0x93, 0x40, 0xf0, - 0xdf, 0x84, 0x20, 0x9b, 0x12, 0x9a, 0x93, 0x42, 0x03, 0xdb, 0x1a, 0xf0, 0x01, 0x0f, 0x00, 0xf0, - 0xd2, 0x83, 0x16, 0x9a, 0x17, 0x99, 0x14, 0x44, 0xc8, 0xe9, 0x00, 0x12, 0x27, 0x9a, 0x28, 0x94, - 0x01, 0x32, 0x07, 0x2a, 0x27, 0x92, 0x00, 0xf3, 0xbb, 0x85, 0x08, 0xf1, 0x08, 0x08, 0x12, 0x9a, - 0x0b, 0x99, 0xae, 0x18, 0x76, 0x1a, 0xd5, 0x1a, 0xae, 0x42, 0xa8, 0xbf, 0x2e, 0x46, 0x00, 0x2e, - 0x0d, 0xdd, 0x27, 0x9b, 0xc8, 0xf8, 0x00, 0x10, 0x01, 0x33, 0x34, 0x44, 0x07, 0x2b, 0xc8, 0xf8, - 0x04, 0x60, 0x28, 0x94, 0x27, 0x93, 0x00, 0xf3, 0x06, 0x86, 0x08, 0xf1, 0x08, 0x08, 0x00, 0x2e, - 0xa8, 0xbf, 0xad, 0x1b, 0x00, 0x2d, 0x7f, 0xf7, 0xde, 0xab, 0x10, 0x2d, 0x27, 0x9b, 0x40, 0xf3, - 0x70, 0x87, 0x67, 0x4f, 0x0e, 0x97, 0x22, 0x46, 0x10, 0x26, 0x19, 0xee, 0x10, 0x4a, 0x05, 0xe0, - 0x08, 0xf1, 0x08, 0x08, 0x10, 0x3d, 0x10, 0x2d, 0x40, 0xf3, 0xca, 0x82, 0x01, 0x33, 0x10, 0x32, - 0x07, 0x2b, 0xc8, 0xe9, 0x00, 0x76, 0xcd, 0xe9, 0x27, 0x32, 0xf1, 0xdd, 0x26, 0xaa, 0x21, 0x46, - 0x48, 0x46, 0x03, 0xf0, 0x92, 0xff, 0x00, 0x28, 0x7f, 0xf4, 0x2b, 0xab, 0xdd, 0xe9, 0x27, 0x32, - 0x0d, 0xf1, 0xa4, 0x08, 0xe6, 0xe7, 0x1a, 0xf0, 0x01, 0x0f, 0x7f, 0xf4, 0x89, 0xae, 0x27, 0x9e, - 0xc8, 0xf8, 0x00, 0x50, 0x01, 0x36, 0x01, 0x34, 0x01, 0x23, 0x07, 0x2e, 0x28, 0x94, 0x27, 0x96, - 0xc8, 0xf8, 0x04, 0x30, 0x7f, 0xf7, 0xaf, 0xae, 0x19, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, - 0x03, 0xf0, 0x73, 0xff, 0x00, 0x28, 0x7f, 0xf4, 0x0c, 0xab, 0xdd, 0xe9, 0x27, 0x64, 0x0d, 0xf1, - 0xa4, 0x08, 0xa2, 0xe6, 0x30, 0x2b, 0x3f, 0xf4, 0x63, 0xad, 0x30, 0x23, 0x02, 0x3a, 0x05, 0xf8, - 0x01, 0x3c, 0x52, 0xab, 0x9b, 0x1a, 0xdd, 0xf8, 0x1c, 0xa0, 0x0b, 0x93, 0x15, 0x46, 0x5c, 0xe5, - 0x12, 0x9b, 0x5d, 0x1e, 0x00, 0x2d, 0x7f, 0xf7, 0x90, 0xae, 0x10, 0x2d, 0x40, 0xf3, 0x1f, 0x87, - 0x3c, 0x4a, 0xcd, 0xf8, 0x20, 0xa0, 0x23, 0x46, 0x19, 0xee, 0x10, 0xaa, 0x0e, 0x92, 0x10, 0x27, - 0x14, 0x46, 0x05, 0xe0, 0x08, 0xf1, 0x08, 0x08, 0x10, 0x3d, 0x10, 0x2d, 0x40, 0xf3, 0xe3, 0x82, - 0x01, 0x36, 0x10, 0x33, 0x07, 0x2e, 0xc8, 0xe9, 0x00, 0x47, 0xcd, 0xe9, 0x27, 0x63, 0xf1, 0xdd, - 0x26, 0xaa, 0x51, 0x46, 0x48, 0x46, 0x03, 0xf0, 0x38, 0xff, 0x00, 0x28, 0x7f, 0xf4, 0xd1, 0xaa, - 0xdd, 0xe9, 0x27, 0x63, 0x0d, 0xf1, 0xa4, 0x08, 0xe6, 0xe7, 0x19, 0xee, 0x10, 0x1a, 0x26, 0xaa, - 0x48, 0x46, 0x03, 0xf0, 0x2a, 0xff, 0x00, 0x28, 0x7f, 0xf4, 0xc3, 0xaa, 0x28, 0x9c, 0x0d, 0xf1, - 0xa4, 0x08, 0xff, 0xf7, 0x3d, 0xbb, 0x1a, 0xf0, 0x10, 0x03, 0x40, 0xf0, 0x3e, 0x81, 0x1a, 0xf0, - 0x40, 0x02, 0x00, 0xf0, 0xc8, 0x82, 0x0d, 0x9a, 0x52, 0xf8, 0x04, 0x4b, 0x0d, 0x92, 0x1e, 0x46, - 0xa4, 0xb2, 0x2f, 0xe4, 0x07, 0x9b, 0x13, 0xf0, 0x10, 0x03, 0x66, 0xd1, 0x07, 0x9a, 0x12, 0xf0, - 0x40, 0x02, 0x00, 0xf0, 0xc6, 0x82, 0x0d, 0x9a, 0x52, 0xf8, 0x04, 0x4b, 0x0d, 0x92, 0x1e, 0x46, - 0xa4, 0xb2, 0x01, 0x23, 0x22, 0xe4, 0x53, 0xf8, 0x04, 0x4b, 0x0d, 0x93, 0x1a, 0xf0, 0x10, 0x0f, - 0x4f, 0xd1, 0x1a, 0xf0, 0x40, 0x0f, 0x48, 0xd0, 0x44, 0xf3, 0xc0, 0x36, 0x33, 0x46, 0x24, 0xb2, - 0xff, 0xf7, 0xba, 0xbb, 0x2d, 0x23, 0x64, 0x42, 0x8d, 0xf8, 0x7b, 0x30, 0x66, 0xeb, 0x46, 0x06, - 0xcd, 0xf8, 0x1c, 0xa0, 0x01, 0x23, 0x0c, 0xe4, 0x1a, 0xf0, 0x01, 0x0f, 0x3f, 0xf4, 0x13, 0xab, - 0x29, 0xe5, 0x9b, 0xf8, 0x00, 0x70, 0x0d, 0x93, 0xff, 0xf7, 0xa0, 0xb9, 0x00, 0xbf, 0x9c, 0x93, - 0x00, 0x10, 0xac, 0x93, 0x00, 0x10, 0x27, 0x9b, 0xb6, 0x49, 0xc8, 0xf8, 0x00, 0x10, 0x01, 0x33, - 0x01, 0x34, 0x01, 0x21, 0x07, 0x2b, 0x28, 0x94, 0x27, 0x93, 0xc8, 0xf8, 0x04, 0x10, 0x00, 0xf3, - 0x80, 0x84, 0x08, 0xf1, 0x08, 0x08, 0x00, 0x2a, 0x40, 0xf0, 0x46, 0x82, 0x12, 0x9a, 0x0a, 0xf0, - 0x01, 0x03, 0x13, 0x43, 0x3f, 0xf4, 0xef, 0xaa, 0x16, 0x9b, 0x17, 0x9a, 0x1c, 0x44, 0xc8, 0xe9, - 0x00, 0x23, 0x27, 0x9b, 0x28, 0x94, 0x01, 0x33, 0x07, 0x2b, 0x27, 0x93, 0x00, 0xf3, 0x64, 0x83, - 0x08, 0xf1, 0x08, 0x08, 0x41, 0xe2, 0x52, 0xad, 0xaf, 0xe4, 0x1a, 0xf4, 0x00, 0x7f, 0x40, 0xf0, - 0xab, 0x82, 0xe6, 0x17, 0x33, 0x46, 0xff, 0xf7, 0x6f, 0xbb, 0x0d, 0x9b, 0x53, 0xf8, 0x04, 0x4b, - 0x0d, 0x93, 0x01, 0x23, 0xff, 0xf7, 0xc2, 0xbb, 0xdd, 0xe9, 0x14, 0x01, 0x02, 0x46, 0x0b, 0x46, - 0x05, 0xf0, 0x5b, 0xfd, 0x00, 0x28, 0x40, 0xf0, 0x2c, 0x86, 0x61, 0x2f, 0x00, 0xf0, 0x7d, 0x85, - 0x41, 0x2f, 0x00, 0xf0, 0xa0, 0x82, 0x08, 0x9b, 0x01, 0x33, 0x27, 0xf0, 0x20, 0x03, 0x07, 0x93, - 0x00, 0xf0, 0xc2, 0x85, 0x47, 0x2b, 0x00, 0xf0, 0xa9, 0x85, 0xdd, 0xe9, 0x14, 0x01, 0x4a, 0xf4, - 0x80, 0x72, 0x00, 0x29, 0x0b, 0x92, 0x4f, 0xf0, 0x00, 0x03, 0xc0, 0xf2, 0x41, 0x84, 0x41, 0xec, - 0x1b, 0x0b, 0x0e, 0x93, 0x0c, 0x93, 0x07, 0x9b, 0x46, 0x2b, 0x00, 0xf0, 0x70, 0x84, 0x45, 0x2b, - 0x00, 0xf0, 0x22, 0x85, 0x08, 0x9b, 0x01, 0x93, 0x24, 0xab, 0x04, 0x93, 0x21, 0xab, 0x03, 0x93, - 0x20, 0xab, 0x02, 0x93, 0x02, 0x23, 0x00, 0x93, 0x48, 0x46, 0x53, 0xec, 0x1b, 0x2b, 0x00, 0xf0, - 0xc4, 0xff, 0x07, 0x9b, 0x47, 0x2b, 0x05, 0x46, 0x40, 0xf0, 0x5b, 0x86, 0x1a, 0xf0, 0x01, 0x0f, - 0x56, 0x46, 0xdd, 0xf8, 0x2c, 0xa0, 0x40, 0xf0, 0xdf, 0x84, 0x24, 0x9b, 0x5b, 0x1b, 0x12, 0x93, - 0x07, 0x9b, 0x47, 0x2b, 0x00, 0xf0, 0x16, 0x83, 0x07, 0x9b, 0x46, 0x2b, 0x00, 0xf0, 0x85, 0x84, - 0x20, 0x9b, 0x11, 0x93, 0x11, 0x9b, 0x07, 0x9a, 0x01, 0x3b, 0x41, 0x2a, 0x20, 0x93, 0x00, 0xf0, - 0xe6, 0x85, 0xfa, 0xb2, 0x00, 0x21, 0x00, 0x2b, 0xb8, 0xbf, 0x11, 0x9b, 0x8d, 0xf8, 0x88, 0x20, - 0xba, 0xbf, 0xc3, 0xf1, 0x01, 0x03, 0x2d, 0x22, 0x2b, 0x22, 0x09, 0x2b, 0x8d, 0xf8, 0x89, 0x20, - 0x40, 0xf3, 0x6e, 0x85, 0x0d, 0xf1, 0x97, 0x04, 0xdf, 0xf8, 0x98, 0xc1, 0x22, 0x46, 0x10, 0x46, - 0x8c, 0xfb, 0x03, 0x21, 0xda, 0x17, 0xc2, 0xeb, 0xa1, 0x02, 0x02, 0xeb, 0x82, 0x01, 0xa3, 0xeb, - 0x41, 0x01, 0x30, 0x31, 0x00, 0xf8, 0x01, 0x1c, 0x19, 0x46, 0x63, 0x29, 0x13, 0x46, 0x00, 0xf1, - 0xff, 0x32, 0xec, 0xdc, 0x30, 0x33, 0xd9, 0xb2, 0x83, 0x1e, 0x9c, 0x42, 0x02, 0xf8, 0x01, 0x1c, - 0x40, 0xf2, 0x0b, 0x86, 0x13, 0x46, 0x0d, 0xf1, 0x8a, 0x02, 0x01, 0xe0, 0x13, 0xf8, 0x01, 0x1b, - 0x02, 0xf8, 0x01, 0x1b, 0x9c, 0x42, 0xf9, 0xd1, 0x0d, 0xf1, 0x99, 0x03, 0x0d, 0xf1, 0x8a, 0x02, - 0x1b, 0x1a, 0x13, 0x44, 0x22, 0xaa, 0x9b, 0x1a, 0x1a, 0x93, 0x12, 0x9b, 0x1a, 0x9a, 0x01, 0x2b, - 0x1a, 0x44, 0x0b, 0x92, 0x40, 0xf3, 0xaf, 0x85, 0x0b, 0x9b, 0x16, 0x9a, 0x13, 0x44, 0x0b, 0x93, - 0x0b, 0x9a, 0x00, 0x23, 0x26, 0xf4, 0x80, 0x66, 0x22, 0xea, 0xe2, 0x72, 0x46, 0xf4, 0x80, 0x7a, - 0x10, 0x93, 0x07, 0x92, 0x13, 0x93, 0x11, 0x93, 0x0e, 0x9b, 0x00, 0x2b, 0x40, 0xf0, 0xd9, 0x82, - 0x08, 0x93, 0x9d, 0xf8, 0x7b, 0x30, 0xff, 0xf7, 0x7c, 0xba, 0x0d, 0x9b, 0x53, 0xf8, 0x04, 0x4b, - 0x0d, 0x93, 0xff, 0xf7, 0xf7, 0xba, 0x0d, 0x9b, 0x0a, 0x98, 0x53, 0xf8, 0x04, 0x1b, 0x0d, 0x93, - 0xc2, 0x17, 0xc1, 0xe9, 0x00, 0x02, 0x5d, 0x46, 0xff, 0xf7, 0x1c, 0xba, 0x19, 0x9b, 0x00, 0x2b, - 0x3f, 0xf4, 0x12, 0xa9, 0x19, 0x9b, 0x1b, 0x78, 0x00, 0x2b, 0x3f, 0xf4, 0x0d, 0xa9, 0x9b, 0xf8, - 0x00, 0x70, 0x4a, 0xf4, 0x80, 0x6a, 0xff, 0xf7, 0x81, 0xb8, 0xcd, 0xf8, 0x1c, 0xa0, 0xff, 0xf7, - 0x4b, 0xbb, 0x28, 0x4b, 0x18, 0x93, 0x1a, 0xf0, 0x20, 0x06, 0x54, 0xd0, 0x0d, 0x9b, 0x07, 0x33, - 0x23, 0xf0, 0x07, 0x03, 0x5e, 0x68, 0x53, 0xf8, 0x08, 0x4b, 0x0d, 0x93, 0x1a, 0xf0, 0x01, 0x0f, - 0x09, 0xd0, 0x54, 0xea, 0x06, 0x03, 0x06, 0xd0, 0x30, 0x23, 0x8d, 0xf8, 0x7d, 0x70, 0x4a, 0xf0, - 0x02, 0x0a, 0x8d, 0xf8, 0x7c, 0x30, 0x2a, 0xf4, 0x80, 0x63, 0x07, 0x93, 0x02, 0x23, 0xff, 0xf7, - 0xbd, 0xba, 0x19, 0x4b, 0x18, 0x93, 0xde, 0xe7, 0x19, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, - 0x03, 0xf0, 0x93, 0xfd, 0x00, 0x28, 0x7f, 0xf4, 0x2c, 0xa9, 0x28, 0x9c, 0x0d, 0xf1, 0xa4, 0x08, - 0xff, 0xf7, 0xa0, 0xb9, 0x19, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x03, 0xf0, 0x85, 0xfd, - 0x00, 0x28, 0x7f, 0xf4, 0x1e, 0xa9, 0x28, 0x9c, 0x0d, 0xf1, 0xa4, 0x08, 0xff, 0xf7, 0xd1, 0xbb, - 0x08, 0x9a, 0x0c, 0x95, 0x06, 0x2a, 0x29, 0x46, 0x28, 0xbf, 0x06, 0x22, 0x08, 0x95, 0x2b, 0x46, - 0x07, 0x92, 0x06, 0x4d, 0x0d, 0x94, 0x0b, 0x92, 0x10, 0x91, 0x13, 0x91, 0x11, 0x91, 0xff, 0xf7, - 0x08, 0xba, 0x98, 0x93, 0x00, 0x10, 0x68, 0x93, 0x00, 0x10, 0x7c, 0x93, 0x00, 0x10, 0x90, 0x93, - 0x00, 0x10, 0x67, 0x66, 0x66, 0x66, 0x1a, 0xf0, 0x10, 0x03, 0x70, 0xd0, 0x0d, 0x9b, 0x53, 0xf8, - 0x04, 0x4b, 0x0d, 0x93, 0xaa, 0xe7, 0x19, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x03, 0xf0, - 0x54, 0xfd, 0x00, 0x28, 0x7f, 0xf4, 0xed, 0xa8, 0xdd, 0xe9, 0x27, 0x64, 0x0d, 0xf1, 0xa4, 0x08, - 0x5d, 0xe4, 0x19, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x03, 0xf0, 0x46, 0xfd, 0x00, 0x28, - 0x7f, 0xf4, 0xdf, 0xa8, 0xdd, 0xe9, 0x27, 0x64, 0x0d, 0xf1, 0xa4, 0x08, 0x5c, 0xe4, 0x07, 0x9b, - 0x00, 0x22, 0x03, 0xf4, 0x80, 0x63, 0xcd, 0xe9, 0x0b, 0x78, 0x08, 0xee, 0x10, 0x9a, 0x0d, 0xf5, - 0xa4, 0x7a, 0xdd, 0xf8, 0x64, 0x90, 0x17, 0x46, 0x98, 0x46, 0x0c, 0xe0, 0x00, 0x23, 0x20, 0x46, - 0x31, 0x46, 0x0a, 0x22, 0x05, 0xf0, 0x27, 0xfc, 0x0a, 0x2c, 0x76, 0xf1, 0x00, 0x03, 0x1c, 0xd3, - 0x04, 0x46, 0x0e, 0x46, 0xaa, 0x46, 0x20, 0x46, 0x0a, 0x22, 0x00, 0x23, 0x31, 0x46, 0x05, 0xf0, - 0x1a, 0xfc, 0x30, 0x32, 0x0a, 0xf1, 0xff, 0x35, 0x01, 0x37, 0x0a, 0xf8, 0x01, 0x2c, 0xb8, 0xf1, - 0x00, 0x0f, 0xe3, 0xd0, 0x99, 0xf8, 0x00, 0x30, 0x9f, 0x42, 0xdf, 0xd1, 0xff, 0x2f, 0xdd, 0xd0, - 0x0a, 0x2c, 0x76, 0xf1, 0x00, 0x03, 0x80, 0xf0, 0xe5, 0x80, 0xcd, 0xf8, 0x64, 0x90, 0x12, 0x97, - 0xdd, 0xf8, 0x30, 0x80, 0x0b, 0x9f, 0x18, 0xee, 0x10, 0x9a, 0xff, 0xf7, 0xf9, 0xba, 0x19, 0xee, - 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x03, 0xf0, 0xf8, 0xfc, 0x00, 0x28, 0x7f, 0xf4, 0x91, 0xa8, - 0x9d, 0xf8, 0x7b, 0x30, 0x28, 0x9c, 0x0d, 0xf1, 0xa4, 0x08, 0xff, 0xf7, 0xd9, 0xb8, 0x1a, 0xf0, - 0x40, 0x02, 0x00, 0xf0, 0xb6, 0x80, 0x0d, 0x9a, 0x52, 0xf8, 0x04, 0x4b, 0x0d, 0x92, 0x1e, 0x46, - 0xa4, 0xb2, 0x33, 0xe7, 0x19, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x03, 0xf0, 0xdd, 0xfc, - 0x00, 0x28, 0x7f, 0xf4, 0x76, 0xa8, 0x28, 0x9c, 0x0d, 0xf1, 0xa4, 0x08, 0xff, 0xf7, 0x16, 0xbb, - 0x14, 0x46, 0x01, 0x33, 0x0e, 0x9a, 0xc8, 0xf8, 0x00, 0x20, 0x2c, 0x44, 0x07, 0x2b, 0xc8, 0xf8, - 0x04, 0x50, 0xcd, 0xe9, 0x27, 0x34, 0x7f, 0xf7, 0xf4, 0xa8, 0x0b, 0xe4, 0x01, 0x2b, 0xcd, 0xf8, - 0x1c, 0xa0, 0x7f, 0xf4, 0xad, 0xaa, 0x51, 0xe4, 0x0d, 0x9b, 0x0a, 0x99, 0x53, 0xf8, 0x04, 0x2b, - 0x5d, 0x46, 0x11, 0x60, 0x0d, 0x93, 0xff, 0xf7, 0x05, 0xb9, 0x28, 0x46, 0x08, 0x96, 0x0d, 0x94, - 0xfe, 0xf7, 0x8f, 0xfe, 0x20, 0xea, 0xe0, 0x71, 0x9d, 0xf8, 0x7b, 0x30, 0x0b, 0x90, 0x07, 0x91, - 0x0c, 0x96, 0x10, 0x96, 0x13, 0x96, 0x11, 0x96, 0xff, 0xf7, 0x43, 0xb9, 0x10, 0x2e, 0x27, 0x9b, - 0x40, 0xf3, 0x94, 0x84, 0xba, 0x48, 0x0e, 0x90, 0x42, 0x46, 0x21, 0x46, 0x19, 0xee, 0x10, 0x8a, - 0x10, 0x27, 0x04, 0x46, 0x04, 0xe0, 0x08, 0x32, 0x10, 0x3e, 0x10, 0x2e, 0x40, 0xf3, 0x37, 0x82, - 0x01, 0x33, 0x10, 0x31, 0x07, 0x2b, 0xc2, 0xe9, 0x00, 0x47, 0xcd, 0xe9, 0x27, 0x31, 0xf2, 0xdd, - 0x26, 0xaa, 0x41, 0x46, 0x48, 0x46, 0x03, 0xf0, 0x88, 0xfc, 0x00, 0x28, 0x7f, 0xf4, 0x21, 0xa8, - 0xdd, 0xe9, 0x27, 0x31, 0x29, 0xaa, 0xe7, 0xe7, 0x16, 0x9b, 0x17, 0x99, 0x1c, 0x44, 0xc8, 0xe9, - 0x00, 0x13, 0x27, 0x9b, 0x28, 0x94, 0x01, 0x33, 0x07, 0x2b, 0x27, 0x93, 0x00, 0xf3, 0x24, 0x81, - 0x08, 0xf1, 0x08, 0x08, 0x00, 0x2a, 0xc0, 0xf2, 0xfa, 0x82, 0x12, 0x9a, 0xc8, 0xf8, 0x00, 0x50, - 0x01, 0x33, 0x14, 0x44, 0x07, 0x2b, 0xcd, 0xe9, 0x27, 0x34, 0xc8, 0xf8, 0x04, 0x20, 0x7f, 0xf7, - 0x90, 0xa8, 0xff, 0xf7, 0xa7, 0xbb, 0xdd, 0xf8, 0x20, 0xa0, 0x1c, 0x46, 0x01, 0x36, 0x0e, 0x9b, - 0xc8, 0xf8, 0x00, 0x30, 0x2c, 0x44, 0x07, 0x2e, 0xcd, 0xe9, 0x27, 0x64, 0xc8, 0xf8, 0x04, 0x50, - 0x7f, 0xf7, 0x89, 0xab, 0xd8, 0xe4, 0x0d, 0x9b, 0x1a, 0xf4, 0x00, 0x76, 0x14, 0xbf, 0x53, 0xf8, - 0x04, 0x4b, 0x53, 0xf8, 0x04, 0x4b, 0x0d, 0x93, 0x1c, 0xbf, 0x16, 0x46, 0xe4, 0xb2, 0xff, 0xf7, - 0x61, 0xb9, 0x07, 0x9b, 0x13, 0xf4, 0x00, 0x76, 0x0d, 0x9b, 0x14, 0xbf, 0x53, 0xf8, 0x04, 0x4b, - 0x53, 0xf8, 0x04, 0x4b, 0x0d, 0x93, 0x1c, 0xbf, 0x16, 0x46, 0xe4, 0xb2, 0x01, 0x23, 0xff, 0xf7, - 0x55, 0xb9, 0x0d, 0x9b, 0x1a, 0xf4, 0x00, 0x76, 0x14, 0xbf, 0x53, 0xf8, 0x04, 0x4b, 0x53, 0xf8, - 0x04, 0x4b, 0x0d, 0x93, 0x1c, 0xbf, 0x16, 0x46, 0xe4, 0xb2, 0x77, 0xe6, 0x7c, 0x4a, 0x0e, 0x92, - 0xff, 0xf7, 0x13, 0xbb, 0x1c, 0x9b, 0x1b, 0x99, 0xed, 0x1a, 0x1a, 0x46, 0x28, 0x46, 0x03, 0xf0, - 0xae, 0xfb, 0x99, 0xf8, 0x01, 0x30, 0x0b, 0xb1, 0x09, 0xf1, 0x01, 0x09, 0x20, 0x46, 0x31, 0x46, - 0x0a, 0x22, 0x00, 0x23, 0x00, 0x27, 0x05, 0xf0, 0x0e, 0xfb, 0xe9, 0xe6, 0x2d, 0x23, 0x8d, 0xf8, - 0x7b, 0x30, 0xff, 0xf7, 0x96, 0xb8, 0x12, 0x9a, 0x0b, 0x99, 0xae, 0x18, 0x76, 0x1a, 0xd5, 0x1a, - 0xae, 0x42, 0xa8, 0xbf, 0x2e, 0x46, 0x4a, 0xe4, 0x44, 0xf3, 0xc0, 0x16, 0x33, 0x46, 0x64, 0xb2, - 0xff, 0xf7, 0xc2, 0xb8, 0x0d, 0x9b, 0x0a, 0x99, 0x53, 0xf8, 0x04, 0x2b, 0x0d, 0x93, 0x11, 0x80, - 0x5d, 0x46, 0xff, 0xf7, 0x3f, 0xb8, 0x30, 0x23, 0x8d, 0xf8, 0x7c, 0x30, 0x58, 0x23, 0x8d, 0xf8, - 0x7d, 0x30, 0x08, 0x9b, 0x63, 0x2b, 0x4a, 0xf0, 0x02, 0x04, 0x00, 0xf3, 0xd3, 0x82, 0x00, 0x23, - 0x0c, 0x93, 0x39, 0xad, 0xdd, 0xe9, 0x14, 0x12, 0x4a, 0xf4, 0x81, 0x73, 0x0b, 0x93, 0x00, 0x2a, - 0x27, 0xf0, 0x20, 0x03, 0xa2, 0x46, 0x07, 0x93, 0xc0, 0xf2, 0x9b, 0x81, 0x00, 0x23, 0x42, 0xec, - 0x1b, 0x1b, 0x0e, 0x93, 0x61, 0x2f, 0x00, 0xf0, 0x4c, 0x83, 0x41, 0x2f, 0x7f, 0xf4, 0x53, 0xad, - 0x20, 0xaa, 0x51, 0xec, 0x1b, 0x0b, 0x03, 0xf0, 0xca, 0xfa, 0x00, 0x22, 0x4f, 0xf0, 0x7f, 0x53, - 0x04, 0xf0, 0xe9, 0xff, 0x02, 0x46, 0x0b, 0x46, 0x43, 0xec, 0x18, 0x2b, 0x00, 0x22, 0x00, 0x23, - 0x05, 0xf0, 0x49, 0xfa, 0x08, 0xb1, 0x01, 0x23, 0x20, 0x93, 0x45, 0x4b, 0x0f, 0x93, 0x08, 0x9b, - 0x1d, 0x95, 0xcd, 0xe9, 0x10, 0x7b, 0xcd, 0xe9, 0x12, 0xa8, 0x0c, 0xee, 0x10, 0x9a, 0xdd, 0xf8, - 0x3c, 0xb0, 0x59, 0xec, 0x18, 0x8b, 0x5e, 0x1e, 0x2c, 0x46, 0x05, 0xe0, 0x00, 0x22, 0x00, 0x23, - 0x01, 0x3e, 0x05, 0xf0, 0x30, 0xfa, 0xe0, 0xb9, 0x3b, 0x4b, 0x00, 0x22, 0x40, 0x46, 0x49, 0x46, - 0x04, 0xf0, 0xc1, 0xff, 0x89, 0x46, 0x80, 0x46, 0x05, 0xf0, 0x6d, 0xfa, 0x05, 0x46, 0x04, 0xf0, - 0x50, 0xff, 0x0b, 0x46, 0x02, 0x46, 0x49, 0x46, 0x40, 0x46, 0x04, 0xf0, 0xfc, 0xfd, 0x1b, 0xf8, - 0x05, 0x30, 0xa2, 0x46, 0x04, 0xf8, 0x01, 0x3b, 0x73, 0x1c, 0x37, 0x46, 0x80, 0x46, 0x89, 0x46, - 0xdc, 0xd1, 0x49, 0xec, 0x18, 0x8b, 0x2c, 0x4b, 0xdd, 0xf8, 0x4c, 0x80, 0x51, 0xec, 0x18, 0x0b, - 0x00, 0x22, 0x3e, 0x46, 0x1c, 0xee, 0x10, 0x9a, 0xdd, 0xe9, 0x10, 0x7b, 0xcd, 0xf8, 0x40, 0xa0, - 0x11, 0x95, 0xdd, 0xf8, 0x48, 0xa0, 0x1d, 0x9d, 0x05, 0xf0, 0x25, 0xfa, 0x00, 0x28, 0x40, 0xf0, - 0x38, 0x82, 0x51, 0xec, 0x18, 0x0b, 0x20, 0x4b, 0x00, 0x22, 0x05, 0xf0, 0xf4, 0xf9, 0x18, 0xb1, - 0x11, 0x9b, 0xd9, 0x07, 0x00, 0xf1, 0x2d, 0x82, 0x00, 0x2e, 0x33, 0x46, 0x06, 0xdb, 0x01, 0x33, - 0x23, 0x44, 0x30, 0x22, 0x04, 0xf8, 0x01, 0x2b, 0xa3, 0x42, 0xfb, 0xd1, 0x63, 0x1b, 0x56, 0x46, - 0x12, 0x93, 0xdd, 0xf8, 0x2c, 0xa0, 0xfb, 0xe4, 0x19, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, - 0x03, 0xf0, 0x4b, 0xfb, 0x00, 0x28, 0x7e, 0xf4, 0xe4, 0xae, 0xdd, 0xe9, 0x27, 0x34, 0x20, 0x9a, - 0x0d, 0xf1, 0xa4, 0x08, 0xce, 0xe6, 0x19, 0xee, 0x10, 0x3a, 0x98, 0x6d, 0x02, 0xf0, 0xa7, 0xf8, - 0xfe, 0xf7, 0xa3, 0xbe, 0x20, 0x9b, 0x11, 0x93, 0xda, 0x1c, 0x02, 0xdb, 0x08, 0x9a, 0x93, 0x42, - 0x0d, 0xdd, 0x02, 0x3f, 0x27, 0xf0, 0x20, 0x03, 0x07, 0x93, 0xe3, 0xe4, 0x00, 0xbf, 0xac, 0x93, - 0x00, 0x10, 0x7c, 0x93, 0x00, 0x10, 0x00, 0x00, 0x30, 0x40, 0x00, 0x00, 0xe0, 0x3f, 0xdd, 0xe9, - 0x11, 0x32, 0x93, 0x42, 0xc0, 0xf2, 0x80, 0x81, 0xf0, 0x07, 0x40, 0xf1, 0x97, 0x82, 0x16, 0x9a, - 0x13, 0x44, 0x0b, 0x93, 0x71, 0x05, 0x03, 0xd5, 0x11, 0x9b, 0x00, 0x2b, 0x00, 0xf3, 0x60, 0x82, - 0x0b, 0x9b, 0x23, 0xea, 0xe3, 0x73, 0x07, 0x93, 0x67, 0x27, 0x00, 0x23, 0x10, 0x93, 0x13, 0x93, - 0x22, 0xe5, 0x2d, 0x23, 0x00, 0x22, 0x8d, 0xf8, 0x7b, 0x30, 0x08, 0x92, 0xfe, 0xf7, 0xa4, 0xbf, - 0x12, 0x9b, 0xcd, 0xf8, 0x38, 0xb0, 0xdd, 0xf8, 0x4c, 0xb0, 0x0b, 0x9e, 0x19, 0x9f, 0xcd, 0xf8, - 0x2c, 0xa0, 0xeb, 0x18, 0x08, 0x93, 0x42, 0x46, 0xdd, 0xf8, 0x70, 0xa0, 0x10, 0x9b, 0x0f, 0x95, - 0x19, 0xee, 0x10, 0x8a, 0xa4, 0x46, 0xbb, 0xf1, 0x00, 0x0f, 0x30, 0xd0, 0x00, 0x2b, 0x71, 0xd1, - 0x01, 0x3f, 0x0b, 0xf1, 0xff, 0x3b, 0x1b, 0x9b, 0xc2, 0xe9, 0x00, 0x3a, 0x27, 0x9b, 0x01, 0x33, - 0xd4, 0x44, 0x07, 0x2b, 0xcd, 0xf8, 0xa0, 0xc0, 0x27, 0x93, 0x67, 0xdc, 0x08, 0x32, 0x08, 0x9b, - 0x38, 0x78, 0x9b, 0x1b, 0x83, 0x42, 0xa8, 0xbf, 0x03, 0x46, 0x00, 0x2b, 0x1c, 0x46, 0x0b, 0xdd, - 0x27, 0x98, 0x01, 0x30, 0x9c, 0x44, 0x07, 0x28, 0xc2, 0xe9, 0x00, 0x63, 0xcd, 0xf8, 0xa0, 0xc0, - 0x27, 0x90, 0x5f, 0xdc, 0x38, 0x78, 0x08, 0x32, 0x00, 0x2c, 0xac, 0xbf, 0x05, 0x1b, 0x05, 0x46, - 0x00, 0x2d, 0x17, 0xdc, 0x06, 0x44, 0x10, 0x9b, 0xbb, 0xf1, 0x00, 0x0f, 0xce, 0xd1, 0x00, 0x2b, - 0x40, 0xd1, 0x0f, 0x9d, 0x12, 0x9b, 0xdd, 0xf8, 0x2c, 0xa0, 0xdd, 0xf8, 0x38, 0xb0, 0x19, 0x97, - 0xeb, 0x18, 0x9e, 0x42, 0x90, 0x46, 0x32, 0x46, 0x28, 0xbf, 0x1a, 0x46, 0x64, 0x46, 0x0b, 0x92, - 0xff, 0xf7, 0xc7, 0xba, 0x10, 0x2d, 0x27, 0x98, 0x1f, 0xdd, 0x10, 0x24, 0x63, 0x46, 0x04, 0xe0, - 0x10, 0x3d, 0x10, 0x2d, 0x02, 0xf1, 0x08, 0x02, 0x16, 0xdd, 0x01, 0x30, 0xb4, 0x49, 0x10, 0x33, - 0x07, 0x28, 0xc2, 0xe9, 0x00, 0x14, 0xcd, 0xe9, 0x27, 0x03, 0xf1, 0xdd, 0x26, 0xaa, 0x41, 0x46, - 0x48, 0x46, 0x03, 0xf0, 0x92, 0xfa, 0x00, 0x28, 0x7e, 0xf4, 0x2b, 0xae, 0x10, 0x3d, 0x10, 0x2d, - 0xdd, 0xe9, 0x27, 0x03, 0x29, 0xaa, 0xe8, 0xdc, 0x9c, 0x46, 0x01, 0x30, 0xa8, 0x4b, 0x55, 0x60, - 0xac, 0x44, 0x07, 0x28, 0xcd, 0xe9, 0x27, 0x0c, 0x13, 0x60, 0x4d, 0xdc, 0x38, 0x78, 0x08, 0x32, - 0x06, 0x44, 0xb8, 0xe7, 0x10, 0x9b, 0x01, 0x3b, 0x10, 0x93, 0x8c, 0xe7, 0x26, 0xaa, 0x41, 0x46, - 0x48, 0x46, 0x03, 0xf0, 0x72, 0xfa, 0x00, 0x28, 0x7e, 0xf4, 0x0b, 0xae, 0xdd, 0xf8, 0xa0, 0xc0, - 0x29, 0xaa, 0x8c, 0xe7, 0x26, 0xaa, 0x41, 0x46, 0x48, 0x46, 0x03, 0xf0, 0x66, 0xfa, 0x00, 0x28, - 0x7e, 0xf4, 0xff, 0xad, 0x38, 0x78, 0xdd, 0xf8, 0xa0, 0xc0, 0x29, 0xaa, 0x94, 0xe7, 0x90, 0x46, - 0x0c, 0x46, 0x01, 0x33, 0x0e, 0x9a, 0xc8, 0xf8, 0x00, 0x20, 0x34, 0x44, 0x07, 0x2b, 0xcd, 0xe9, - 0x27, 0x34, 0xc8, 0xf8, 0x04, 0x60, 0x00, 0xf3, 0x63, 0x81, 0x08, 0xf1, 0x08, 0x08, 0xff, 0xf7, - 0x61, 0xba, 0x19, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x03, 0xf0, 0x46, 0xfa, 0x00, 0x28, - 0x7e, 0xf4, 0xdf, 0xad, 0x20, 0x9a, 0x28, 0x9c, 0x0d, 0xf1, 0xa4, 0x08, 0xff, 0xf7, 0x73, 0xbb, - 0x0c, 0x93, 0xdd, 0xe9, 0x14, 0x12, 0x02, 0xf1, 0x00, 0x43, 0x0b, 0xee, 0x90, 0x3a, 0x2d, 0x23, - 0x0b, 0xee, 0x10, 0x1a, 0x0e, 0x93, 0x5d, 0xe6, 0x26, 0xaa, 0x41, 0x46, 0x48, 0x46, 0x03, 0xf0, - 0x2c, 0xfa, 0x00, 0x28, 0x7e, 0xf4, 0xc5, 0xad, 0x38, 0x78, 0xdd, 0xf8, 0xa0, 0xc0, 0x29, 0xaa, - 0x06, 0x44, 0x60, 0xe7, 0x19, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x03, 0xf0, 0x1d, 0xfa, - 0x00, 0x28, 0x7e, 0xf4, 0xb6, 0xad, 0x28, 0x9c, 0x0d, 0xf1, 0xa4, 0x08, 0xff, 0xf7, 0x23, 0xba, - 0x19, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x03, 0xf0, 0x0f, 0xfa, 0x00, 0x28, 0x7e, 0xf4, - 0xa8, 0xad, 0x20, 0x9b, 0x28, 0x9c, 0x0d, 0xf1, 0xa4, 0x08, 0xff, 0xf7, 0x38, 0xba, 0x08, 0x9b, - 0x01, 0x93, 0x24, 0xab, 0x04, 0x93, 0x21, 0xab, 0x03, 0x93, 0x20, 0xab, 0x02, 0x93, 0x03, 0x23, - 0x00, 0x93, 0x48, 0x46, 0x53, 0xec, 0x1b, 0x2b, 0x00, 0xf0, 0x57, 0xfb, 0x03, 0x78, 0x30, 0x2b, - 0x05, 0x46, 0x00, 0xf0, 0x9a, 0x81, 0x20, 0x9b, 0x08, 0x9a, 0x56, 0x46, 0x13, 0x44, 0xdd, 0xf8, - 0x2c, 0xa0, 0xec, 0x18, 0x51, 0xec, 0x1b, 0x0b, 0x00, 0x22, 0x00, 0x23, 0x05, 0xf0, 0x73, 0xf8, - 0x10, 0xb1, 0x23, 0x46, 0xff, 0xf7, 0x8a, 0xbb, 0x24, 0x9b, 0xa3, 0x42, 0xbf, 0xf4, 0x86, 0xab, - 0x30, 0x21, 0x5a, 0x1c, 0x24, 0x92, 0x19, 0x70, 0x24, 0x9b, 0x9c, 0x42, 0xf9, 0xd8, 0xff, 0xf7, - 0x7d, 0xbb, 0x08, 0x9b, 0x07, 0x93, 0x0b, 0x93, 0x0d, 0x94, 0x9d, 0xf8, 0x7b, 0x30, 0x08, 0x90, - 0x10, 0x90, 0x13, 0x90, 0x11, 0x90, 0xfe, 0xf7, 0x64, 0xbe, 0x20, 0x9a, 0x11, 0x92, 0x00, 0x2a, - 0x40, 0xf3, 0x91, 0x81, 0x08, 0x99, 0x06, 0xf0, 0x01, 0x03, 0x0b, 0x43, 0x40, 0xf0, 0x30, 0x81, - 0x11, 0x9b, 0x0b, 0x93, 0x66, 0x27, 0x73, 0x05, 0x00, 0xf1, 0x03, 0x81, 0x0b, 0x9b, 0x23, 0xea, - 0xe3, 0x73, 0x07, 0x93, 0xa1, 0xe6, 0x19, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x03, 0xf0, - 0xac, 0xf9, 0x00, 0x28, 0x7e, 0xf4, 0x45, 0xad, 0x20, 0x9d, 0x12, 0x9b, 0x28, 0x9c, 0x5d, 0x1b, - 0x0d, 0xf1, 0xa4, 0x08, 0xff, 0xf7, 0xeb, 0xb9, 0x12, 0x9b, 0x16, 0x9a, 0x9a, 0x18, 0x11, 0x9b, - 0x0b, 0x92, 0x00, 0x2b, 0x40, 0xf3, 0x54, 0x81, 0x67, 0x27, 0xdc, 0xe7, 0x00, 0x23, 0x08, 0x93, - 0xfe, 0xf7, 0x56, 0xbc, 0x19, 0xee, 0x10, 0x1a, 0x19, 0xee, 0x90, 0x0a, 0x26, 0xaa, 0x03, 0xf0, - 0x8c, 0xf9, 0x00, 0x28, 0x3e, 0xf4, 0xde, 0xad, 0xfe, 0xf7, 0x2a, 0xbd, 0x6b, 0x6e, 0xdc, 0x07, - 0x05, 0xd4, 0xab, 0x89, 0x98, 0x05, 0x02, 0xd4, 0xa8, 0x6d, 0x01, 0xf0, 0xe8, 0xfe, 0x4f, 0xf0, - 0xff, 0x33, 0x0a, 0x93, 0xfe, 0xf7, 0x26, 0xbd, 0x08, 0x9b, 0xec, 0x18, 0x8a, 0xe7, 0x56, 0x42, - 0x10, 0x32, 0x80, 0xf2, 0x70, 0x81, 0x1d, 0x48, 0x0e, 0x90, 0x42, 0x46, 0x21, 0x46, 0x19, 0xee, - 0x10, 0x8a, 0x10, 0x27, 0x04, 0x46, 0x03, 0xe0, 0x08, 0x32, 0x10, 0x3e, 0x10, 0x2e, 0x5b, 0xdd, - 0x01, 0x33, 0x10, 0x31, 0x07, 0x2b, 0xc2, 0xe9, 0x00, 0x47, 0xcd, 0xe9, 0x27, 0x31, 0xf3, 0xdd, - 0x26, 0xaa, 0x41, 0x46, 0x48, 0x46, 0x03, 0xf0, 0x58, 0xf9, 0x00, 0x28, 0x7e, 0xf4, 0xf1, 0xac, - 0xdd, 0xe9, 0x27, 0x31, 0x29, 0xaa, 0xe8, 0xe7, 0x08, 0x9b, 0x5c, 0x1c, 0x24, 0xab, 0x04, 0x93, - 0x21, 0xab, 0x03, 0x93, 0x20, 0xab, 0x02, 0x93, 0x02, 0x23, 0x00, 0x93, 0x01, 0x94, 0x53, 0xec, - 0x1b, 0x2b, 0x48, 0x46, 0x00, 0xf0, 0xa1, 0xfa, 0x05, 0x46, 0x56, 0x46, 0x2c, 0x44, 0xdd, 0xf8, - 0x2c, 0xa0, 0x4f, 0xe7, 0x02, 0x4a, 0x0e, 0x92, 0xfe, 0xf7, 0xe9, 0xbf, 0x00, 0xbf, 0xac, 0x93, - 0x00, 0x10, 0x10, 0x9b, 0x24, 0x93, 0x0f, 0x9b, 0x14, 0xf8, 0x01, 0x2c, 0xd9, 0x7b, 0x8a, 0x42, - 0x23, 0x46, 0x09, 0xd1, 0x30, 0x20, 0x03, 0xf8, 0x01, 0x0c, 0x24, 0x9b, 0x5a, 0x1e, 0x24, 0x92, - 0x13, 0xf8, 0x01, 0x2c, 0x91, 0x42, 0xf6, 0xd0, 0x39, 0x2a, 0x0b, 0xbf, 0x0f, 0x9a, 0x01, 0x32, - 0x92, 0x7a, 0xd2, 0xb2, 0x03, 0xf8, 0x01, 0x2c, 0xc0, 0xe5, 0x30, 0x23, 0x8d, 0xf8, 0x7c, 0x30, - 0x78, 0x23, 0x24, 0xe5, 0x59, 0x1c, 0x48, 0x46, 0x01, 0xf0, 0xeb, 0xfe, 0x05, 0x46, 0x00, 0x28, - 0x00, 0xf0, 0x0c, 0x81, 0x0c, 0x90, 0x25, 0xe5, 0x90, 0x46, 0x0c, 0x46, 0x01, 0x33, 0x0e, 0x9a, - 0xc8, 0xf8, 0x00, 0x20, 0x34, 0x44, 0x07, 0x2b, 0xcd, 0xe9, 0x27, 0x34, 0xc8, 0xf8, 0x04, 0x60, - 0x7f, 0xf7, 0x46, 0xaa, 0x19, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x03, 0xf0, 0xf5, 0xf8, - 0x00, 0x28, 0x7e, 0xf4, 0x8e, 0xac, 0xdd, 0xe9, 0x27, 0x34, 0x0d, 0xf1, 0xa4, 0x08, 0x7c, 0xe4, - 0x19, 0xee, 0x10, 0x1a, 0x26, 0xaa, 0x48, 0x46, 0x03, 0xf0, 0xe7, 0xf8, 0x00, 0x28, 0x7e, 0xf4, - 0x80, 0xac, 0x28, 0x9c, 0x0d, 0xf1, 0xa4, 0x08, 0xff, 0xf7, 0xf4, 0xb8, 0x08, 0x9b, 0x00, 0x2b, - 0x08, 0xbf, 0x01, 0x23, 0x08, 0x93, 0x15, 0x9b, 0x4a, 0xf4, 0x80, 0x72, 0x00, 0x2b, 0x0b, 0x92, - 0xc0, 0xf2, 0x9b, 0x80, 0x9d, 0xed, 0x14, 0x7b, 0x0e, 0x90, 0x0c, 0x90, 0xb0, 0xee, 0x47, 0xba, - 0xf0, 0xee, 0x67, 0xba, 0xff, 0xf7, 0x56, 0xba, 0x06, 0x23, 0x08, 0x93, 0xff, 0xf7, 0x3d, 0xba, - 0x00, 0x29, 0x40, 0xf0, 0xa4, 0x80, 0x30, 0x22, 0x8d, 0xf8, 0x71, 0x5c, 0x64, 0x4b, 0x74, 0x01, - 0x00, 0x9a, 0x5f, 0x0a, 0x8f, 0x31, 0xea, 0xad, 0x5b, 0xa6, 0x01, 0x22, 0x4e, 0x14, 0x1e, 0xc2, - 0x41, 0x29, 0xe3, 0xbb, 0x28, 0x6a, 0xde, 0x14, 0xe7, 0xe9, 0x32, 0xc6, 0x87, 0x2c, 0x4b, 0x69, - 0xa0, 0x44, 0x58, 0xd7, 0x23, 0x1c, 0xd7, 0x9f, 0x38, 0x67, 0xdb, 0x8a, 0xf3, 0xad, 0xf6, 0xdf, - 0x36, 0x1e, 0x40, 0x76, 0x82, 0xb6, 0x60, 0x7b, 0x45, 0xc3, 0x99, 0x66, 0xa5, 0xa5, 0x62, 0xe1, - 0x05, 0x2a, 0x00, 0x02, 0xc1, 0x65, 0xf7, 0x73, 0xf3, 0x0d, 0x77, 0x43, 0x72, 0xd2, 0xea, 0x81, - 0x93, 0x96, 0x27, 0x76, 0x1c, 0xdb, 0xda, 0xa9, 0xa3, 0x68, 0xe8, 0xe8, 0x56, 0x9d, 0x84, 0x30, - 0xd3, 0xc7, 0x67, 0x5c, 0x7b, 0xe5, 0x4e, 0x9f, 0x00, 0xb6, 0x1d, 0x2c, 0x0e, 0xe7, 0xf3, 0x23, - 0xf1, 0xc8, 0xa6, 0x7e, 0x63, 0x67, 0x19, 0x1d, 0xde, 0x5f, 0x27, 0xdd, 0x6a, 0x23, 0x68, 0x36, - 0xe3, 0x9b, 0x06, 0xd5, 0xe8, 0x34, 0x9a, 0xbd, 0x8b, 0x1a, 0xb9, 0xf5, 0x26, 0x67, 0x2b, 0x59, - 0xaf, 0x56, 0xd0, 0xd2, 0x09, 0xec, 0x9d, 0xf9, 0x86, 0x81, 0x3a, 0x75, 0x58, 0x8b, 0xd1, 0x7e, - 0x4d, 0xfc, 0xae, 0x03, 0xb3, 0x67, 0xab, 0x85, 0xd7, 0x8d, 0x74, 0x9f, 0x6d, 0x87, 0x73, 0x23, - 0x0a, 0xfc, 0x94, 0xef, 0x3e, 0xd4, 0xdf, 0xc3, 0x20, 0x4a, 0x0b, 0x93, 0xc4, 0x35, 0xef, 0xf9, - 0x60, 0x74, 0xe7, 0x42, 0x45, 0x09, 0x96, 0xef, 0xfe, 0xd2, 0xbe, 0x8a, 0x8d, 0xbd, 0x10, 0x34, - 0x02, 0x93, 0x2a, 0xa8, 0xd6, 0x1e, 0x3e, 0x91, 0xbd, 0x38, 0x72, 0xb0, 0xc1, 0x84, 0x6a, 0x05, - 0x5b, 0x5e, 0x08, 0xbf, 0x5f, 0x8c, 0x9a, 0x13, 0xad, 0x92, 0xab, 0xda, 0xdd, 0x03, 0x2b, 0xec, - 0x23, 0x2e, 0xb8, 0x2a, 0xb6, 0x4f, 0xc8, 0x08, 0x2d, 0x73, 0xc3, 0x7f, 0xeb, 0xe8 + 0xbe,0xef,0xed,0x05,0x1f,0xf2,0x96,0xd6,0x59,0x02,0x1e,0xee,0x24,0x02,0x10,0x00, + 0x1e,0xe4,0x00,0x00,0x1e,0xe4,0x6f,0xf0,0x02,0x00,0x70,0x47,0x6f,0xf0,0x0b,0x00, + 0x70,0x47,0x00,0x20,0x04,0x40,0x80,0x68,0xc0,0xf3,0x05,0x20,0x70,0x47,0x80,0x68, + 0xc0,0xf3,0x05,0x40,0xc0,0xf1,0x20,0x00,0x70,0x47,0x0e,0x4b,0x98,0x42,0x07,0xd0, + 0x03,0xf5,0x80,0x53,0x98,0x42,0x03,0xd0,0x03,0xf5,0x80,0x53,0x98,0x42,0x0b,0xd1, + 0x4b,0x1e,0x1f,0x2b,0x0b,0xd8,0x43,0x68,0x23,0xf0,0x3f,0x03,0x01,0xf0,0x3f,0x01, + 0x19,0x43,0x41,0x60,0x00,0x20,0x70,0x47,0x6f,0xf0,0x02,0x00,0x70,0x47,0x6f,0xf0, + 0x02,0x00,0x70,0x47,0x00,0xbf,0x00,0x20,0x04,0x40,0x0e,0x4b,0x98,0x42,0x07,0xd0, + 0x03,0xf5,0x80,0x53,0x98,0x42,0x03,0xd0,0x03,0xf5,0x80,0x53,0x98,0x42,0x0c,0xd1, + 0x4b,0x1e,0x1f,0x2b,0x0c,0xd8,0x09,0x02,0x43,0x68,0x23,0xf4,0x7c,0x53,0x01,0xf4, + 0x7c,0x51,0x19,0x43,0x41,0x60,0x00,0x20,0x70,0x47,0x6f,0xf0,0x02,0x00,0x70,0x47, + 0x6f,0xf0,0x02,0x00,0x70,0x47,0x00,0x20,0x04,0x40,0x10,0xb5,0x04,0x46,0x20,0x46, + 0xff,0xf7,0x4f,0xfd,0x00,0x28,0xfa,0xd0,0x20,0x46,0xff,0xf7,0x42,0xfd,0x10,0xbd, + 0x38,0xb5,0x04,0x46,0x0d,0x46,0x20,0x46,0xff,0xf7,0x57,0xfd,0x00,0x28,0xfa,0xd0, + 0x29,0x46,0x20,0x46,0xff,0xf7,0x39,0xfd,0x38,0xbd,0x50,0xe8,0x00,0x3f,0x3b,0xb9, + 0x40,0xe8,0x00,0x13,0x00,0x2b,0xf8,0xd1,0xbf,0xf3,0x5f,0x8f,0x00,0x20,0x70,0x47, + 0x6f,0xf0,0x05,0x00,0x70,0x47,0xbf,0xf3,0x5f,0x8f,0x00,0x23,0x03,0x60,0x70,0x47, + 0x00,0x00,0x01,0x4b,0x18,0x68,0x70,0x47,0x00,0xbf,0x08,0x00,0x00,0x20,0x70,0xb5, + 0x0d,0x4e,0x0d,0x4d,0x76,0x1b,0xb6,0x10,0x06,0xd0,0x00,0x24,0x55,0xf8,0x04,0x3b, + 0x01,0x34,0x98,0x47,0xa6,0x42,0xf9,0xd1,0x09,0x4e,0x09,0x4d,0x76,0x1b,0x07,0xf0, + 0xa0,0xfb,0xb6,0x10,0x06,0xd0,0x00,0x24,0x55,0xf8,0x04,0x3b,0x01,0x34,0x98,0x47, + 0xa6,0x42,0xf9,0xd1,0x70,0xbd,0xb8,0x09,0x00,0x20,0xb8,0x09,0x00,0x20,0xc0,0x09, + 0x00,0x20,0xb8,0x09,0x00,0x20,0x84,0x46,0x41,0xea,0x00,0x03,0x13,0xf0,0x03,0x03, + 0x6d,0xd1,0x40,0x3a,0x41,0xd3,0x51,0xf8,0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8, + 0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8,0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8, + 0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8,0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8, + 0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8,0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8, + 0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8,0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8, + 0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8,0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8, + 0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8,0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8, + 0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8,0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8, + 0x04,0x3b,0x40,0xf8,0x04,0x3b,0x40,0x3a,0xbd,0xd2,0x30,0x32,0x11,0xd3,0x51,0xf8, + 0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8,0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8, + 0x04,0x3b,0x40,0xf8,0x04,0x3b,0x51,0xf8,0x04,0x3b,0x40,0xf8,0x04,0x3b,0x10,0x3a, + 0xed,0xd2,0x0c,0x32,0x05,0xd3,0x51,0xf8,0x04,0x3b,0x40,0xf8,0x04,0x3b,0x04,0x3a, + 0xf9,0xd2,0x04,0x32,0x08,0xd0,0xd2,0x07,0x1c,0xbf,0x11,0xf8,0x01,0x3b,0x00,0xf8, + 0x01,0x3b,0x01,0xd3,0x0b,0x88,0x03,0x80,0x60,0x46,0x70,0x47,0x00,0xbf,0x08,0x2a, + 0x13,0xd3,0x8b,0x07,0x8d,0xd0,0x10,0xf0,0x03,0x03,0x8a,0xd0,0xc3,0xf1,0x04,0x03, + 0xd2,0x1a,0xdb,0x07,0x1c,0xbf,0x11,0xf8,0x01,0x3b,0x00,0xf8,0x01,0x3b,0x80,0xd3, + 0x31,0xf8,0x02,0x3b,0x20,0xf8,0x02,0x3b,0x7b,0xe7,0x04,0x3a,0xd9,0xd3,0x01,0x3a, + 0x11,0xf8,0x01,0x3b,0x00,0xf8,0x01,0x3b,0xf9,0xd2,0x0b,0x78,0x03,0x70,0x4b,0x78, + 0x43,0x70,0x8b,0x78,0x83,0x70,0x60,0x46,0x70,0x47,0x83,0x07,0x30,0xb5,0x48,0xd0, + 0x54,0x1e,0x00,0x2a,0x3f,0xd0,0xca,0xb2,0x03,0x46,0x01,0xe0,0x01,0x3c,0x3a,0xd3, + 0x03,0xf8,0x01,0x2b,0x9d,0x07,0xf9,0xd1,0x03,0x2c,0x2d,0xd9,0xcd,0xb2,0x45,0xea, + 0x05,0x25,0x0f,0x2c,0x45,0xea,0x05,0x45,0x36,0xd9,0xa4,0xf1,0x10,0x02,0x22,0xf0, + 0x0f,0x0c,0x03,0xf1,0x20,0x0e,0xe6,0x44,0x4f,0xea,0x12,0x1c,0x03,0xf1,0x10,0x02, + 0x42,0xe9,0x04,0x55,0x42,0xe9,0x02,0x55,0x10,0x32,0x72,0x45,0xf8,0xd1,0x0c,0xf1, + 0x01,0x02,0x14,0xf0,0x0c,0x0f,0x03,0xeb,0x02,0x12,0x04,0xf0,0x0f,0x0c,0x13,0xd0, + 0xac,0xf1,0x04,0x03,0x23,0xf0,0x03,0x03,0x04,0x33,0x13,0x44,0x42,0xf8,0x04,0x5b, + 0x93,0x42,0xfb,0xd1,0x0c,0xf0,0x03,0x04,0x2c,0xb1,0xca,0xb2,0x1c,0x44,0x03,0xf8, + 0x01,0x2b,0x9c,0x42,0xfb,0xd1,0x30,0xbd,0x64,0x46,0x13,0x46,0x00,0x2c,0xf4,0xd1, + 0xf9,0xe7,0x03,0x46,0x14,0x46,0xbf,0xe7,0x1a,0x46,0xa4,0x46,0xe0,0xe7,0x0f,0xb4, + 0x00,0xb5,0x07,0x49,0x83,0xb0,0x04,0xab,0x08,0x68,0x53,0xf8,0x04,0x2b,0x81,0x68, + 0x01,0x93,0x00,0xf0,0xde,0xf8,0x03,0xb0,0x5d,0xf8,0x04,0xeb,0x04,0xb0,0x70,0x47, + 0x00,0xbf,0x08,0x00,0x00,0x20,0x70,0xb5,0x05,0x46,0x88,0xb0,0x08,0x46,0x0c,0x46, + 0x00,0xf0,0x5f,0xf8,0x22,0x4e,0xaa,0x6b,0x05,0x90,0x01,0x21,0x43,0x18,0xcd,0xe9, + 0x06,0x61,0x04,0xa8,0x02,0x21,0x04,0x94,0x03,0x93,0xac,0x68,0x01,0x90,0x02,0x91, + 0x22,0xb3,0x63,0x6e,0x13,0xf0,0x01,0x0f,0xb4,0xf9,0x0c,0x30,0x9a,0xb2,0x01,0xd1, + 0x98,0x05,0x25,0xd5,0x91,0x04,0x06,0xd4,0x62,0x6e,0x43,0xf4,0x00,0x53,0x22,0xf4, + 0x00,0x52,0xa3,0x81,0x62,0x66,0x28,0x46,0x01,0xaa,0x21,0x46,0x03,0xf0,0x21,0xfa, + 0x63,0x6e,0x00,0x28,0x14,0xbf,0x4f,0xf0,0xff,0x35,0x0a,0x25,0xda,0x07,0x02,0xd4, + 0xa3,0x89,0x9b,0x05,0x06,0xd5,0x28,0x46,0x08,0xb0,0x70,0xbd,0x28,0x46,0x03,0xf0, + 0x12,0xf8,0xd6,0xe7,0xa0,0x6d,0x03,0xf0,0xb2,0xfb,0x28,0x46,0x08,0xb0,0x70,0xbd, + 0xa0,0x6d,0x03,0xf0,0xaa,0xfb,0xb4,0xf9,0x0c,0x30,0x9a,0xb2,0xd2,0xe7,0x54,0x93, + 0x00,0x10,0x02,0x4b,0x01,0x46,0x18,0x68,0xff,0xf7,0xad,0xbf,0x00,0xbf,0x08,0x00, + 0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x90,0xf8,0x00,0xf0,0x6d,0xe9,0x02,0x45,0x20,0xf0,0x07,0x01,0x6f,0xf0, + 0x00,0x0c,0x10,0xf0,0x07,0x04,0x91,0xf8,0x20,0xf0,0x40,0xf0,0x49,0x80,0x4f,0xf0, + 0x00,0x04,0x6f,0xf0,0x07,0x00,0xd1,0xe9,0x00,0x23,0x91,0xf8,0x40,0xf0,0x00,0xf1, + 0x08,0x00,0x82,0xfa,0x4c,0xf2,0xa4,0xfa,0x8c,0xf2,0x83,0xfa,0x4c,0xf3,0xa2,0xfa, + 0x8c,0xf3,0x4b,0xbb,0xd1,0xe9,0x02,0x23,0x82,0xfa,0x4c,0xf2,0x00,0xf1,0x08,0x00, + 0xa4,0xfa,0x8c,0xf2,0x83,0xfa,0x4c,0xf3,0xa2,0xfa,0x8c,0xf3,0xe3,0xb9,0xd1,0xe9, + 0x04,0x23,0x82,0xfa,0x4c,0xf2,0x00,0xf1,0x08,0x00,0xa4,0xfa,0x8c,0xf2,0x83,0xfa, + 0x4c,0xf3,0xa2,0xfa,0x8c,0xf3,0x7b,0xb9,0xd1,0xe9,0x06,0x23,0x01,0xf1,0x20,0x01, + 0x82,0xfa,0x4c,0xf2,0x00,0xf1,0x08,0x00,0xa4,0xfa,0x8c,0xf2,0x83,0xfa,0x4c,0xf3, + 0xa2,0xfa,0x8c,0xf3,0x00,0x2b,0xc6,0xd0,0x00,0x2a,0x04,0xbf,0x04,0x30,0x1a,0x46, + 0x12,0xba,0xb2,0xfa,0x82,0xf2,0xfd,0xe8,0x02,0x45,0x00,0xeb,0xd2,0x00,0x70,0x47, + 0xd1,0xe9,0x00,0x23,0x04,0xf0,0x03,0x05,0xc4,0xf1,0x00,0x00,0x4f,0xea,0xc5,0x05, + 0x14,0xf0,0x04,0x0f,0x91,0xf8,0x40,0xf0,0x0c,0xfa,0x05,0xf5,0x62,0xea,0x05,0x02, + 0x1c,0xbf,0x63,0xea,0x05,0x03,0x62,0x46,0x4f,0xf0,0x00,0x04,0xa9,0xe7,0x00,0x00, + 0x00,0x00,0x2d,0xe9,0xf0,0x4f,0x2d,0xed,0x0a,0x8b,0xd3,0xb0,0x1c,0x46,0x09,0xee, + 0x10,0x1a,0x91,0x46,0x09,0xee,0x90,0x0a,0x05,0x46,0x03,0xf0,0x06,0xfb,0x03,0x68, + 0x17,0x93,0x18,0x46,0x0d,0x94,0xff,0xf7,0x7c,0xff,0x16,0x90,0x1d,0xb1,0xab,0x6b, + 0x00,0x2b,0x00,0xf0,0x48,0x82,0x19,0xee,0x10,0x2a,0x53,0x6e,0xdb,0x07,0x40,0xf1, + 0x47,0x81,0xb2,0xf9,0x0c,0x30,0x9a,0xb2,0x96,0x04,0x09,0xd4,0x19,0xee,0x10,0x1a, + 0x43,0xf4,0x00,0x53,0x8b,0x81,0x9a,0xb2,0x4b,0x6e,0x23,0xf4,0x00,0x53,0x4b,0x66, + 0x15,0x07,0x40,0xf1,0xcc,0x80,0x19,0xee,0x10,0x3a,0x1b,0x69,0x00,0x2b,0x00,0xf0, + 0xc6,0x80,0x02,0xf0,0x1a,0x03,0x0a,0x2b,0x00,0xf0,0xd2,0x80,0x4d,0x46,0x9f,0xed, + 0x9c,0x7b,0x2b,0x78,0x00,0x24,0x29,0xaa,0xcd,0xe9,0x27,0x44,0xcd,0xe9,0x19,0x44, + 0xcd,0xe9,0x1b,0x44,0x8d,0xed,0x14,0x7b,0x19,0xee,0x90,0x9a,0x12,0x94,0x26,0x92, + 0x90,0x46,0x18,0x94,0x0a,0x94,0x00,0x2b,0x00,0xf0,0xb0,0x81,0xab,0x46,0x04,0xe0, + 0x1b,0xf8,0x01,0x3f,0x00,0x2b,0x00,0xf0,0xcd,0x80,0x25,0x2b,0xf8,0xd1,0xbb,0xeb, + 0x05,0x06,0x40,0xf0,0xcb,0x80,0x9b,0xf8,0x00,0x30,0x00,0x2b,0x00,0xf0,0x9e,0x81, + 0x00,0x23,0x4f,0xf0,0xff,0x32,0x9b,0xf8,0x01,0x70,0x8d,0xf8,0x7b,0x30,0x09,0x93, + 0x0b,0xf1,0x01,0x0b,0x08,0x92,0x9a,0x46,0x2b,0x24,0x20,0x21,0x0b,0xf1,0x01,0x0b, + 0xa7,0xf1,0x20,0x03,0x5a,0x2b,0x00,0xf2,0x00,0x81,0xdf,0xe8,0x13,0xf0,0x0a,0x03, + 0xfe,0x00,0xfe,0x00,0x05,0x03,0xfe,0x00,0xfe,0x00,0xfe,0x00,0x6a,0x00,0xfe,0x00, + 0xfe,0x00,0x76,0x02,0x9e,0x02,0xfe,0x00,0x81,0x02,0xa8,0x02,0xfe,0x00,0xa3,0x02, + 0x5b,0x00,0x5b,0x00,0x5b,0x00,0x5b,0x00,0x5b,0x00,0x5b,0x00,0x5b,0x00,0x5b,0x00, + 0x5b,0x00,0xfe,0x00,0xfe,0x00,0xfe,0x00,0xfe,0x00,0xfe,0x00,0xfe,0x00,0xfe,0x00, + 0x8e,0x01,0xfe,0x00,0x16,0x02,0xed,0x01,0x8e,0x01,0x8e,0x01,0x8e,0x01,0xfe,0x00, + 0xfe,0x00,0xfe,0x00,0xfe,0x00,0x00,0x03,0xfe,0x00,0xfe,0x00,0x45,0x02,0xfe,0x00, + 0xfe,0x00,0xfe,0x00,0x20,0x02,0xfe,0x00,0xc2,0x02,0xfe,0x00,0xfe,0x00,0x9a,0x07, + 0xfe,0x00,0xfe,0x00,0xfe,0x00,0xfe,0x00,0xfe,0x00,0xfe,0x00,0xfe,0x00,0xfe,0x00, + 0x8e,0x01,0xfe,0x00,0x16,0x02,0xef,0x01,0x8e,0x01,0x8e,0x01,0x8e,0x01,0xe6,0x02, + 0xef,0x01,0xe8,0x01,0xfe,0x00,0xf3,0x02,0xfe,0x00,0x86,0x02,0x47,0x02,0xd4,0x02, + 0xe8,0x01,0xfe,0x00,0x20,0x02,0x7d,0x00,0x76,0x07,0xfe,0x00,0xfe,0x00,0x7a,0x07, + 0xfe,0x00,0x7d,0x00,0xa7,0xf1,0x30,0x03,0x00,0x22,0x1b,0xf8,0x01,0x7b,0x02,0xeb, + 0x82,0x02,0x03,0xeb,0x42,0x02,0xa7,0xf1,0x30,0x03,0x09,0x2b,0xf5,0xd9,0x09,0x92, + 0x8e,0xe7,0x48,0x46,0x03,0xf0,0x29,0xfa,0x43,0x68,0x1b,0x93,0x18,0x46,0xff,0xf7, + 0xa0,0xfe,0x1c,0x90,0x06,0x46,0x48,0x46,0x03,0xf0,0x1f,0xfa,0x83,0x68,0x19,0x93, + 0x20,0x21,0x00,0x2e,0x40,0xf0,0xea,0x86,0x9b,0xf8,0x00,0x70,0x76,0xe7,0x19,0xee, + 0x10,0x1a,0x19,0xee,0x90,0x0a,0x19,0xee,0x10,0x5a,0x01,0xf0,0x00,0xfd,0x00,0x28, + 0x41,0xf0,0x24,0x83,0xaa,0x89,0x02,0xf0,0x1a,0x03,0x0a,0x2b,0x7f,0xf4,0x2e,0xaf, + 0x19,0xee,0x10,0x1a,0xb1,0xf9,0x0e,0x30,0x00,0x2b,0xff,0xf6,0x27,0xaf,0x4b,0x6e, + 0xd9,0x07,0x02,0xd4,0x92,0x05,0x41,0xf1,0x56,0x81,0x19,0xee,0x10,0x1a,0x19,0xee, + 0x90,0x0a,0x23,0x46,0x4a,0x46,0x53,0xb0,0xbd,0xec,0x0a,0x8b,0xbd,0xe8,0xf0,0x4f, + 0x01,0xf0,0x9d,0xbc,0xbb,0xeb,0x05,0x06,0x00,0xf0,0xd8,0x80,0x28,0x9b,0x33,0x44, + 0x28,0x93,0x27,0x9b,0x01,0x33,0x07,0x2b,0xc8,0xe9,0x00,0x56,0x27,0x93,0x05,0xdc, + 0x08,0xf1,0x08,0x08,0x0a,0x9b,0x33,0x44,0x0a,0x93,0x24,0xe7,0x19,0xee,0x10,0x1a, + 0x26,0xaa,0x48,0x46,0x04,0xf0,0x71,0xfc,0x90,0xb9,0x0d,0xf1,0xa4,0x08,0xf1,0xe7, + 0x19,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46,0x04,0xf0,0x67,0xfc,0x00,0x28,0x00,0xf0, + 0xa6,0x80,0x0c,0x9b,0x23,0xb1,0x19,0xee,0x90,0x0a,0x19,0x46,0x02,0xf0,0x1b,0xff, + 0x19,0xee,0x10,0x2a,0x53,0x6e,0xd8,0x07,0x40,0xf1,0xfa,0x80,0x93,0x89,0x5a,0x06, + 0x01,0xf1,0xd5,0x82,0x0a,0x98,0x53,0xb0,0xbd,0xec,0x0a,0x8b,0xbd,0xe8,0xf0,0x8f, + 0xb2,0xf9,0x0c,0x30,0x9f,0x05,0x9a,0xb2,0x3f,0xf5,0xb6,0xae,0x19,0xee,0x10,0x5a, + 0xa8,0x6d,0x03,0xf0,0xaa,0xf9,0xb5,0xf9,0x0c,0x30,0x9a,0xb2,0xac,0xe6,0xaf,0xf3, + 0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2f,0x00,0xf0,0x86,0x80, + 0x00,0x23,0x8d,0xf8,0xe4,0x70,0x8d,0xf8,0x7b,0x30,0x01,0x22,0xcd,0xe9,0x0b,0x23, + 0x07,0x92,0x08,0x93,0x10,0x93,0x13,0x93,0x11,0x93,0x39,0xad,0x1a,0xf0,0x02,0x02, + 0x0e,0x92,0x02,0xd0,0x07,0x9a,0x02,0x32,0x07,0x92,0x1a,0xf0,0x84,0x02,0x0f,0x92, + 0x05,0xd1,0x09,0x9a,0x07,0x99,0x56,0x1a,0x00,0x2e,0x00,0xf3,0x68,0x83,0x28,0x9c, + 0x8b,0xb1,0x27,0x9b,0x0d,0xf1,0x7b,0x02,0x01,0x33,0x01,0x34,0xc8,0xf8,0x00,0x20, + 0x07,0x2b,0x4f,0xf0,0x01,0x02,0x28,0x94,0x27,0x93,0xc8,0xf8,0x04,0x20,0x00,0xf3, + 0x9f,0x83,0x08,0xf1,0x08,0x08,0x0e,0x9b,0x83,0xb1,0x27,0x9b,0x1f,0xaa,0x01,0x33, + 0x02,0x34,0xc8,0xf8,0x00,0x20,0x07,0x2b,0x4f,0xf0,0x02,0x02,0x28,0x94,0x27,0x93, + 0xc8,0xf8,0x04,0x20,0x00,0xf3,0x99,0x83,0x08,0xf1,0x08,0x08,0x0f,0x9b,0x80,0x2b, + 0x00,0xf0,0x6a,0x82,0x08,0x9b,0x0b,0x9a,0x9e,0x1a,0x00,0x2e,0x00,0xf3,0xab,0x82, + 0x1a,0xf4,0x80,0x7f,0x40,0xf0,0x06,0x82,0x0b,0x9b,0xc8,0xf8,0x04,0x30,0x1c,0x44, + 0x27,0x9b,0xc8,0xf8,0x00,0x50,0x01,0x33,0x07,0x2b,0x28,0x94,0x27,0x93,0x00,0xf3, + 0x19,0x83,0x08,0xf1,0x08,0x08,0x1a,0xf0,0x04,0x0f,0x05,0xd0,0x09,0x9b,0x07,0x9a, + 0x9d,0x1a,0x00,0x2d,0x00,0xf3,0x85,0x83,0xdd,0xe9,0x09,0x23,0x07,0x99,0x8a,0x42, + 0xac,0xbf,0x9b,0x18,0x5b,0x18,0x0a,0x93,0x00,0x2c,0x7f,0xf4,0x51,0xaf,0x00,0x23, + 0x27,0x93,0x0c,0x9b,0x1b,0xb1,0x0c,0x99,0x48,0x46,0x02,0xf0,0x74,0xfe,0x0d,0xf1, + 0xa4,0x08,0x5d,0x46,0x2b,0x78,0x00,0x2b,0x7f,0xf4,0x50,0xae,0x28,0x9b,0x00,0x2b, + 0x41,0xf0,0x18,0x82,0x00,0x23,0x27,0x93,0x4a,0xe7,0x0d,0x9b,0x07,0x33,0x23,0xf0, + 0x07,0x03,0xb3,0xec,0x02,0x7b,0x8d,0xed,0x14,0x7b,0xdd,0xe9,0x14,0x12,0x0d,0x93, + 0x22,0xf0,0x00,0x43,0x0a,0xee,0x10,0x1a,0x0a,0xee,0x90,0x3a,0x4f,0xf0,0xff,0x32, + 0xb0,0xee,0x4a,0x8a,0xf0,0xee,0x6a,0x8a,0xb7,0x4b,0x51,0xec,0x18,0x0b,0x06,0xf0, + 0x4c,0xfa,0x00,0x28,0x40,0xf0,0xe8,0x84,0xb3,0x4b,0x51,0xec,0x18,0x0b,0x4f,0xf0, + 0xff,0x32,0x06,0xf0,0x24,0xfa,0x00,0x28,0x40,0xf0,0xde,0x84,0xdd,0xe9,0x14,0x01, + 0x00,0x22,0x00,0x23,0x06,0xf0,0x11,0xfa,0x00,0x28,0x40,0xf0,0x67,0x87,0x9d,0xf8, + 0x7b,0x30,0xa9,0x4d,0xaa,0x4a,0x2a,0xf0,0x80,0x0a,0x03,0x21,0x47,0x2f,0xc8,0xbf, + 0x15,0x46,0x00,0x22,0x0c,0x92,0x07,0x91,0x0b,0x91,0x08,0x92,0x10,0x92,0x13,0x92, + 0x11,0x92,0x00,0x2b,0x3f,0xf4,0x3a,0xaf,0x07,0x9a,0x01,0x32,0x07,0x92,0x35,0xe7, + 0x93,0x89,0x99,0x05,0x3f,0xf5,0x03,0xaf,0x19,0xee,0x10,0x4a,0x90,0x6d,0x03,0xf0, + 0xbe,0xf8,0xa3,0x89,0xfb,0xe6,0x28,0x46,0x02,0xf0,0x15,0xfd,0xb3,0xe5,0x9b,0xf8, + 0x00,0x70,0x4a,0xf0,0x20,0x0a,0x09,0xe6,0x4a,0xf0,0x10,0x0a,0x1a,0xf0,0x20,0x0f, + 0x0d,0x9b,0x00,0xf0,0x40,0x84,0x07,0x33,0x23,0xf0,0x07,0x03,0x1a,0x46,0x5b,0x68, + 0x52,0xf8,0x08,0x4b,0x0d,0x92,0x1e,0x46,0x00,0x2b,0xc0,0xf2,0x43,0x84,0x08,0x9b, + 0x01,0x33,0x00,0xf0,0xbc,0x82,0x2a,0xf0,0x80,0x03,0x07,0x93,0x54,0xea,0x06,0x03, + 0x40,0xf0,0xb7,0x82,0x08,0x9b,0x00,0x2b,0x40,0xf0,0xb8,0x82,0xdd,0xf8,0x1c,0xa0, + 0x00,0x23,0x08,0x93,0x0b,0x93,0x52,0xad,0x1f,0xe1,0x0d,0x9a,0x00,0x23,0x52,0xf8, + 0x04,0x1b,0x8d,0xf8,0x7b,0x30,0x8d,0xf8,0xe4,0x10,0x0d,0x92,0xe5,0xe6,0x0d,0x9c, + 0x54,0xf8,0x04,0x5b,0x00,0x26,0x8d,0xf8,0x7b,0x60,0x00,0x2d,0x00,0xf0,0x90,0x85, + 0x08,0x9b,0x5a,0x1c,0x00,0xf0,0x51,0x86,0x1a,0x46,0x31,0x46,0x28,0x46,0x03,0xf0, + 0x90,0xfb,0x0c,0x90,0x00,0x28,0x01,0xf0,0x2c,0x81,0x0c,0x9b,0x08,0x96,0x59,0x1b, + 0x0b,0x91,0x21,0xea,0xe1,0x71,0x9d,0xf8,0x7b,0x30,0x0d,0x94,0x07,0x91,0x0c,0x96, + 0x10,0x96,0x13,0x96,0x11,0x96,0x8c,0xe7,0x4a,0xf0,0x10,0x0a,0x1a,0xf0,0x20,0x06, + 0x00,0xf0,0xc9,0x83,0x0d,0x9b,0x07,0x33,0x23,0xf0,0x07,0x03,0x5e,0x68,0x53,0xf8, + 0x08,0x4b,0x0d,0x93,0x2a,0xf4,0x80,0x63,0x07,0x93,0x00,0x23,0x00,0x22,0x8d,0xf8, + 0x7b,0x20,0x08,0x9a,0x55,0x1c,0x00,0xf0,0xc0,0x80,0x07,0x99,0x21,0xf0,0x80,0x0a, + 0x54,0xea,0x06,0x01,0x40,0xf0,0xb7,0x80,0x00,0x2a,0x40,0xf0,0x07,0x86,0x00,0x2b, + 0xa6,0xd1,0x07,0x9b,0x13,0xf0,0x01,0x03,0x0b,0x93,0x00,0xf0,0x14,0x84,0x30,0x23, + 0x8d,0xf8,0x47,0x31,0x0d,0xf2,0x47,0x15,0xbf,0xe0,0x0d,0x9b,0x53,0xf8,0x04,0x2b, + 0x09,0x92,0x00,0x2a,0x80,0xf2,0xd5,0x83,0x09,0x9a,0x0d,0x93,0x52,0x42,0x09,0x92, + 0x9b,0xf8,0x00,0x70,0x4a,0xf0,0x04,0x0a,0x70,0xe5,0x1a,0xf0,0x20,0x0f,0x40,0xf0, + 0xd2,0x84,0x1a,0xf0,0x10,0x0f,0x40,0xf0,0xe7,0x85,0x1a,0xf0,0x40,0x0f,0x40,0xf0, + 0xa9,0x86,0x1a,0xf4,0x00,0x7f,0x00,0xf0,0xdf,0x85,0x0d,0x9b,0x0a,0x99,0x53,0xf8, + 0x04,0x2b,0x0d,0x93,0x11,0x70,0x5d,0x46,0xe4,0xe6,0x9b,0xf8,0x00,0x70,0x8d,0xf8, + 0x7b,0x40,0x53,0xe5,0x9b,0xf8,0x00,0x70,0x4a,0xf0,0x80,0x0a,0x4e,0xe5,0x5a,0x46, + 0x12,0xf8,0x01,0x7b,0x2a,0x2f,0x01,0xf0,0x6d,0x82,0xa7,0xf1,0x30,0x03,0x09,0x2b, + 0x93,0x46,0x98,0xbf,0x00,0x22,0x01,0xf2,0xe9,0x80,0x1b,0xf8,0x01,0x7b,0x02,0xeb, + 0x82,0x02,0x03,0xeb,0x42,0x02,0xa7,0xf1,0x30,0x03,0x09,0x2b,0xf5,0xd9,0x08,0x92, + 0x36,0xe5,0x4a,0xf0,0x10,0x03,0x07,0x93,0x07,0x9b,0x13,0xf0,0x20,0x06,0x00,0xf0, + 0x59,0x83,0x0d,0x9b,0x07,0x33,0x23,0xf0,0x07,0x03,0x5e,0x68,0x53,0xf8,0x08,0x4b, + 0x0d,0x93,0x01,0x23,0x82,0xe7,0x0d,0x9b,0x53,0xf8,0x04,0x4b,0x0d,0x93,0x30,0x23, + 0x4a,0xf0,0x02,0x02,0x78,0x27,0x8d,0xf8,0x7c,0x30,0x1d,0x4b,0x18,0x93,0x07,0x92, + 0x8d,0xf8,0x7d,0x70,0x00,0x26,0x02,0x23,0x70,0xe7,0x9b,0xf8,0x00,0x70,0x68,0x2f, + 0x03,0xbf,0x9b,0xf8,0x01,0x70,0x4a,0xf4,0x00,0x7a,0x0b,0xf1,0x01,0x0b,0x4a,0xf0, + 0x40,0x0a,0x03,0xe5,0x9b,0xf8,0x00,0x70,0x6c,0x2f,0x03,0xbf,0x9b,0xf8,0x01,0x70, + 0x4a,0xf0,0x20,0x0a,0x0b,0xf1,0x01,0x0b,0x4a,0xf0,0x10,0x0a,0xf6,0xe4,0x9b,0xf8, + 0x00,0x70,0x4a,0xf0,0x08,0x0a,0xf1,0xe4,0x9b,0xf8,0x00,0x70,0x4a,0xf0,0x01,0x0a, + 0xec,0xe4,0x9d,0xf8,0x7b,0x30,0x00,0x2b,0x7f,0xf4,0x6e,0xad,0x9b,0xf8,0x00,0x70, + 0x8d,0xf8,0x7b,0x10,0xe2,0xe4,0xff,0xff,0xef,0x7f,0x58,0x93,0x00,0x10,0x5c,0x93, + 0x00,0x10,0x68,0x93,0x00,0x10,0xcd,0xf8,0x1c,0xa0,0x01,0x2b,0x00,0xf0,0xa1,0x81, + 0x02,0x2b,0x52,0xad,0x20,0xd1,0x18,0x9a,0x04,0xf0,0x0f,0x03,0x24,0x09,0xd3,0x5c, + 0x05,0xf8,0x01,0x3d,0x44,0xea,0x06,0x74,0x36,0x09,0x54,0xea,0x06,0x03,0xf3,0xd1, + 0x52,0xab,0x5b,0x1b,0xdd,0xf8,0x1c,0xa0,0x0b,0x93,0x08,0x99,0x0b,0x98,0x9d,0xf8, + 0x7b,0x30,0x81,0x42,0x4f,0xf0,0x00,0x02,0xb8,0xbf,0x01,0x46,0x0c,0x92,0x07,0x91, + 0x10,0x92,0x13,0x92,0x11,0x92,0x8c,0xe6,0x04,0xf0,0x07,0x03,0xe4,0x08,0x44,0xea, + 0x46,0x74,0xf6,0x08,0x30,0x33,0x54,0xea,0x06,0x01,0x2a,0x46,0x05,0xf8,0x01,0x3d, + 0xf2,0xd1,0x07,0x99,0xcc,0x07,0x00,0xf1,0x75,0x82,0x52,0xab,0x5b,0x1b,0x8a,0x46, + 0x0b,0x93,0xda,0xe7,0x65,0x2f,0x40,0xf3,0xd7,0x80,0xdd,0xe9,0x14,0x01,0x00,0x22, + 0x00,0x23,0x06,0xf0,0x60,0xf8,0x00,0x28,0x00,0xf0,0xc6,0x81,0x27,0x9b,0xc1,0x4a, + 0xc8,0xf8,0x00,0x20,0x01,0x33,0x01,0x34,0x01,0x22,0x07,0x2b,0x28,0x94,0x27,0x93, + 0xc8,0xf8,0x04,0x20,0x00,0xf3,0xde,0x84,0x08,0xf1,0x08,0x08,0x20,0x9b,0x12,0x9a, + 0x93,0x42,0x80,0xf2,0xd1,0x82,0x16,0x9b,0x17,0x9a,0x1c,0x44,0xc8,0xe9,0x00,0x23, + 0x27,0x9b,0x28,0x94,0x01,0x33,0x07,0x2b,0x27,0x93,0x00,0xf3,0x23,0x84,0x08,0xf1, + 0x08,0x08,0x12,0x9b,0x5d,0x1e,0x00,0x2d,0x7f,0xf7,0xd5,0xad,0x10,0x2d,0x27,0x9b, + 0x41,0xf3,0x67,0x81,0xad,0x4f,0x0e,0x97,0x22,0x46,0x10,0x26,0x19,0xee,0x10,0x4a, + 0x05,0xe0,0x08,0xf1,0x08,0x08,0x10,0x3d,0x10,0x2d,0x40,0xf3,0xc1,0x84,0x01,0x33, + 0x10,0x32,0x07,0x2b,0xc8,0xe9,0x00,0x76,0xcd,0xe9,0x27,0x32,0xf1,0xdd,0x26,0xaa, + 0x21,0x46,0x48,0x46,0x04,0xf0,0x89,0xf9,0x00,0x28,0x7f,0xf4,0x22,0xad,0xdd,0xe9, + 0x27,0x32,0x0d,0xf1,0xa4,0x08,0xe6,0xe7,0x09,0x9b,0x07,0x9a,0x9e,0x1a,0x00,0x2e, + 0x7f,0xf7,0x90,0xad,0x10,0x2e,0x27,0x9b,0x41,0xf3,0x3c,0x80,0x97,0x49,0x0f,0x95, + 0x22,0x46,0x19,0xee,0x10,0x5a,0x0e,0x91,0x0c,0x46,0x04,0xe0,0x10,0x3e,0x10,0x2e, + 0x08,0xf1,0x08,0x08,0x19,0xdd,0x01,0x33,0x10,0x32,0x10,0x21,0x07,0x2b,0xcd,0xe9, + 0x27,0x32,0xc8,0xf8,0x00,0x40,0xc8,0xf8,0x04,0x10,0xef,0xdd,0x26,0xaa,0x29,0x46, + 0x48,0x46,0x0d,0xf1,0xa4,0x08,0x04,0xf0,0x58,0xf9,0x00,0x28,0x7f,0xf4,0xf1,0xac, + 0x10,0x3e,0x10,0x2e,0xdd,0xe9,0x27,0x32,0xe5,0xdc,0x0f,0x9d,0x14,0x46,0x01,0x33, + 0x0e,0x9a,0xc8,0xf8,0x00,0x20,0x34,0x44,0x07,0x2b,0xcd,0xe9,0x27,0x34,0xc8,0xf8, + 0x04,0x60,0x00,0xf3,0xa9,0x83,0x08,0x9b,0x0b,0x9a,0x9e,0x1a,0x00,0x2e,0x08,0xf1, + 0x08,0x08,0x7f,0xf7,0x55,0xad,0x10,0x2e,0x27,0x9b,0x40,0xf3,0x0f,0x85,0x76,0x48, + 0x0e,0x90,0x42,0x46,0x21,0x46,0x19,0xee,0x10,0x8a,0x04,0x46,0x04,0xe0,0x10,0x3e, + 0x10,0x2e,0x02,0xf1,0x08,0x02,0x16,0xdd,0x01,0x33,0x10,0x31,0x10,0x20,0x07,0x2b, + 0xcd,0xe9,0x27,0x31,0x14,0x60,0x50,0x60,0xf1,0xdd,0x26,0xaa,0x41,0x46,0x48,0x46, + 0x04,0xf0,0x1b,0xf9,0x00,0x28,0x7f,0xf4,0xb4,0xac,0x10,0x3e,0x10,0x2e,0xdd,0xe9, + 0x27,0x31,0x29,0xaa,0xe8,0xdc,0x90,0x46,0x0c,0x46,0x01,0x33,0x0e,0x9a,0xc8,0xf8, + 0x00,0x20,0x34,0x44,0x07,0x2b,0xcd,0xe9,0x27,0x34,0xc8,0xf8,0x04,0x60,0x00,0xf3, + 0xd4,0x81,0x08,0xf1,0x08,0x08,0x1b,0xe5,0x12,0x9b,0x01,0x2b,0x40,0xf3,0x73,0x81, + 0x27,0x9e,0xc8,0xf8,0x00,0x50,0x01,0x36,0x01,0x34,0x01,0x23,0x07,0x2e,0x28,0x94, + 0x27,0x96,0xc8,0xf8,0x04,0x30,0x00,0xf3,0x96,0x83,0x08,0xf1,0x08,0x08,0x16,0x9b, + 0x17,0x9a,0x01,0x36,0x1c,0x44,0x07,0x2e,0xc8,0xe9,0x00,0x23,0xcd,0xe9,0x27,0x64, + 0x00,0xf3,0x97,0x83,0x08,0xf1,0x08,0x08,0xdd,0xe9,0x14,0x01,0x00,0x22,0x00,0x23, + 0x05,0xf0,0x69,0xff,0x00,0x28,0x40,0xf0,0x7b,0x81,0x12,0x9b,0x01,0x36,0x01,0x3b, + 0x01,0x35,0x1c,0x44,0x07,0x2e,0xc8,0xf8,0x00,0x50,0x27,0x96,0xc8,0xf8,0x04,0x30, + 0x28,0x94,0x00,0xf3,0x51,0x81,0x08,0xf1,0x08,0x08,0x1a,0x9b,0xc8,0xf8,0x04,0x30, + 0x01,0x36,0x1c,0x44,0x07,0x2e,0x22,0xab,0xcd,0xe9,0x27,0x64,0xc8,0xf8,0x00,0x30, + 0x7f,0xf7,0xe7,0xac,0x19,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46,0x04,0xf0,0xb5,0xf8, + 0x00,0x28,0x7f,0xf4,0x4e,0xac,0x28,0x9c,0x0d,0xf1,0xa4,0x08,0xdb,0xe4,0x10,0x2e, + 0xdd,0xe9,0x27,0x32,0x22,0xdd,0x1d,0x95,0x10,0x24,0x19,0xee,0x10,0x5a,0x04,0xe0, + 0x10,0x3e,0x10,0x2e,0x08,0xf1,0x08,0x08,0x17,0xdd,0x01,0x33,0x2c,0x49,0x10,0x32, + 0x07,0x2b,0xc8,0xe9,0x00,0x14,0xcd,0xe9,0x27,0x32,0xf1,0xdd,0x26,0xaa,0x29,0x46, + 0x48,0x46,0x0d,0xf1,0xa4,0x08,0x04,0xf0,0x90,0xf8,0x00,0x28,0x7f,0xf4,0x29,0xac, + 0x10,0x3e,0x10,0x2e,0xdd,0xe9,0x27,0x32,0xe7,0xdc,0x1d,0x9d,0xc8,0xf8,0x04,0x60, + 0x01,0x33,0xb4,0x18,0x07,0x2b,0x1d,0x4a,0xc8,0xf8,0x00,0x20,0xcd,0xe9,0x27,0x34, + 0x00,0xf3,0x7d,0x83,0x9d,0xf8,0x7b,0x30,0x08,0xf1,0x08,0x08,0x60,0xe4,0xcd,0xf8, + 0x1c,0xa0,0x0a,0x2c,0x76,0xf1,0x00,0x03,0x80,0xf0,0x31,0x83,0x30,0x34,0x01,0x23, + 0xdd,0xf8,0x1c,0xa0,0x8d,0xf8,0x47,0x41,0x0b,0x93,0x0d,0xf2,0x47,0x15,0x64,0xe6, + 0x19,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46,0x04,0xf0,0x5f,0xf8,0x00,0x28,0x7f,0xf4, + 0xf8,0xab,0x28,0x9c,0x0d,0xf1,0xa4,0x08,0x55,0xe4,0x19,0xee,0x10,0x1a,0x26,0xaa, + 0x48,0x46,0x04,0xf0,0x52,0xf8,0x00,0x28,0x7f,0xf4,0xeb,0xab,0x28,0x9c,0x0d,0xf1, + 0xa4,0x08,0x5b,0xe4,0x00,0xbf,0x98,0x93,0x00,0x10,0xac,0x93,0x00,0x10,0x9c,0x93, + 0x00,0x10,0x10,0x2d,0x27,0x9b,0x20,0xdd,0x19,0xee,0x10,0x7a,0x10,0x26,0x04,0xe0, + 0x10,0x3d,0x10,0x2d,0x08,0xf1,0x08,0x08,0x17,0xdd,0x01,0x33,0xac,0x4a,0x10,0x34, + 0x07,0x2b,0xc8,0xe9,0x00,0x26,0xcd,0xe9,0x27,0x34,0xf1,0xdd,0x26,0xaa,0x39,0x46, + 0x48,0x46,0x0d,0xf1,0xa4,0x08,0x04,0xf0,0x28,0xf8,0x00,0x28,0x7f,0xf4,0xc1,0xab, + 0x10,0x3d,0x10,0x2d,0xdd,0xe9,0x27,0x34,0xe7,0xdc,0x01,0x33,0xa0,0x4a,0xc8,0xf8, + 0x04,0x50,0x2c,0x44,0x07,0x2b,0xcd,0xe9,0x27,0x34,0xc8,0xf8,0x00,0x20,0x7f,0xf7, + 0x4b,0xac,0x19,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46,0x04,0xf0,0x0e,0xf8,0x00,0x28, + 0x7f,0xf4,0xa7,0xab,0x28,0x9c,0x3f,0xe4,0x20,0x9a,0x00,0x2a,0x40,0xf3,0x2b,0x81, + 0xdd,0xe9,0x11,0x73,0x9f,0x42,0xa8,0xbf,0x1f,0x46,0x00,0x2f,0x0b,0xdd,0x27,0x9b, + 0x01,0x33,0x3c,0x44,0x07,0x2b,0xc8,0xe9,0x00,0x57,0x28,0x94,0x27,0x93,0x00,0xf3, + 0xd1,0x85,0x08,0xf1,0x08,0x08,0x11,0x9e,0x00,0x2f,0xa8,0xbf,0xf6,0x1b,0x00,0x2e, + 0x00,0xf3,0x44,0x83,0x11,0x9b,0x1a,0xf4,0x80,0x6f,0x2b,0x44,0x0b,0x93,0x40,0xf0, + 0xdf,0x84,0x20,0x9b,0x12,0x9a,0x93,0x42,0x03,0xdb,0x1a,0xf0,0x01,0x0f,0x00,0xf0, + 0xd2,0x83,0x16,0x9a,0x17,0x99,0x14,0x44,0xc8,0xe9,0x00,0x12,0x27,0x9a,0x28,0x94, + 0x01,0x32,0x07,0x2a,0x27,0x92,0x00,0xf3,0xbb,0x85,0x08,0xf1,0x08,0x08,0x12,0x9a, + 0x0b,0x99,0xae,0x18,0x76,0x1a,0xd5,0x1a,0xae,0x42,0xa8,0xbf,0x2e,0x46,0x00,0x2e, + 0x0d,0xdd,0x27,0x9b,0xc8,0xf8,0x00,0x10,0x01,0x33,0x34,0x44,0x07,0x2b,0xc8,0xf8, + 0x04,0x60,0x28,0x94,0x27,0x93,0x00,0xf3,0x06,0x86,0x08,0xf1,0x08,0x08,0x00,0x2e, + 0xa8,0xbf,0xad,0x1b,0x00,0x2d,0x7f,0xf7,0xde,0xab,0x10,0x2d,0x27,0x9b,0x40,0xf3, + 0x70,0x87,0x67,0x4f,0x0e,0x97,0x22,0x46,0x10,0x26,0x19,0xee,0x10,0x4a,0x05,0xe0, + 0x08,0xf1,0x08,0x08,0x10,0x3d,0x10,0x2d,0x40,0xf3,0xca,0x82,0x01,0x33,0x10,0x32, + 0x07,0x2b,0xc8,0xe9,0x00,0x76,0xcd,0xe9,0x27,0x32,0xf1,0xdd,0x26,0xaa,0x21,0x46, + 0x48,0x46,0x03,0xf0,0x92,0xff,0x00,0x28,0x7f,0xf4,0x2b,0xab,0xdd,0xe9,0x27,0x32, + 0x0d,0xf1,0xa4,0x08,0xe6,0xe7,0x1a,0xf0,0x01,0x0f,0x7f,0xf4,0x89,0xae,0x27,0x9e, + 0xc8,0xf8,0x00,0x50,0x01,0x36,0x01,0x34,0x01,0x23,0x07,0x2e,0x28,0x94,0x27,0x96, + 0xc8,0xf8,0x04,0x30,0x7f,0xf7,0xaf,0xae,0x19,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46, + 0x03,0xf0,0x73,0xff,0x00,0x28,0x7f,0xf4,0x0c,0xab,0xdd,0xe9,0x27,0x64,0x0d,0xf1, + 0xa4,0x08,0xa2,0xe6,0x30,0x2b,0x3f,0xf4,0x63,0xad,0x30,0x23,0x02,0x3a,0x05,0xf8, + 0x01,0x3c,0x52,0xab,0x9b,0x1a,0xdd,0xf8,0x1c,0xa0,0x0b,0x93,0x15,0x46,0x5c,0xe5, + 0x12,0x9b,0x5d,0x1e,0x00,0x2d,0x7f,0xf7,0x90,0xae,0x10,0x2d,0x40,0xf3,0x1f,0x87, + 0x3c,0x4a,0xcd,0xf8,0x20,0xa0,0x23,0x46,0x19,0xee,0x10,0xaa,0x0e,0x92,0x10,0x27, + 0x14,0x46,0x05,0xe0,0x08,0xf1,0x08,0x08,0x10,0x3d,0x10,0x2d,0x40,0xf3,0xe3,0x82, + 0x01,0x36,0x10,0x33,0x07,0x2e,0xc8,0xe9,0x00,0x47,0xcd,0xe9,0x27,0x63,0xf1,0xdd, + 0x26,0xaa,0x51,0x46,0x48,0x46,0x03,0xf0,0x38,0xff,0x00,0x28,0x7f,0xf4,0xd1,0xaa, + 0xdd,0xe9,0x27,0x63,0x0d,0xf1,0xa4,0x08,0xe6,0xe7,0x19,0xee,0x10,0x1a,0x26,0xaa, + 0x48,0x46,0x03,0xf0,0x2a,0xff,0x00,0x28,0x7f,0xf4,0xc3,0xaa,0x28,0x9c,0x0d,0xf1, + 0xa4,0x08,0xff,0xf7,0x3d,0xbb,0x1a,0xf0,0x10,0x03,0x40,0xf0,0x3e,0x81,0x1a,0xf0, + 0x40,0x02,0x00,0xf0,0xc8,0x82,0x0d,0x9a,0x52,0xf8,0x04,0x4b,0x0d,0x92,0x1e,0x46, + 0xa4,0xb2,0x2f,0xe4,0x07,0x9b,0x13,0xf0,0x10,0x03,0x66,0xd1,0x07,0x9a,0x12,0xf0, + 0x40,0x02,0x00,0xf0,0xc6,0x82,0x0d,0x9a,0x52,0xf8,0x04,0x4b,0x0d,0x92,0x1e,0x46, + 0xa4,0xb2,0x01,0x23,0x22,0xe4,0x53,0xf8,0x04,0x4b,0x0d,0x93,0x1a,0xf0,0x10,0x0f, + 0x4f,0xd1,0x1a,0xf0,0x40,0x0f,0x48,0xd0,0x44,0xf3,0xc0,0x36,0x33,0x46,0x24,0xb2, + 0xff,0xf7,0xba,0xbb,0x2d,0x23,0x64,0x42,0x8d,0xf8,0x7b,0x30,0x66,0xeb,0x46,0x06, + 0xcd,0xf8,0x1c,0xa0,0x01,0x23,0x0c,0xe4,0x1a,0xf0,0x01,0x0f,0x3f,0xf4,0x13,0xab, + 0x29,0xe5,0x9b,0xf8,0x00,0x70,0x0d,0x93,0xff,0xf7,0xa0,0xb9,0x00,0xbf,0x9c,0x93, + 0x00,0x10,0xac,0x93,0x00,0x10,0x27,0x9b,0xb6,0x49,0xc8,0xf8,0x00,0x10,0x01,0x33, + 0x01,0x34,0x01,0x21,0x07,0x2b,0x28,0x94,0x27,0x93,0xc8,0xf8,0x04,0x10,0x00,0xf3, + 0x80,0x84,0x08,0xf1,0x08,0x08,0x00,0x2a,0x40,0xf0,0x46,0x82,0x12,0x9a,0x0a,0xf0, + 0x01,0x03,0x13,0x43,0x3f,0xf4,0xef,0xaa,0x16,0x9b,0x17,0x9a,0x1c,0x44,0xc8,0xe9, + 0x00,0x23,0x27,0x9b,0x28,0x94,0x01,0x33,0x07,0x2b,0x27,0x93,0x00,0xf3,0x64,0x83, + 0x08,0xf1,0x08,0x08,0x41,0xe2,0x52,0xad,0xaf,0xe4,0x1a,0xf4,0x00,0x7f,0x40,0xf0, + 0xab,0x82,0xe6,0x17,0x33,0x46,0xff,0xf7,0x6f,0xbb,0x0d,0x9b,0x53,0xf8,0x04,0x4b, + 0x0d,0x93,0x01,0x23,0xff,0xf7,0xc2,0xbb,0xdd,0xe9,0x14,0x01,0x02,0x46,0x0b,0x46, + 0x05,0xf0,0x5b,0xfd,0x00,0x28,0x40,0xf0,0x2c,0x86,0x61,0x2f,0x00,0xf0,0x7d,0x85, + 0x41,0x2f,0x00,0xf0,0xa0,0x82,0x08,0x9b,0x01,0x33,0x27,0xf0,0x20,0x03,0x07,0x93, + 0x00,0xf0,0xc2,0x85,0x47,0x2b,0x00,0xf0,0xa9,0x85,0xdd,0xe9,0x14,0x01,0x4a,0xf4, + 0x80,0x72,0x00,0x29,0x0b,0x92,0x4f,0xf0,0x00,0x03,0xc0,0xf2,0x41,0x84,0x41,0xec, + 0x1b,0x0b,0x0e,0x93,0x0c,0x93,0x07,0x9b,0x46,0x2b,0x00,0xf0,0x70,0x84,0x45,0x2b, + 0x00,0xf0,0x22,0x85,0x08,0x9b,0x01,0x93,0x24,0xab,0x04,0x93,0x21,0xab,0x03,0x93, + 0x20,0xab,0x02,0x93,0x02,0x23,0x00,0x93,0x48,0x46,0x53,0xec,0x1b,0x2b,0x00,0xf0, + 0xc4,0xff,0x07,0x9b,0x47,0x2b,0x05,0x46,0x40,0xf0,0x5b,0x86,0x1a,0xf0,0x01,0x0f, + 0x56,0x46,0xdd,0xf8,0x2c,0xa0,0x40,0xf0,0xdf,0x84,0x24,0x9b,0x5b,0x1b,0x12,0x93, + 0x07,0x9b,0x47,0x2b,0x00,0xf0,0x16,0x83,0x07,0x9b,0x46,0x2b,0x00,0xf0,0x85,0x84, + 0x20,0x9b,0x11,0x93,0x11,0x9b,0x07,0x9a,0x01,0x3b,0x41,0x2a,0x20,0x93,0x00,0xf0, + 0xe6,0x85,0xfa,0xb2,0x00,0x21,0x00,0x2b,0xb8,0xbf,0x11,0x9b,0x8d,0xf8,0x88,0x20, + 0xba,0xbf,0xc3,0xf1,0x01,0x03,0x2d,0x22,0x2b,0x22,0x09,0x2b,0x8d,0xf8,0x89,0x20, + 0x40,0xf3,0x6e,0x85,0x0d,0xf1,0x97,0x04,0xdf,0xf8,0x98,0xc1,0x22,0x46,0x10,0x46, + 0x8c,0xfb,0x03,0x21,0xda,0x17,0xc2,0xeb,0xa1,0x02,0x02,0xeb,0x82,0x01,0xa3,0xeb, + 0x41,0x01,0x30,0x31,0x00,0xf8,0x01,0x1c,0x19,0x46,0x63,0x29,0x13,0x46,0x00,0xf1, + 0xff,0x32,0xec,0xdc,0x30,0x33,0xd9,0xb2,0x83,0x1e,0x9c,0x42,0x02,0xf8,0x01,0x1c, + 0x40,0xf2,0x0b,0x86,0x13,0x46,0x0d,0xf1,0x8a,0x02,0x01,0xe0,0x13,0xf8,0x01,0x1b, + 0x02,0xf8,0x01,0x1b,0x9c,0x42,0xf9,0xd1,0x0d,0xf1,0x99,0x03,0x0d,0xf1,0x8a,0x02, + 0x1b,0x1a,0x13,0x44,0x22,0xaa,0x9b,0x1a,0x1a,0x93,0x12,0x9b,0x1a,0x9a,0x01,0x2b, + 0x1a,0x44,0x0b,0x92,0x40,0xf3,0xaf,0x85,0x0b,0x9b,0x16,0x9a,0x13,0x44,0x0b,0x93, + 0x0b,0x9a,0x00,0x23,0x26,0xf4,0x80,0x66,0x22,0xea,0xe2,0x72,0x46,0xf4,0x80,0x7a, + 0x10,0x93,0x07,0x92,0x13,0x93,0x11,0x93,0x0e,0x9b,0x00,0x2b,0x40,0xf0,0xd9,0x82, + 0x08,0x93,0x9d,0xf8,0x7b,0x30,0xff,0xf7,0x7c,0xba,0x0d,0x9b,0x53,0xf8,0x04,0x4b, + 0x0d,0x93,0xff,0xf7,0xf7,0xba,0x0d,0x9b,0x0a,0x98,0x53,0xf8,0x04,0x1b,0x0d,0x93, + 0xc2,0x17,0xc1,0xe9,0x00,0x02,0x5d,0x46,0xff,0xf7,0x1c,0xba,0x19,0x9b,0x00,0x2b, + 0x3f,0xf4,0x12,0xa9,0x19,0x9b,0x1b,0x78,0x00,0x2b,0x3f,0xf4,0x0d,0xa9,0x9b,0xf8, + 0x00,0x70,0x4a,0xf4,0x80,0x6a,0xff,0xf7,0x81,0xb8,0xcd,0xf8,0x1c,0xa0,0xff,0xf7, + 0x4b,0xbb,0x28,0x4b,0x18,0x93,0x1a,0xf0,0x20,0x06,0x54,0xd0,0x0d,0x9b,0x07,0x33, + 0x23,0xf0,0x07,0x03,0x5e,0x68,0x53,0xf8,0x08,0x4b,0x0d,0x93,0x1a,0xf0,0x01,0x0f, + 0x09,0xd0,0x54,0xea,0x06,0x03,0x06,0xd0,0x30,0x23,0x8d,0xf8,0x7d,0x70,0x4a,0xf0, + 0x02,0x0a,0x8d,0xf8,0x7c,0x30,0x2a,0xf4,0x80,0x63,0x07,0x93,0x02,0x23,0xff,0xf7, + 0xbd,0xba,0x19,0x4b,0x18,0x93,0xde,0xe7,0x19,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46, + 0x03,0xf0,0x93,0xfd,0x00,0x28,0x7f,0xf4,0x2c,0xa9,0x28,0x9c,0x0d,0xf1,0xa4,0x08, + 0xff,0xf7,0xa0,0xb9,0x19,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46,0x03,0xf0,0x85,0xfd, + 0x00,0x28,0x7f,0xf4,0x1e,0xa9,0x28,0x9c,0x0d,0xf1,0xa4,0x08,0xff,0xf7,0xd1,0xbb, + 0x08,0x9a,0x0c,0x95,0x06,0x2a,0x29,0x46,0x28,0xbf,0x06,0x22,0x08,0x95,0x2b,0x46, + 0x07,0x92,0x06,0x4d,0x0d,0x94,0x0b,0x92,0x10,0x91,0x13,0x91,0x11,0x91,0xff,0xf7, + 0x08,0xba,0x98,0x93,0x00,0x10,0x68,0x93,0x00,0x10,0x7c,0x93,0x00,0x10,0x90,0x93, + 0x00,0x10,0x67,0x66,0x66,0x66,0x1a,0xf0,0x10,0x03,0x70,0xd0,0x0d,0x9b,0x53,0xf8, + 0x04,0x4b,0x0d,0x93,0xaa,0xe7,0x19,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46,0x03,0xf0, + 0x54,0xfd,0x00,0x28,0x7f,0xf4,0xed,0xa8,0xdd,0xe9,0x27,0x64,0x0d,0xf1,0xa4,0x08, + 0x5d,0xe4,0x19,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46,0x03,0xf0,0x46,0xfd,0x00,0x28, + 0x7f,0xf4,0xdf,0xa8,0xdd,0xe9,0x27,0x64,0x0d,0xf1,0xa4,0x08,0x5c,0xe4,0x07,0x9b, + 0x00,0x22,0x03,0xf4,0x80,0x63,0xcd,0xe9,0x0b,0x78,0x08,0xee,0x10,0x9a,0x0d,0xf5, + 0xa4,0x7a,0xdd,0xf8,0x64,0x90,0x17,0x46,0x98,0x46,0x0c,0xe0,0x00,0x23,0x20,0x46, + 0x31,0x46,0x0a,0x22,0x05,0xf0,0x27,0xfc,0x0a,0x2c,0x76,0xf1,0x00,0x03,0x1c,0xd3, + 0x04,0x46,0x0e,0x46,0xaa,0x46,0x20,0x46,0x0a,0x22,0x00,0x23,0x31,0x46,0x05,0xf0, + 0x1a,0xfc,0x30,0x32,0x0a,0xf1,0xff,0x35,0x01,0x37,0x0a,0xf8,0x01,0x2c,0xb8,0xf1, + 0x00,0x0f,0xe3,0xd0,0x99,0xf8,0x00,0x30,0x9f,0x42,0xdf,0xd1,0xff,0x2f,0xdd,0xd0, + 0x0a,0x2c,0x76,0xf1,0x00,0x03,0x80,0xf0,0xe5,0x80,0xcd,0xf8,0x64,0x90,0x12,0x97, + 0xdd,0xf8,0x30,0x80,0x0b,0x9f,0x18,0xee,0x10,0x9a,0xff,0xf7,0xf9,0xba,0x19,0xee, + 0x10,0x1a,0x26,0xaa,0x48,0x46,0x03,0xf0,0xf8,0xfc,0x00,0x28,0x7f,0xf4,0x91,0xa8, + 0x9d,0xf8,0x7b,0x30,0x28,0x9c,0x0d,0xf1,0xa4,0x08,0xff,0xf7,0xd9,0xb8,0x1a,0xf0, + 0x40,0x02,0x00,0xf0,0xb6,0x80,0x0d,0x9a,0x52,0xf8,0x04,0x4b,0x0d,0x92,0x1e,0x46, + 0xa4,0xb2,0x33,0xe7,0x19,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46,0x03,0xf0,0xdd,0xfc, + 0x00,0x28,0x7f,0xf4,0x76,0xa8,0x28,0x9c,0x0d,0xf1,0xa4,0x08,0xff,0xf7,0x16,0xbb, + 0x14,0x46,0x01,0x33,0x0e,0x9a,0xc8,0xf8,0x00,0x20,0x2c,0x44,0x07,0x2b,0xc8,0xf8, + 0x04,0x50,0xcd,0xe9,0x27,0x34,0x7f,0xf7,0xf4,0xa8,0x0b,0xe4,0x01,0x2b,0xcd,0xf8, + 0x1c,0xa0,0x7f,0xf4,0xad,0xaa,0x51,0xe4,0x0d,0x9b,0x0a,0x99,0x53,0xf8,0x04,0x2b, + 0x5d,0x46,0x11,0x60,0x0d,0x93,0xff,0xf7,0x05,0xb9,0x28,0x46,0x08,0x96,0x0d,0x94, + 0xfe,0xf7,0x8f,0xfe,0x20,0xea,0xe0,0x71,0x9d,0xf8,0x7b,0x30,0x0b,0x90,0x07,0x91, + 0x0c,0x96,0x10,0x96,0x13,0x96,0x11,0x96,0xff,0xf7,0x43,0xb9,0x10,0x2e,0x27,0x9b, + 0x40,0xf3,0x94,0x84,0xba,0x48,0x0e,0x90,0x42,0x46,0x21,0x46,0x19,0xee,0x10,0x8a, + 0x10,0x27,0x04,0x46,0x04,0xe0,0x08,0x32,0x10,0x3e,0x10,0x2e,0x40,0xf3,0x37,0x82, + 0x01,0x33,0x10,0x31,0x07,0x2b,0xc2,0xe9,0x00,0x47,0xcd,0xe9,0x27,0x31,0xf2,0xdd, + 0x26,0xaa,0x41,0x46,0x48,0x46,0x03,0xf0,0x88,0xfc,0x00,0x28,0x7f,0xf4,0x21,0xa8, + 0xdd,0xe9,0x27,0x31,0x29,0xaa,0xe7,0xe7,0x16,0x9b,0x17,0x99,0x1c,0x44,0xc8,0xe9, + 0x00,0x13,0x27,0x9b,0x28,0x94,0x01,0x33,0x07,0x2b,0x27,0x93,0x00,0xf3,0x24,0x81, + 0x08,0xf1,0x08,0x08,0x00,0x2a,0xc0,0xf2,0xfa,0x82,0x12,0x9a,0xc8,0xf8,0x00,0x50, + 0x01,0x33,0x14,0x44,0x07,0x2b,0xcd,0xe9,0x27,0x34,0xc8,0xf8,0x04,0x20,0x7f,0xf7, + 0x90,0xa8,0xff,0xf7,0xa7,0xbb,0xdd,0xf8,0x20,0xa0,0x1c,0x46,0x01,0x36,0x0e,0x9b, + 0xc8,0xf8,0x00,0x30,0x2c,0x44,0x07,0x2e,0xcd,0xe9,0x27,0x64,0xc8,0xf8,0x04,0x50, + 0x7f,0xf7,0x89,0xab,0xd8,0xe4,0x0d,0x9b,0x1a,0xf4,0x00,0x76,0x14,0xbf,0x53,0xf8, + 0x04,0x4b,0x53,0xf8,0x04,0x4b,0x0d,0x93,0x1c,0xbf,0x16,0x46,0xe4,0xb2,0xff,0xf7, + 0x61,0xb9,0x07,0x9b,0x13,0xf4,0x00,0x76,0x0d,0x9b,0x14,0xbf,0x53,0xf8,0x04,0x4b, + 0x53,0xf8,0x04,0x4b,0x0d,0x93,0x1c,0xbf,0x16,0x46,0xe4,0xb2,0x01,0x23,0xff,0xf7, + 0x55,0xb9,0x0d,0x9b,0x1a,0xf4,0x00,0x76,0x14,0xbf,0x53,0xf8,0x04,0x4b,0x53,0xf8, + 0x04,0x4b,0x0d,0x93,0x1c,0xbf,0x16,0x46,0xe4,0xb2,0x77,0xe6,0x7c,0x4a,0x0e,0x92, + 0xff,0xf7,0x13,0xbb,0x1c,0x9b,0x1b,0x99,0xed,0x1a,0x1a,0x46,0x28,0x46,0x03,0xf0, + 0xae,0xfb,0x99,0xf8,0x01,0x30,0x0b,0xb1,0x09,0xf1,0x01,0x09,0x20,0x46,0x31,0x46, + 0x0a,0x22,0x00,0x23,0x00,0x27,0x05,0xf0,0x0e,0xfb,0xe9,0xe6,0x2d,0x23,0x8d,0xf8, + 0x7b,0x30,0xff,0xf7,0x96,0xb8,0x12,0x9a,0x0b,0x99,0xae,0x18,0x76,0x1a,0xd5,0x1a, + 0xae,0x42,0xa8,0xbf,0x2e,0x46,0x4a,0xe4,0x44,0xf3,0xc0,0x16,0x33,0x46,0x64,0xb2, + 0xff,0xf7,0xc2,0xb8,0x0d,0x9b,0x0a,0x99,0x53,0xf8,0x04,0x2b,0x0d,0x93,0x11,0x80, + 0x5d,0x46,0xff,0xf7,0x3f,0xb8,0x30,0x23,0x8d,0xf8,0x7c,0x30,0x58,0x23,0x8d,0xf8, + 0x7d,0x30,0x08,0x9b,0x63,0x2b,0x4a,0xf0,0x02,0x04,0x00,0xf3,0xd3,0x82,0x00,0x23, + 0x0c,0x93,0x39,0xad,0xdd,0xe9,0x14,0x12,0x4a,0xf4,0x81,0x73,0x0b,0x93,0x00,0x2a, + 0x27,0xf0,0x20,0x03,0xa2,0x46,0x07,0x93,0xc0,0xf2,0x9b,0x81,0x00,0x23,0x42,0xec, + 0x1b,0x1b,0x0e,0x93,0x61,0x2f,0x00,0xf0,0x4c,0x83,0x41,0x2f,0x7f,0xf4,0x53,0xad, + 0x20,0xaa,0x51,0xec,0x1b,0x0b,0x03,0xf0,0xca,0xfa,0x00,0x22,0x4f,0xf0,0x7f,0x53, + 0x04,0xf0,0xe9,0xff,0x02,0x46,0x0b,0x46,0x43,0xec,0x18,0x2b,0x00,0x22,0x00,0x23, + 0x05,0xf0,0x49,0xfa,0x08,0xb1,0x01,0x23,0x20,0x93,0x45,0x4b,0x0f,0x93,0x08,0x9b, + 0x1d,0x95,0xcd,0xe9,0x10,0x7b,0xcd,0xe9,0x12,0xa8,0x0c,0xee,0x10,0x9a,0xdd,0xf8, + 0x3c,0xb0,0x59,0xec,0x18,0x8b,0x5e,0x1e,0x2c,0x46,0x05,0xe0,0x00,0x22,0x00,0x23, + 0x01,0x3e,0x05,0xf0,0x30,0xfa,0xe0,0xb9,0x3b,0x4b,0x00,0x22,0x40,0x46,0x49,0x46, + 0x04,0xf0,0xc1,0xff,0x89,0x46,0x80,0x46,0x05,0xf0,0x6d,0xfa,0x05,0x46,0x04,0xf0, + 0x50,0xff,0x0b,0x46,0x02,0x46,0x49,0x46,0x40,0x46,0x04,0xf0,0xfc,0xfd,0x1b,0xf8, + 0x05,0x30,0xa2,0x46,0x04,0xf8,0x01,0x3b,0x73,0x1c,0x37,0x46,0x80,0x46,0x89,0x46, + 0xdc,0xd1,0x49,0xec,0x18,0x8b,0x2c,0x4b,0xdd,0xf8,0x4c,0x80,0x51,0xec,0x18,0x0b, + 0x00,0x22,0x3e,0x46,0x1c,0xee,0x10,0x9a,0xdd,0xe9,0x10,0x7b,0xcd,0xf8,0x40,0xa0, + 0x11,0x95,0xdd,0xf8,0x48,0xa0,0x1d,0x9d,0x05,0xf0,0x25,0xfa,0x00,0x28,0x40,0xf0, + 0x38,0x82,0x51,0xec,0x18,0x0b,0x20,0x4b,0x00,0x22,0x05,0xf0,0xf4,0xf9,0x18,0xb1, + 0x11,0x9b,0xd9,0x07,0x00,0xf1,0x2d,0x82,0x00,0x2e,0x33,0x46,0x06,0xdb,0x01,0x33, + 0x23,0x44,0x30,0x22,0x04,0xf8,0x01,0x2b,0xa3,0x42,0xfb,0xd1,0x63,0x1b,0x56,0x46, + 0x12,0x93,0xdd,0xf8,0x2c,0xa0,0xfb,0xe4,0x19,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46, + 0x03,0xf0,0x4b,0xfb,0x00,0x28,0x7e,0xf4,0xe4,0xae,0xdd,0xe9,0x27,0x34,0x20,0x9a, + 0x0d,0xf1,0xa4,0x08,0xce,0xe6,0x19,0xee,0x10,0x3a,0x98,0x6d,0x02,0xf0,0xa7,0xf8, + 0xfe,0xf7,0xa3,0xbe,0x20,0x9b,0x11,0x93,0xda,0x1c,0x02,0xdb,0x08,0x9a,0x93,0x42, + 0x0d,0xdd,0x02,0x3f,0x27,0xf0,0x20,0x03,0x07,0x93,0xe3,0xe4,0x00,0xbf,0xac,0x93, + 0x00,0x10,0x7c,0x93,0x00,0x10,0x00,0x00,0x30,0x40,0x00,0x00,0xe0,0x3f,0xdd,0xe9, + 0x11,0x32,0x93,0x42,0xc0,0xf2,0x80,0x81,0xf0,0x07,0x40,0xf1,0x97,0x82,0x16,0x9a, + 0x13,0x44,0x0b,0x93,0x71,0x05,0x03,0xd5,0x11,0x9b,0x00,0x2b,0x00,0xf3,0x60,0x82, + 0x0b,0x9b,0x23,0xea,0xe3,0x73,0x07,0x93,0x67,0x27,0x00,0x23,0x10,0x93,0x13,0x93, + 0x22,0xe5,0x2d,0x23,0x00,0x22,0x8d,0xf8,0x7b,0x30,0x08,0x92,0xfe,0xf7,0xa4,0xbf, + 0x12,0x9b,0xcd,0xf8,0x38,0xb0,0xdd,0xf8,0x4c,0xb0,0x0b,0x9e,0x19,0x9f,0xcd,0xf8, + 0x2c,0xa0,0xeb,0x18,0x08,0x93,0x42,0x46,0xdd,0xf8,0x70,0xa0,0x10,0x9b,0x0f,0x95, + 0x19,0xee,0x10,0x8a,0xa4,0x46,0xbb,0xf1,0x00,0x0f,0x30,0xd0,0x00,0x2b,0x71,0xd1, + 0x01,0x3f,0x0b,0xf1,0xff,0x3b,0x1b,0x9b,0xc2,0xe9,0x00,0x3a,0x27,0x9b,0x01,0x33, + 0xd4,0x44,0x07,0x2b,0xcd,0xf8,0xa0,0xc0,0x27,0x93,0x67,0xdc,0x08,0x32,0x08,0x9b, + 0x38,0x78,0x9b,0x1b,0x83,0x42,0xa8,0xbf,0x03,0x46,0x00,0x2b,0x1c,0x46,0x0b,0xdd, + 0x27,0x98,0x01,0x30,0x9c,0x44,0x07,0x28,0xc2,0xe9,0x00,0x63,0xcd,0xf8,0xa0,0xc0, + 0x27,0x90,0x5f,0xdc,0x38,0x78,0x08,0x32,0x00,0x2c,0xac,0xbf,0x05,0x1b,0x05,0x46, + 0x00,0x2d,0x17,0xdc,0x06,0x44,0x10,0x9b,0xbb,0xf1,0x00,0x0f,0xce,0xd1,0x00,0x2b, + 0x40,0xd1,0x0f,0x9d,0x12,0x9b,0xdd,0xf8,0x2c,0xa0,0xdd,0xf8,0x38,0xb0,0x19,0x97, + 0xeb,0x18,0x9e,0x42,0x90,0x46,0x32,0x46,0x28,0xbf,0x1a,0x46,0x64,0x46,0x0b,0x92, + 0xff,0xf7,0xc7,0xba,0x10,0x2d,0x27,0x98,0x1f,0xdd,0x10,0x24,0x63,0x46,0x04,0xe0, + 0x10,0x3d,0x10,0x2d,0x02,0xf1,0x08,0x02,0x16,0xdd,0x01,0x30,0xb4,0x49,0x10,0x33, + 0x07,0x28,0xc2,0xe9,0x00,0x14,0xcd,0xe9,0x27,0x03,0xf1,0xdd,0x26,0xaa,0x41,0x46, + 0x48,0x46,0x03,0xf0,0x92,0xfa,0x00,0x28,0x7e,0xf4,0x2b,0xae,0x10,0x3d,0x10,0x2d, + 0xdd,0xe9,0x27,0x03,0x29,0xaa,0xe8,0xdc,0x9c,0x46,0x01,0x30,0xa8,0x4b,0x55,0x60, + 0xac,0x44,0x07,0x28,0xcd,0xe9,0x27,0x0c,0x13,0x60,0x4d,0xdc,0x38,0x78,0x08,0x32, + 0x06,0x44,0xb8,0xe7,0x10,0x9b,0x01,0x3b,0x10,0x93,0x8c,0xe7,0x26,0xaa,0x41,0x46, + 0x48,0x46,0x03,0xf0,0x72,0xfa,0x00,0x28,0x7e,0xf4,0x0b,0xae,0xdd,0xf8,0xa0,0xc0, + 0x29,0xaa,0x8c,0xe7,0x26,0xaa,0x41,0x46,0x48,0x46,0x03,0xf0,0x66,0xfa,0x00,0x28, + 0x7e,0xf4,0xff,0xad,0x38,0x78,0xdd,0xf8,0xa0,0xc0,0x29,0xaa,0x94,0xe7,0x90,0x46, + 0x0c,0x46,0x01,0x33,0x0e,0x9a,0xc8,0xf8,0x00,0x20,0x34,0x44,0x07,0x2b,0xcd,0xe9, + 0x27,0x34,0xc8,0xf8,0x04,0x60,0x00,0xf3,0x63,0x81,0x08,0xf1,0x08,0x08,0xff,0xf7, + 0x61,0xba,0x19,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46,0x03,0xf0,0x46,0xfa,0x00,0x28, + 0x7e,0xf4,0xdf,0xad,0x20,0x9a,0x28,0x9c,0x0d,0xf1,0xa4,0x08,0xff,0xf7,0x73,0xbb, + 0x0c,0x93,0xdd,0xe9,0x14,0x12,0x02,0xf1,0x00,0x43,0x0b,0xee,0x90,0x3a,0x2d,0x23, + 0x0b,0xee,0x10,0x1a,0x0e,0x93,0x5d,0xe6,0x26,0xaa,0x41,0x46,0x48,0x46,0x03,0xf0, + 0x2c,0xfa,0x00,0x28,0x7e,0xf4,0xc5,0xad,0x38,0x78,0xdd,0xf8,0xa0,0xc0,0x29,0xaa, + 0x06,0x44,0x60,0xe7,0x19,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46,0x03,0xf0,0x1d,0xfa, + 0x00,0x28,0x7e,0xf4,0xb6,0xad,0x28,0x9c,0x0d,0xf1,0xa4,0x08,0xff,0xf7,0x23,0xba, + 0x19,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46,0x03,0xf0,0x0f,0xfa,0x00,0x28,0x7e,0xf4, + 0xa8,0xad,0x20,0x9b,0x28,0x9c,0x0d,0xf1,0xa4,0x08,0xff,0xf7,0x38,0xba,0x08,0x9b, + 0x01,0x93,0x24,0xab,0x04,0x93,0x21,0xab,0x03,0x93,0x20,0xab,0x02,0x93,0x03,0x23, + 0x00,0x93,0x48,0x46,0x53,0xec,0x1b,0x2b,0x00,0xf0,0x57,0xfb,0x03,0x78,0x30,0x2b, + 0x05,0x46,0x00,0xf0,0x9a,0x81,0x20,0x9b,0x08,0x9a,0x56,0x46,0x13,0x44,0xdd,0xf8, + 0x2c,0xa0,0xec,0x18,0x51,0xec,0x1b,0x0b,0x00,0x22,0x00,0x23,0x05,0xf0,0x73,0xf8, + 0x10,0xb1,0x23,0x46,0xff,0xf7,0x8a,0xbb,0x24,0x9b,0xa3,0x42,0xbf,0xf4,0x86,0xab, + 0x30,0x21,0x5a,0x1c,0x24,0x92,0x19,0x70,0x24,0x9b,0x9c,0x42,0xf9,0xd8,0xff,0xf7, + 0x7d,0xbb,0x08,0x9b,0x07,0x93,0x0b,0x93,0x0d,0x94,0x9d,0xf8,0x7b,0x30,0x08,0x90, + 0x10,0x90,0x13,0x90,0x11,0x90,0xfe,0xf7,0x64,0xbe,0x20,0x9a,0x11,0x92,0x00,0x2a, + 0x40,0xf3,0x91,0x81,0x08,0x99,0x06,0xf0,0x01,0x03,0x0b,0x43,0x40,0xf0,0x30,0x81, + 0x11,0x9b,0x0b,0x93,0x66,0x27,0x73,0x05,0x00,0xf1,0x03,0x81,0x0b,0x9b,0x23,0xea, + 0xe3,0x73,0x07,0x93,0xa1,0xe6,0x19,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46,0x03,0xf0, + 0xac,0xf9,0x00,0x28,0x7e,0xf4,0x45,0xad,0x20,0x9d,0x12,0x9b,0x28,0x9c,0x5d,0x1b, + 0x0d,0xf1,0xa4,0x08,0xff,0xf7,0xeb,0xb9,0x12,0x9b,0x16,0x9a,0x9a,0x18,0x11,0x9b, + 0x0b,0x92,0x00,0x2b,0x40,0xf3,0x54,0x81,0x67,0x27,0xdc,0xe7,0x00,0x23,0x08,0x93, + 0xfe,0xf7,0x56,0xbc,0x19,0xee,0x10,0x1a,0x19,0xee,0x90,0x0a,0x26,0xaa,0x03,0xf0, + 0x8c,0xf9,0x00,0x28,0x3e,0xf4,0xde,0xad,0xfe,0xf7,0x2a,0xbd,0x6b,0x6e,0xdc,0x07, + 0x05,0xd4,0xab,0x89,0x98,0x05,0x02,0xd4,0xa8,0x6d,0x01,0xf0,0xe8,0xfe,0x4f,0xf0, + 0xff,0x33,0x0a,0x93,0xfe,0xf7,0x26,0xbd,0x08,0x9b,0xec,0x18,0x8a,0xe7,0x56,0x42, + 0x10,0x32,0x80,0xf2,0x70,0x81,0x1d,0x48,0x0e,0x90,0x42,0x46,0x21,0x46,0x19,0xee, + 0x10,0x8a,0x10,0x27,0x04,0x46,0x03,0xe0,0x08,0x32,0x10,0x3e,0x10,0x2e,0x5b,0xdd, + 0x01,0x33,0x10,0x31,0x07,0x2b,0xc2,0xe9,0x00,0x47,0xcd,0xe9,0x27,0x31,0xf3,0xdd, + 0x26,0xaa,0x41,0x46,0x48,0x46,0x03,0xf0,0x58,0xf9,0x00,0x28,0x7e,0xf4,0xf1,0xac, + 0xdd,0xe9,0x27,0x31,0x29,0xaa,0xe8,0xe7,0x08,0x9b,0x5c,0x1c,0x24,0xab,0x04,0x93, + 0x21,0xab,0x03,0x93,0x20,0xab,0x02,0x93,0x02,0x23,0x00,0x93,0x01,0x94,0x53,0xec, + 0x1b,0x2b,0x48,0x46,0x00,0xf0,0xa1,0xfa,0x05,0x46,0x56,0x46,0x2c,0x44,0xdd,0xf8, + 0x2c,0xa0,0x4f,0xe7,0x02,0x4a,0x0e,0x92,0xfe,0xf7,0xe9,0xbf,0x00,0xbf,0xac,0x93, + 0x00,0x10,0x10,0x9b,0x24,0x93,0x0f,0x9b,0x14,0xf8,0x01,0x2c,0xd9,0x7b,0x8a,0x42, + 0x23,0x46,0x09,0xd1,0x30,0x20,0x03,0xf8,0x01,0x0c,0x24,0x9b,0x5a,0x1e,0x24,0x92, + 0x13,0xf8,0x01,0x2c,0x91,0x42,0xf6,0xd0,0x39,0x2a,0x0b,0xbf,0x0f,0x9a,0x01,0x32, + 0x92,0x7a,0xd2,0xb2,0x03,0xf8,0x01,0x2c,0xc0,0xe5,0x30,0x23,0x8d,0xf8,0x7c,0x30, + 0x78,0x23,0x24,0xe5,0x59,0x1c,0x48,0x46,0x01,0xf0,0xeb,0xfe,0x05,0x46,0x00,0x28, + 0x00,0xf0,0x0c,0x81,0x0c,0x90,0x25,0xe5,0x90,0x46,0x0c,0x46,0x01,0x33,0x0e,0x9a, + 0xc8,0xf8,0x00,0x20,0x34,0x44,0x07,0x2b,0xcd,0xe9,0x27,0x34,0xc8,0xf8,0x04,0x60, + 0x7f,0xf7,0x46,0xaa,0x19,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46,0x03,0xf0,0xf5,0xf8, + 0x00,0x28,0x7e,0xf4,0x8e,0xac,0xdd,0xe9,0x27,0x34,0x0d,0xf1,0xa4,0x08,0x7c,0xe4, + 0x19,0xee,0x10,0x1a,0x26,0xaa,0x48,0x46,0x03,0xf0,0xe7,0xf8,0x00,0x28,0x7e,0xf4, + 0x80,0xac,0x28,0x9c,0x0d,0xf1,0xa4,0x08,0xff,0xf7,0xf4,0xb8,0x08,0x9b,0x00,0x2b, + 0x08,0xbf,0x01,0x23,0x08,0x93,0x15,0x9b,0x4a,0xf4,0x80,0x72,0x00,0x2b,0x0b,0x92, + 0xc0,0xf2,0x9b,0x80,0x9d,0xed,0x14,0x7b,0x0e,0x90,0x0c,0x90,0xb0,0xee,0x47,0xba, + 0xf0,0xee,0x67,0xba,0xff,0xf7,0x56,0xba,0x06,0x23,0x08,0x93,0xff,0xf7,0x3d,0xba, + 0x00,0x29,0x40,0xf0,0xa4,0x80,0x30,0x22,0x8d,0xf8,0x71,0x5c,0x64,0x4b,0x74,0x01, + 0x00,0x9a,0x5f,0x0a,0x8f,0x31,0xea,0xad,0x5b,0xa6,0x01,0x22,0x4e,0x14,0x1e,0xc2, + 0x41,0x29,0xe3,0xbb,0x28,0x6a,0xde,0x14,0xe7,0xe9,0x32,0xc6,0x87,0x2c,0x4b,0x69, + 0xa0,0x44,0x58,0xd7,0x23,0x1c,0xd7,0x9f,0x38,0x67,0xdb,0x8a,0xf3,0xad,0xf6,0xdf, + 0x36,0x1e,0x40,0x76,0x82,0xb6,0x60,0x7b,0x45,0xc3,0x99,0x66,0xa5,0xa5,0x62,0xe1, + 0x05,0x2a,0x00,0x02,0xc1,0x65,0xf7,0x73,0xf3,0x0d,0x77,0x43,0x72,0xd2,0xea,0x81, + 0x93,0x96,0x27,0x76,0x1c,0xdb,0xda,0xa9,0xa3,0x68,0xe8,0xe8,0x56,0x9d,0x84,0x30, + 0xd3,0xc7,0x67,0x5c,0x7b,0xe5,0x4e,0x9f,0x00,0xb6,0x1d,0x2c,0x0e,0xe7,0xf3,0x23, + 0xf1,0xc8,0xa6,0x7e,0x63,0x67,0x19,0x1d,0xde,0x5f,0x27,0xdd,0x6a,0x23,0x68,0x36, + 0xe3,0x9b,0x06,0xd5,0xe8,0x34,0x9a,0xbd,0x8b,0x1a,0xb9,0xf5,0x26,0x67,0x2b,0x59, + 0xaf,0x56,0xd0,0xd2,0x09,0xec,0x9d,0xf9,0x86,0x81,0x3a,0x75,0x58,0x8b,0xd1,0x7e, + 0x4d,0xfc,0xae,0x03,0xb3,0x67,0xab,0x85,0xd7,0x8d,0x74,0x9f,0x6d,0x87,0x73,0x23, + 0x0a,0xfc,0x94,0xef,0x3e,0xd4,0xdf,0xc3,0x20,0x4a,0x0b,0x93,0xc4,0x35,0xef,0xf9, + 0x60,0x74,0xe7,0x42,0x45,0x09,0x96,0xef,0xfe,0xd2,0xbe,0x8a,0x8d,0xbd,0x10,0x34, + 0x02,0x93,0x2a,0xa8,0xd6,0x1e,0x3e,0x91,0xbd,0x38,0x72,0xb0,0xc1,0x84,0x6a,0x05, + 0x5b,0x5e,0x08,0xbf,0x5f,0x8c,0x9a,0x13,0xad,0x92,0xab,0xda,0xdd,0x03,0x2b,0xec, + 0x23,0x2e,0xb8,0x2a,0xb6,0x4f,0xc8,0x08,0x2d,0x73,0xc3,0x7f,0xeb,0xe8 }; -static const unsigned char scp_0000017_ack[] = { 0xbe, 0xef, 0xed, 0x06, 0x00, 0x00, 0x96, 0xf9 }; +static const unsigned char scp_0000017_ack[] = { 0xbe,0xef,0xed,0x06,0x00,0x00,0x96,0xf9 }; -static const unsigned char scp_0000018_write_mem_response[] = { 0xbe, 0xef, 0xed, 0x05, 0x00, - 0x08, 0x97, 0x99, 0x59, 0x02, - 0x00, 0x04, 0x00, 0x00, 0x00, - 0x00, 0xbe, 0x2f, 0xc8, 0x32 }; +static const unsigned char scp_0000018_write_mem_response[] = { 0xbe,0xef,0xed,0x05,0x00, + 0x08,0x97,0x99,0x59,0x02, + 0x00,0x04,0x00,0x00,0x00, + 0x00,0xbe,0x2f,0xc8,0x32 }; -static const unsigned char scp_0000019_ack[] = { 0xbe, 0xef, 0xed, 0x06, 0x00, 0x00, 0x97, 0xe1 }; +static const unsigned char scp_0000019_ack[] = { 0xbe,0xef,0xed,0x06,0x00,0x00,0x97,0xe1 }; static const unsigned char scp_0000020_write_mem[] = { - 0xbe, 0xef, 0xed, 0x05, 0x1f, 0xf2, 0x98, 0x87, 0x59, 0x03, 0x1e, 0xee, 0x24, 0x02, 0x10, 0x00, - 0x3d, 0xc8, 0x00, 0x00, 0x1e, 0xe4, 0x8a, 0x20, 0x0d, 0xf1, 0x8b, 0x02, 0x30, 0x33, 0x02, 0xf8, - 0x01, 0x3b, 0x22, 0xab, 0xd3, 0x1a, 0x1a, 0x93, 0xff, 0xf7, 0xb5, 0xba, 0x67, 0x27, 0x19, 0x99, - 0x0b, 0x78, 0xff, 0x2b, 0x00, 0xf0, 0xa3, 0x80, 0x00, 0x24, 0x11, 0x9a, 0x20, 0x46, 0x03, 0xe0, - 0x01, 0x30, 0x01, 0x31, 0xff, 0x2b, 0x08, 0xd0, 0x93, 0x42, 0x06, 0xda, 0xd2, 0x1a, 0x4b, 0x78, - 0x00, 0x2b, 0xf5, 0xd1, 0x0b, 0x78, 0x01, 0x34, 0xf4, 0xe7, 0x19, 0x91, 0x11, 0x92, 0x13, 0x90, - 0x10, 0x94, 0x10, 0x9a, 0x13, 0x9b, 0x1c, 0x99, 0x13, 0x44, 0x0b, 0x9a, 0x01, 0xfb, 0x03, 0x23, - 0x0b, 0x93, 0x23, 0xea, 0xe3, 0x73, 0x07, 0x93, 0xff, 0xf7, 0xa4, 0xba, 0x16, 0x9b, 0xd3, 0x18, - 0x19, 0x44, 0x0b, 0x91, 0x66, 0x27, 0xcc, 0xe6, 0x11, 0x9b, 0x0b, 0x93, 0x68, 0xe5, 0x20, 0xaa, - 0x51, 0xec, 0x1b, 0x0b, 0x02, 0xf0, 0x81, 0xff, 0x00, 0x22, 0x4f, 0xf0, 0x7f, 0x53, 0x04, 0xf0, - 0xa0, 0xfc, 0x02, 0x46, 0x0b, 0x46, 0x43, 0xec, 0x18, 0x2b, 0x00, 0x22, 0x00, 0x23, 0x04, 0xf0, - 0x00, 0xff, 0x08, 0xb1, 0x01, 0x23, 0x20, 0x93, 0x3c, 0x4b, 0x0f, 0x93, 0xb5, 0xe4, 0x15, 0x9b, - 0x3b, 0x4d, 0x3b, 0x4a, 0x00, 0x2b, 0xb6, 0xbf, 0x2d, 0x23, 0x9d, 0xf8, 0x7b, 0x30, 0x8d, 0xf8, - 0x7b, 0x30, 0x2a, 0xf0, 0x80, 0x0a, 0xfe, 0xf7, 0xee, 0xbc, 0x07, 0xf1, 0x0f, 0x02, 0xd2, 0xb2, - 0x01, 0x21, 0xff, 0xf7, 0x16, 0xba, 0x51, 0xec, 0x1b, 0x0b, 0x00, 0x22, 0x00, 0x23, 0x04, 0xf0, - 0xe0, 0xfe, 0x00, 0x28, 0x7f, 0xf4, 0x5d, 0xae, 0x08, 0x9b, 0xc3, 0xf1, 0x01, 0x03, 0x20, 0x93, - 0x58, 0xe6, 0xf4, 0x07, 0x7f, 0xf5, 0x52, 0xaa, 0xff, 0xf7, 0x4c, 0xba, 0xc3, 0xf1, 0x01, 0x03, - 0x1a, 0x44, 0x22, 0xea, 0xe2, 0x73, 0x0b, 0x92, 0x07, 0x93, 0x67, 0x27, 0x2b, 0xe5, 0x25, 0x4a, - 0x0e, 0x92, 0xff, 0xf7, 0x64, 0xbb, 0x0c, 0x90, 0xf9, 0xe5, 0x22, 0x4b, 0x0e, 0x93, 0xff, 0xf7, - 0xd3, 0xbb, 0x08, 0x9a, 0x06, 0xf0, 0x01, 0x06, 0x56, 0xea, 0x02, 0x03, 0x04, 0xd1, 0x01, 0x23, - 0x07, 0x93, 0x66, 0x27, 0x0b, 0x93, 0x16, 0xe5, 0x16, 0x9b, 0x01, 0x33, 0x1a, 0x44, 0x22, 0xea, - 0xe2, 0x73, 0x0b, 0x92, 0x07, 0x93, 0x66, 0x27, 0x0d, 0xe5, 0x0d, 0xf1, 0x8a, 0x02, 0x5d, 0xe7, - 0x0d, 0x9b, 0x9b, 0xf8, 0x01, 0x70, 0x93, 0x46, 0x53, 0xf8, 0x04, 0x2b, 0x0d, 0x93, 0x42, 0xea, - 0xe2, 0x72, 0x08, 0x92, 0xfe, 0xf7, 0xd0, 0xba, 0x0f, 0x4a, 0x0e, 0x92, 0xaf, 0xe5, 0x00, 0x23, - 0x10, 0x93, 0x13, 0x93, 0x6d, 0xe7, 0x02, 0x23, 0x1a, 0x93, 0xff, 0xf7, 0x04, 0xba, 0x08, 0x9c, - 0xc1, 0xe6, 0x08, 0x4a, 0x0e, 0x92, 0xf7, 0xe6, 0x19, 0xee, 0x10, 0x2a, 0x93, 0x89, 0x43, 0xf0, - 0x40, 0x03, 0x93, 0x81, 0xfe, 0xf7, 0x9a, 0xbb, 0x00, 0xbf, 0x68, 0x93, 0x00, 0x10, 0x60, 0x93, - 0x00, 0x10, 0x64, 0x93, 0x00, 0x10, 0xac, 0x93, 0x00, 0x10, 0x70, 0xb5, 0x0c, 0x46, 0x89, 0x89, - 0xad, 0xf5, 0x8e, 0x6d, 0x21, 0xf0, 0x02, 0x01, 0xad, 0xf8, 0x14, 0x10, 0x61, 0x6e, 0x1b, 0x91, - 0xe1, 0x89, 0xad, 0xf8, 0x16, 0x10, 0xe1, 0x69, 0x09, 0x91, 0x61, 0x6a, 0x0b, 0x91, 0x1c, 0xa9, - 0x02, 0x91, 0x06, 0x91, 0x4f, 0xf4, 0x80, 0x61, 0x06, 0x46, 0x04, 0x91, 0x07, 0x91, 0x18, 0xa8, - 0x00, 0x21, 0xcd, 0xe9, 0x00, 0x32, 0x08, 0x91, 0x01, 0xf0, 0x31, 0xfd, 0xdd, 0xe9, 0x00, 0x32, - 0x02, 0xa9, 0x30, 0x46, 0xfe, 0xf7, 0x13, 0xfa, 0x05, 0x1e, 0x07, 0xdb, 0x02, 0xa9, 0x30, 0x46, - 0x01, 0xf0, 0x53, 0xf9, 0x00, 0x28, 0x18, 0xbf, 0x4f, 0xf0, 0xff, 0x35, 0xbd, 0xf8, 0x14, 0x30, - 0x5b, 0x06, 0x03, 0xd5, 0xa3, 0x89, 0x43, 0xf0, 0x40, 0x03, 0xa3, 0x81, 0x18, 0x98, 0x01, 0xf0, - 0x18, 0xfd, 0x28, 0x46, 0x0d, 0xf5, 0x8e, 0x6d, 0x70, 0xbd, 0x38, 0xb5, 0x33, 0x4b, 0x1b, 0x68, - 0x05, 0x46, 0x0c, 0x46, 0x0b, 0xb1, 0x9a, 0x6b, 0x12, 0xb3, 0xb4, 0xf9, 0x0c, 0x30, 0x18, 0x07, - 0x9a, 0xb2, 0x25, 0xd5, 0x21, 0x69, 0x00, 0x29, 0x2d, 0xd0, 0x12, 0xf0, 0x01, 0x00, 0x07, 0xd0, - 0x00, 0x20, 0xa0, 0x60, 0x60, 0x69, 0x40, 0x42, 0xa0, 0x61, 0x39, 0xb1, 0x00, 0x20, 0x38, 0xbd, - 0x95, 0x07, 0x58, 0xbf, 0x60, 0x69, 0xa0, 0x60, 0x00, 0x29, 0xf7, 0xd1, 0x12, 0x06, 0x58, 0xbf, - 0x08, 0x46, 0xf4, 0xd5, 0x43, 0xf0, 0x40, 0x03, 0xa3, 0x81, 0x4f, 0xf0, 0xff, 0x30, 0x38, 0xbd, - 0x18, 0x46, 0x01, 0xf0, 0x46, 0xf9, 0xb4, 0xf9, 0x0c, 0x30, 0x18, 0x07, 0x9a, 0xb2, 0xd9, 0xd4, - 0xd1, 0x06, 0x2a, 0xd5, 0x52, 0x07, 0x14, 0xd4, 0x21, 0x69, 0x43, 0xf0, 0x08, 0x03, 0xa3, 0x81, - 0x9a, 0xb2, 0x00, 0x29, 0xd1, 0xd1, 0x02, 0xf4, 0x20, 0x70, 0xb0, 0xf5, 0x00, 0x7f, 0xcc, 0xd0, - 0x21, 0x46, 0x28, 0x46, 0x01, 0xf0, 0xd3, 0xfc, 0xb4, 0xf9, 0x0c, 0x30, 0x21, 0x69, 0x9a, 0xb2, - 0xc3, 0xe7, 0x21, 0x6b, 0x51, 0xb1, 0x04, 0xf1, 0x40, 0x02, 0x91, 0x42, 0x04, 0xd0, 0x28, 0x46, - 0x01, 0xf0, 0x17, 0xfa, 0xb4, 0xf9, 0x0c, 0x30, 0x00, 0x22, 0x22, 0x63, 0x21, 0x69, 0x00, 0x22, - 0xc4, 0xe9, 0x00, 0x12, 0x23, 0xf0, 0x24, 0x03, 0xd7, 0xe7, 0x09, 0x22, 0x43, 0xf0, 0x40, 0x03, - 0x2a, 0x60, 0x4f, 0xf0, 0xff, 0x30, 0xa3, 0x81, 0x38, 0xbd, 0x08, 0x00, 0x00, 0x20, 0x02, 0x4b, - 0x13, 0xb1, 0x02, 0x48, 0x00, 0xf0, 0x05, 0xb8, 0x70, 0x47, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x53, - 0x00, 0x10, 0x00, 0x23, 0x01, 0x46, 0x1a, 0x46, 0x18, 0x46, 0x03, 0xf0, 0x94, 0xbe, 0x2d, 0xe9, - 0xf0, 0x4f, 0x03, 0x69, 0x0c, 0x69, 0xa3, 0x42, 0x83, 0xb0, 0xc0, 0xf2, 0x87, 0x80, 0x01, 0x3c, - 0x01, 0xf1, 0x14, 0x05, 0xa3, 0x00, 0x00, 0xf1, 0x14, 0x08, 0x00, 0x93, 0x55, 0xf8, 0x24, 0x30, - 0x58, 0xf8, 0x24, 0x20, 0x01, 0x33, 0x81, 0x46, 0x9a, 0x42, 0x08, 0xeb, 0x84, 0x00, 0x05, 0xeb, - 0x84, 0x07, 0x01, 0x90, 0xb2, 0xfb, 0xf3, 0xf6, 0x3b, 0xd3, 0x00, 0x23, 0xae, 0x46, 0x40, 0x46, - 0x9b, 0x46, 0x5e, 0xf8, 0x04, 0xab, 0x02, 0x68, 0x1f, 0xfa, 0x8a, 0xfc, 0x06, 0xfb, 0x0c, 0x33, - 0x4f, 0xea, 0x13, 0x4c, 0x4f, 0xea, 0x1a, 0x4a, 0x06, 0xfb, 0x0a, 0xca, 0x1f, 0xfa, 0x83, 0xfc, - 0xab, 0xeb, 0x0c, 0x0c, 0x1f, 0xfa, 0x8a, 0xf3, 0x1c, 0xfa, 0x82, 0xfc, 0xc3, 0xeb, 0x12, 0x42, - 0x02, 0xeb, 0x2c, 0x42, 0x1f, 0xfa, 0x8c, 0xfc, 0x4c, 0xea, 0x02, 0x43, 0x77, 0x45, 0x40, 0xf8, - 0x04, 0x3b, 0x4f, 0xea, 0x22, 0x4b, 0x4f, 0xea, 0x1a, 0x43, 0xda, 0xd2, 0x00, 0x9b, 0x58, 0xf8, - 0x03, 0x30, 0x73, 0xb9, 0x01, 0x9b, 0x04, 0x3b, 0x98, 0x45, 0x04, 0xd3, 0x07, 0xe0, 0x98, 0x45, - 0x04, 0xf1, 0xff, 0x34, 0x03, 0xd2, 0x53, 0xf8, 0x04, 0x29, 0x00, 0x2a, 0xf7, 0xd0, 0xc9, 0xf8, - 0x10, 0x40, 0x48, 0x46, 0x02, 0xf0, 0xc3, 0xfa, 0x00, 0x28, 0x2b, 0xdb, 0x01, 0x36, 0x40, 0x46, - 0x00, 0x23, 0x55, 0xf8, 0x04, 0x1b, 0xd0, 0xf8, 0x00, 0xc0, 0x8a, 0xb2, 0x9a, 0x1a, 0x0b, 0x0c, - 0x12, 0xfa, 0x8c, 0xf2, 0xc3, 0xeb, 0x1c, 0x43, 0x03, 0xeb, 0x22, 0x43, 0x92, 0xb2, 0x42, 0xea, - 0x03, 0x42, 0xaf, 0x42, 0x40, 0xf8, 0x04, 0x2b, 0x4f, 0xea, 0x23, 0x43, 0xe9, 0xd2, 0x58, 0xf8, - 0x24, 0x20, 0x08, 0xeb, 0x84, 0x03, 0x6a, 0xb9, 0x04, 0x3b, 0x98, 0x45, 0x04, 0xd3, 0x07, 0xe0, - 0x98, 0x45, 0x04, 0xf1, 0xff, 0x34, 0x03, 0xd2, 0x53, 0xf8, 0x04, 0x29, 0x00, 0x2a, 0xf7, 0xd0, - 0xc9, 0xf8, 0x10, 0x40, 0x30, 0x46, 0x03, 0xb0, 0xbd, 0xe8, 0xf0, 0x8f, 0x00, 0x20, 0x03, 0xb0, - 0xbd, 0xe8, 0xf0, 0x8f, 0x00, 0xbf, 0x2d, 0xe9, 0xf0, 0x4f, 0x2d, 0xed, 0x06, 0x8b, 0x01, 0x6c, - 0x95, 0xb0, 0x90, 0x46, 0x99, 0x46, 0xcd, 0xe9, 0x04, 0x89, 0x27, 0x9d, 0x04, 0x46, 0x41, 0xb1, - 0x42, 0x6c, 0x4a, 0x60, 0x01, 0x23, 0x93, 0x40, 0x8b, 0x60, 0x02, 0xf0, 0x16, 0xf8, 0x00, 0x23, - 0x23, 0x64, 0xb9, 0xf1, 0x00, 0x0a, 0xb4, 0xbf, 0x01, 0x23, 0x00, 0x23, 0x2b, 0x60, 0x7b, 0x4b, - 0xbc, 0xbf, 0x2a, 0xf0, 0x00, 0x4a, 0xcd, 0xf8, 0x14, 0xa0, 0x33, 0xea, 0x0a, 0x03, 0x00, 0xf0, - 0xb2, 0x80, 0x9d, 0xed, 0x04, 0x7b, 0x00, 0x22, 0x51, 0xec, 0x17, 0x0b, 0xb0, 0xee, 0x47, 0x9a, - 0xf0, 0xee, 0x67, 0x9a, 0x00, 0x23, 0x04, 0xf0, 0xfc, 0xfc, 0x07, 0x46, 0x80, 0xb1, 0x26, 0x9a, - 0x01, 0x23, 0x13, 0x60, 0x28, 0x9b, 0x00, 0x2b, 0x00, 0xf0, 0xda, 0x82, 0x6d, 0x48, 0x18, 0x60, - 0x43, 0x1e, 0x03, 0x93, 0x03, 0x98, 0x15, 0xb0, 0xbd, 0xec, 0x06, 0x8b, 0xbd, 0xe8, 0xf0, 0x8f, - 0x12, 0xab, 0x01, 0x93, 0x13, 0xab, 0x00, 0x93, 0x20, 0x46, 0x53, 0xec, 0x19, 0x2b, 0xb0, 0xee, - 0x49, 0x8a, 0xf0, 0xee, 0x69, 0x8a, 0x02, 0xf0, 0x02, 0xfb, 0x5f, 0xea, 0x1a, 0x56, 0x05, 0x46, - 0x40, 0xf0, 0x99, 0x80, 0xdd, 0xe9, 0x12, 0x76, 0x3e, 0x44, 0x06, 0xf2, 0x32, 0x40, 0x20, 0x28, - 0x40, 0xf3, 0xaa, 0x83, 0xc0, 0xf1, 0x40, 0x00, 0x0a, 0xfa, 0x00, 0xfa, 0x06, 0xf2, 0x12, 0x40, - 0x28, 0xfa, 0x00, 0xf0, 0x4a, 0xea, 0x00, 0x00, 0x04, 0xf0, 0xe1, 0xf9, 0x01, 0x23, 0x01, 0x3e, - 0x0d, 0x93, 0xa1, 0xf1, 0xf8, 0x71, 0x53, 0x4b, 0x00, 0x22, 0x04, 0xf0, 0x9a, 0xf8, 0x49, 0xa3, - 0xd3, 0xe9, 0x00, 0x23, 0x04, 0xf0, 0x4d, 0xfa, 0x49, 0xa3, 0xd3, 0xe9, 0x00, 0x23, 0x04, 0xf0, - 0x92, 0xf8, 0x80, 0x46, 0x30, 0x46, 0x89, 0x46, 0x04, 0xf0, 0xd9, 0xf9, 0x46, 0xa3, 0xd3, 0xe9, - 0x00, 0x23, 0x04, 0xf0, 0x3e, 0xfa, 0x02, 0x46, 0x0b, 0x46, 0x40, 0x46, 0x49, 0x46, 0x04, 0xf0, - 0x82, 0xf8, 0x80, 0x46, 0x89, 0x46, 0x04, 0xf0, 0xe4, 0xfc, 0x00, 0x22, 0x83, 0x46, 0x00, 0x23, - 0x40, 0x46, 0x49, 0x46, 0x04, 0xf0, 0x9f, 0xfc, 0x00, 0x28, 0x40, 0xf0, 0x6c, 0x82, 0xbb, 0xf1, - 0x16, 0x0f, 0x00, 0xf2, 0x5b, 0x82, 0x3c, 0x4b, 0x03, 0xeb, 0xcb, 0x03, 0xd3, 0xe9, 0x00, 0x23, - 0x51, 0xec, 0x19, 0x0b, 0x04, 0xf0, 0x8f, 0xfc, 0x00, 0x28, 0x74, 0xd0, 0x00, 0x23, 0xbe, 0x1b, - 0x0c, 0x93, 0x73, 0x1e, 0x0b, 0xf1, 0xff, 0x3b, 0x06, 0x93, 0x00, 0xf1, 0x4e, 0x82, 0x00, 0x23, - 0x09, 0x93, 0xbb, 0xf1, 0x00, 0x0f, 0x6d, 0xda, 0x09, 0x9b, 0xcd, 0xf8, 0x1c, 0xb0, 0xa3, 0xeb, - 0x0b, 0x03, 0x09, 0x93, 0xcb, 0xf1, 0x00, 0x03, 0x0b, 0x93, 0x24, 0x9b, 0x09, 0x2b, 0x4f, 0xf0, - 0x00, 0x0b, 0x68, 0xd8, 0x05, 0x2b, 0x40, 0xf3, 0x3d, 0x83, 0x04, 0x3b, 0x24, 0x93, 0x00, 0x26, - 0x24, 0x9b, 0x02, 0x3b, 0x03, 0x2b, 0x00, 0xf2, 0x98, 0x86, 0xdf, 0xe8, 0x13, 0xf0, 0x4d, 0x04, - 0x4a, 0x04, 0x41, 0x04, 0x24, 0x04, 0x26, 0x9a, 0x42, 0xf2, 0x0f, 0x73, 0xca, 0xf3, 0x13, 0x0a, - 0x13, 0x60, 0x5a, 0xea, 0x08, 0x03, 0x1d, 0xd1, 0x28, 0x9b, 0x00, 0x2b, 0x00, 0xf0, 0x7c, 0x86, - 0x1b, 0x4b, 0x03, 0x93, 0x08, 0x33, 0x28, 0x9a, 0x03, 0x98, 0x13, 0x60, 0x15, 0xb0, 0xbd, 0xec, - 0x06, 0x8b, 0xbd, 0xe8, 0xf0, 0x8f, 0x18, 0xee, 0x90, 0x3a, 0xc3, 0xf3, 0x13, 0x03, 0x51, 0xec, - 0x19, 0x0b, 0x43, 0xf0, 0x7f, 0x51, 0x0d, 0x97, 0xa6, 0xf2, 0xff, 0x36, 0x12, 0x9f, 0x41, 0xf4, - 0x40, 0x11, 0x70, 0xe7, 0x28, 0x9b, 0x00, 0x2b, 0x40, 0xf0, 0xd9, 0x83, 0x0d, 0x4b, 0x03, 0x93, - 0x38, 0xe7, 0xaf, 0xf3, 0x00, 0x80, 0x61, 0x43, 0x6f, 0x63, 0xa7, 0x87, 0xd2, 0x3f, 0xb3, 0xc8, - 0x60, 0x8b, 0x28, 0x8a, 0xc6, 0x3f, 0xfb, 0x79, 0x9f, 0x50, 0x13, 0x44, 0xd3, 0x3f, 0x00, 0x00, - 0xf0, 0x7f, 0x99, 0x93, 0x00, 0x10, 0x00, 0x00, 0xf8, 0x3f, 0x08, 0x95, 0x00, 0x10, 0xc0, 0x93, - 0x00, 0x10, 0xbc, 0x93, 0x00, 0x10, 0xbe, 0x1b, 0x73, 0x1e, 0x06, 0x93, 0x00, 0xf1, 0x9a, 0x84, - 0x0c, 0x90, 0x09, 0x90, 0x06, 0x9b, 0x5b, 0x44, 0xcd, 0xe9, 0x06, 0x3b, 0x00, 0x23, 0x0b, 0x93, - 0x24, 0x9b, 0x09, 0x2b, 0x96, 0xd9, 0x00, 0x23, 0xcd, 0xe9, 0x24, 0x33, 0x01, 0x26, 0x4f, 0xf0, - 0xff, 0x33, 0x0a, 0x96, 0x08, 0x93, 0x08, 0x9b, 0x0f, 0x93, 0x00, 0x21, 0x61, 0x64, 0x20, 0x46, - 0x01, 0xf0, 0xc5, 0xfe, 0x03, 0x90, 0x00, 0x28, 0x00, 0xf0, 0x2f, 0x86, 0x03, 0x9b, 0x23, 0x64, - 0x08, 0x9b, 0x0e, 0x2b, 0x00, 0xf2, 0xf9, 0x80, 0x00, 0x2e, 0x00, 0xf0, 0xf6, 0x80, 0x07, 0x99, - 0x00, 0x29, 0x40, 0xf3, 0x71, 0x84, 0xbd, 0x4b, 0x01, 0xf0, 0x0f, 0x02, 0x03, 0xeb, 0xc2, 0x03, - 0x4f, 0xea, 0x21, 0x18, 0xc9, 0x05, 0xd3, 0xe9, 0x00, 0x67, 0x40, 0xf1, 0x03, 0x84, 0xb8, 0x4b, - 0x51, 0xec, 0x19, 0x0b, 0xd3, 0xe9, 0x08, 0x23, 0x04, 0xf0, 0x8d, 0xfa, 0x41, 0xec, 0x18, 0x0b, - 0x08, 0xf0, 0x0f, 0x08, 0x4f, 0xf0, 0x03, 0x0a, 0xb8, 0xf1, 0x00, 0x0f, 0x13, 0xd0, 0xdf, 0xf8, - 0xc0, 0x92, 0x18, 0xf0, 0x01, 0x0f, 0x09, 0xd0, 0x30, 0x46, 0x39, 0x46, 0xd9, 0xe9, 0x00, 0x23, - 0x04, 0xf0, 0x4f, 0xf9, 0x0a, 0xf1, 0x01, 0x0a, 0x06, 0x46, 0x0f, 0x46, 0x5f, 0xea, 0x68, 0x08, - 0x09, 0xf1, 0x08, 0x09, 0xed, 0xd1, 0x51, 0xec, 0x18, 0x0b, 0x32, 0x46, 0x3b, 0x46, 0x04, 0xf0, - 0x6a, 0xfa, 0x41, 0xec, 0x1a, 0x0b, 0x0c, 0x9b, 0x5b, 0xb1, 0x57, 0xec, 0x1a, 0x6b, 0xa1, 0x4b, - 0x1a, 0xee, 0x10, 0x0a, 0x00, 0x22, 0x39, 0x46, 0x04, 0xf0, 0xa5, 0xfb, 0x00, 0x28, 0x40, 0xf0, - 0x52, 0x85, 0x50, 0x46, 0x04, 0xf0, 0xc3, 0xf8, 0x53, 0xec, 0x1a, 0x2b, 0x04, 0xf0, 0x29, 0xf9, - 0x9a, 0x4b, 0x00, 0x22, 0x03, 0xf0, 0x6f, 0xff, 0x08, 0x9b, 0x80, 0x46, 0xa1, 0xf1, 0x50, 0x79, - 0x00, 0x2b, 0x00, 0xf0, 0xf3, 0x83, 0x07, 0x9b, 0x10, 0x93, 0x08, 0x9b, 0x0e, 0x93, 0x0a, 0x9b, - 0x00, 0x2b, 0x00, 0xf0, 0xc0, 0x84, 0x0e, 0x9a, 0x8d, 0x4b, 0x90, 0x49, 0xdd, 0xf8, 0x0c, 0xa0, - 0x03, 0xeb, 0xc2, 0x03, 0x53, 0xe9, 0x02, 0x23, 0x00, 0x20, 0x04, 0xf0, 0x34, 0xfa, 0x42, 0x46, - 0x4b, 0x46, 0x03, 0xf0, 0x4e, 0xff, 0x59, 0xec, 0x1a, 0x8b, 0x41, 0xec, 0x18, 0x0b, 0x49, 0x46, - 0x1a, 0xee, 0x10, 0x0a, 0x04, 0xf0, 0xad, 0xfb, 0x07, 0x46, 0x04, 0xf0, 0x90, 0xf8, 0x02, 0x46, - 0x0b, 0x46, 0x1a, 0xee, 0x10, 0x0a, 0x49, 0x46, 0x03, 0xf0, 0x3b, 0xff, 0x30, 0x37, 0x0a, 0xf8, - 0x01, 0x7b, 0x53, 0xec, 0x18, 0x2b, 0x06, 0x46, 0x0f, 0x46, 0x04, 0xf0, 0x5c, 0xfb, 0x00, 0x28, - 0x40, 0xf0, 0x55, 0x85, 0x4f, 0xf0, 0x00, 0x08, 0x0a, 0xee, 0x10, 0x5a, 0xcd, 0xf8, 0x44, 0xb0, - 0x55, 0x46, 0x5b, 0xec, 0x18, 0xab, 0x08, 0xee, 0x10, 0x4a, 0x44, 0x46, 0x2a, 0xe0, 0x0e, 0x9b, - 0x01, 0x34, 0x9c, 0x42, 0x4b, 0xda, 0x72, 0x4b, 0x50, 0x46, 0x59, 0x46, 0x00, 0x22, 0x04, 0xf0, - 0xd0, 0xf8, 0x6f, 0x4b, 0x00, 0x22, 0x82, 0x46, 0x8b, 0x46, 0x30, 0x46, 0x39, 0x46, 0x04, 0xf0, - 0xc8, 0xf8, 0x89, 0x46, 0x80, 0x46, 0x04, 0xf0, 0x74, 0xfb, 0x07, 0x46, 0x04, 0xf0, 0x57, 0xf8, - 0x02, 0x46, 0x0b, 0x46, 0x40, 0x46, 0x49, 0x46, 0x03, 0xf0, 0x03, 0xff, 0x30, 0x37, 0x05, 0xf8, - 0x01, 0x7b, 0x52, 0x46, 0x5b, 0x46, 0x06, 0x46, 0x0f, 0x46, 0x04, 0xf0, 0x24, 0xfb, 0x00, 0x28, - 0x40, 0xf0, 0x18, 0x85, 0x32, 0x46, 0x3b, 0x46, 0x5b, 0x49, 0x00, 0x20, 0x03, 0xf0, 0xf1, 0xfe, - 0x52, 0x46, 0x5b, 0x46, 0x04, 0xf0, 0x17, 0xfb, 0x00, 0x28, 0xc8, 0xd0, 0x10, 0x9b, 0x03, 0x9a, - 0x07, 0x93, 0xaa, 0x46, 0x18, 0xee, 0x10, 0x4a, 0x1a, 0xee, 0x10, 0x5a, 0x02, 0xe0, 0x92, 0x45, - 0x00, 0xf0, 0xea, 0x84, 0xd1, 0x46, 0x1a, 0xf8, 0x01, 0x3d, 0x39, 0x2b, 0xf7, 0xd0, 0x01, 0x33, - 0xdb, 0xb2, 0x8a, 0xf8, 0x00, 0x30, 0x07, 0x9b, 0x01, 0x33, 0x07, 0x93, 0xab, 0xe1, 0xdd, 0xf8, - 0x44, 0xb0, 0x1a, 0xee, 0x10, 0x5a, 0x18, 0xee, 0x10, 0x4a, 0x13, 0x9b, 0x00, 0x2b, 0xc0, 0xf2, - 0x94, 0x80, 0x07, 0x9a, 0x0e, 0x2a, 0x00, 0xf3, 0x90, 0x80, 0x40, 0x4b, 0x03, 0xeb, 0xc2, 0x03, - 0xd3, 0xe9, 0x00, 0x89, 0x25, 0x9b, 0x00, 0x2b, 0x1b, 0xda, 0x08, 0x9b, 0x00, 0x2b, 0x18, 0xdc, - 0x40, 0xf0, 0x5d, 0x83, 0x40, 0x4b, 0x00, 0x22, 0x40, 0x46, 0x49, 0x46, 0x04, 0xf0, 0x69, 0xf8, - 0x02, 0x46, 0x0b, 0x46, 0x51, 0xec, 0x19, 0x0b, 0x04, 0xf0, 0xdf, 0xfa, 0xdd, 0xf8, 0x20, 0xa0, - 0x56, 0x46, 0x00, 0x28, 0x00, 0xf0, 0xd0, 0x82, 0x25, 0x9b, 0xdd, 0xf8, 0x0c, 0x80, 0xdf, 0x43, - 0xd2, 0xe2, 0x42, 0x46, 0x4b, 0x46, 0x51, 0xec, 0x19, 0x0b, 0x04, 0xf0, 0x7c, 0xf9, 0x04, 0xf0, - 0x00, 0xfb, 0x06, 0x46, 0x83, 0x46, 0x03, 0xf0, 0xe2, 0xff, 0x42, 0x46, 0x4b, 0x46, 0x04, 0xf0, - 0x48, 0xf8, 0x0b, 0x46, 0x02, 0x46, 0x51, 0xec, 0x19, 0x0b, 0x03, 0xf0, 0x8a, 0xfe, 0xdd, 0xf8, - 0x0c, 0xa0, 0x33, 0x46, 0x30, 0x33, 0x0a, 0xf8, 0x01, 0x3b, 0x08, 0x9b, 0x01, 0x2b, 0x00, 0xf0, - 0x8e, 0x83, 0x4f, 0xf0, 0x01, 0x0b, 0x08, 0xee, 0x10, 0x5a, 0x08, 0xee, 0x90, 0x4a, 0x1d, 0x46, - 0x54, 0x46, 0xda, 0x46, 0x1d, 0xe0, 0x42, 0x46, 0x4b, 0x46, 0x30, 0x46, 0x39, 0x46, 0x04, 0xf0, - 0x52, 0xf9, 0x04, 0xf0, 0xd6, 0xfa, 0x83, 0x46, 0x03, 0xf0, 0xb9, 0xff, 0x42, 0x46, 0x4b, 0x46, - 0x04, 0xf0, 0x1f, 0xf8, 0x0a, 0xf1, 0x01, 0x0a, 0x0b, 0x46, 0x02, 0x46, 0x39, 0x46, 0x30, 0x46, - 0x03, 0xf0, 0x5f, 0xfe, 0x0b, 0xf1, 0x30, 0x03, 0xaa, 0x45, 0x04, 0xf8, 0x01, 0x3b, 0x00, 0xf0, - 0x61, 0x83, 0x0f, 0x4b, 0x00, 0x22, 0x04, 0xf0, 0x0c, 0xf8, 0x00, 0x22, 0x00, 0x23, 0x06, 0x46, - 0x0f, 0x46, 0x04, 0xf0, 0x6e, 0xfa, 0x00, 0x28, 0xd5, 0xd0, 0xa2, 0x46, 0x18, 0xee, 0x10, 0x5a, - 0x18, 0xee, 0x90, 0x4a, 0x07, 0x9b, 0x01, 0x33, 0x07, 0x93, 0xd1, 0x46, 0x1b, 0xe1, 0x08, 0x95, - 0x00, 0x10, 0xe0, 0x94, 0x00, 0x10, 0x00, 0x00, 0xf0, 0x3f, 0x00, 0x00, 0x1c, 0x40, 0x00, 0x00, - 0xe0, 0x3f, 0x00, 0x00, 0x24, 0x40, 0x00, 0x00, 0x14, 0x40, 0x0a, 0x9a, 0x00, 0x2a, 0x3f, 0xd0, - 0x24, 0x9a, 0x01, 0x2a, 0x40, 0xf3, 0x9c, 0x82, 0x08, 0x9b, 0x03, 0xf1, 0xff, 0x38, 0x0b, 0x9b, - 0x43, 0x45, 0xc0, 0xf2, 0x6e, 0x82, 0xa3, 0xeb, 0x08, 0x08, 0x08, 0x9b, 0x00, 0x2b, 0xc0, 0xf2, - 0x66, 0x83, 0x06, 0x9a, 0x1a, 0x44, 0x06, 0x92, 0x09, 0x9a, 0x17, 0x46, 0x1a, 0x44, 0x09, 0x92, - 0x01, 0x21, 0x20, 0x46, 0x01, 0xf0, 0xdf, 0xfd, 0x06, 0x46, 0x25, 0xe0, 0x01, 0x23, 0xbe, 0x1b, - 0x0c, 0x93, 0x73, 0x1e, 0x06, 0x93, 0x7f, 0xf5, 0xb2, 0xad, 0xc6, 0xf1, 0x01, 0x03, 0x09, 0x93, - 0x00, 0x23, 0x06, 0x93, 0xad, 0xe5, 0x58, 0x46, 0x03, 0xf0, 0x51, 0xff, 0x42, 0x46, 0x4b, 0x46, - 0x04, 0xf0, 0x1f, 0xfa, 0x00, 0x28, 0x7f, 0xf4, 0x8a, 0xad, 0x0b, 0xf1, 0xff, 0x3b, 0x86, 0xe5, - 0x87, 0x4b, 0x03, 0x93, 0x03, 0x98, 0x15, 0xb0, 0xbd, 0xec, 0x06, 0x8b, 0xbd, 0xe8, 0xf0, 0x8f, - 0xdd, 0xe9, 0x09, 0x76, 0xdd, 0xf8, 0x2c, 0x80, 0x00, 0x2f, 0x0c, 0xdd, 0x06, 0x9a, 0x00, 0x2a, - 0x09, 0xdd, 0x09, 0x99, 0xba, 0x42, 0x13, 0x46, 0xa8, 0xbf, 0x3b, 0x46, 0xc9, 0x1a, 0xff, 0x1a, - 0xd3, 0x1a, 0x09, 0x91, 0x06, 0x93, 0x0b, 0x9b, 0xdb, 0xb1, 0x0a, 0x9b, 0x00, 0x2b, 0x00, 0xf0, - 0x82, 0x82, 0xb8, 0xf1, 0x00, 0x0f, 0x0f, 0xdd, 0x31, 0x46, 0x42, 0x46, 0x20, 0x46, 0x01, 0xf0, - 0x76, 0xfe, 0x2a, 0x46, 0x01, 0x46, 0x06, 0x46, 0x20, 0x46, 0x01, 0xf0, 0xc2, 0xfd, 0x29, 0x46, - 0x05, 0x46, 0x20, 0x46, 0x01, 0xf0, 0xe1, 0xfc, 0x0b, 0x9b, 0xb3, 0xeb, 0x08, 0x02, 0x40, 0xf0, - 0x00, 0x83, 0x01, 0x21, 0x20, 0x46, 0x01, 0xf0, 0x86, 0xfd, 0xbb, 0xf1, 0x00, 0x0f, 0x82, 0x46, - 0x00, 0xf3, 0xb7, 0x80, 0x24, 0x9b, 0x01, 0x2b, 0x40, 0xf3, 0x85, 0x81, 0x4f, 0xf0, 0x00, 0x09, - 0x01, 0x20, 0xbb, 0xf1, 0x00, 0x0f, 0x40, 0xf0, 0xb8, 0x80, 0x06, 0x9a, 0x10, 0x44, 0x10, 0xf0, - 0x1f, 0x00, 0x00, 0xf0, 0x96, 0x80, 0xc0, 0xf1, 0x20, 0x03, 0x04, 0x2b, 0x40, 0xf3, 0xf8, 0x83, - 0x09, 0x9b, 0xc0, 0xf1, 0x1c, 0x00, 0x03, 0x44, 0x02, 0x44, 0x09, 0x93, 0x07, 0x44, 0x06, 0x92, - 0x09, 0x9b, 0x00, 0x2b, 0x05, 0xdd, 0x29, 0x46, 0x1a, 0x46, 0x20, 0x46, 0x01, 0xf0, 0x97, 0xfe, - 0x05, 0x46, 0x06, 0x9b, 0x00, 0x2b, 0x05, 0xdd, 0x51, 0x46, 0x1a, 0x46, 0x20, 0x46, 0x01, 0xf0, - 0x8e, 0xfe, 0x82, 0x46, 0x0c, 0x9b, 0x00, 0x2b, 0x40, 0xf0, 0x36, 0x81, 0x08, 0x9b, 0x00, 0x2b, - 0x40, 0xf3, 0x1d, 0x81, 0x0a, 0x9b, 0x00, 0x2b, 0x40, 0xf0, 0xa0, 0x80, 0x07, 0x9b, 0x01, 0x33, - 0x07, 0x93, 0xdd, 0xf8, 0x0c, 0x80, 0xdd, 0xf8, 0x20, 0x90, 0x01, 0x27, 0x07, 0xe0, 0x29, 0x46, - 0x00, 0x23, 0x0a, 0x22, 0x20, 0x46, 0x01, 0xf0, 0x92, 0xfc, 0x01, 0x37, 0x05, 0x46, 0x51, 0x46, - 0x28, 0x46, 0xff, 0xf7, 0xc4, 0xfb, 0x4f, 0x45, 0x00, 0xf1, 0x30, 0x00, 0x08, 0xf8, 0x01, 0x0b, - 0xed, 0xdb, 0x08, 0x9a, 0x00, 0x2a, 0xc8, 0xbf, 0x93, 0x46, 0x03, 0x9a, 0xd8, 0xbf, 0x4f, 0xf0, - 0x01, 0x0b, 0x03, 0x46, 0x93, 0x44, 0x00, 0x27, 0x29, 0x46, 0x01, 0x22, 0x20, 0x46, 0x04, 0x93, - 0x01, 0xf0, 0x55, 0xfe, 0x51, 0x46, 0x05, 0x46, 0x01, 0xf0, 0xc9, 0xfe, 0x00, 0x28, 0x40, 0xf3, - 0xa5, 0x81, 0x1b, 0xf8, 0x01, 0x3c, 0x03, 0x9a, 0x0b, 0xf1, 0xff, 0x3b, 0x04, 0xe0, 0x5a, 0x45, - 0x00, 0xf0, 0xa7, 0x81, 0x1b, 0xf8, 0x01, 0x3d, 0x39, 0x2b, 0x0b, 0xf1, 0x01, 0x09, 0xf6, 0xd0, - 0x01, 0x33, 0x8b, 0xf8, 0x00, 0x30, 0x51, 0x46, 0x20, 0x46, 0x01, 0xf0, 0x4e, 0xfc, 0x56, 0xb1, - 0x2f, 0xb1, 0xb7, 0x42, 0x03, 0xd0, 0x39, 0x46, 0x20, 0x46, 0x01, 0xf0, 0x46, 0xfc, 0x31, 0x46, - 0x20, 0x46, 0x01, 0xf0, 0x42, 0xfc, 0x29, 0x46, 0x20, 0x46, 0x01, 0xf0, 0x3e, 0xfc, 0x00, 0x23, - 0x89, 0xf8, 0x00, 0x30, 0x26, 0x9b, 0x07, 0x9a, 0x1a, 0x60, 0x28, 0x9b, 0x00, 0x2b, 0x3f, 0xf4, - 0x49, 0xac, 0x03, 0x98, 0xc3, 0xf8, 0x00, 0x90, 0x15, 0xb0, 0xbd, 0xec, 0x06, 0x8b, 0xbd, 0xe8, - 0xf0, 0x8f, 0x1c, 0x20, 0x09, 0x9b, 0x03, 0x44, 0x09, 0x93, 0x06, 0x9b, 0x03, 0x44, 0x07, 0x44, - 0x06, 0x93, 0x6d, 0xe7, 0x01, 0x26, 0xc3, 0xe4, 0xc0, 0xf1, 0x20, 0x00, 0x08, 0xfa, 0x00, 0xf0, - 0x5a, 0xe4, 0x01, 0x46, 0x5a, 0x46, 0x20, 0x46, 0x01, 0xf0, 0xa1, 0xfd, 0x24, 0x9b, 0x01, 0x2b, - 0x82, 0x46, 0x40, 0xf3, 0xd5, 0x81, 0x4f, 0xf0, 0x00, 0x09, 0xda, 0xf8, 0x10, 0x30, 0x0a, 0xeb, - 0x83, 0x03, 0x18, 0x69, 0x01, 0xf0, 0x67, 0xfc, 0xc0, 0xf1, 0x20, 0x00, 0x3d, 0xe7, 0x98, 0x93, - 0x00, 0x10, 0x31, 0x46, 0x00, 0x23, 0x0a, 0x22, 0x20, 0x46, 0x01, 0xf0, 0x08, 0xfc, 0x0f, 0x9b, - 0x00, 0x2b, 0x06, 0x46, 0x40, 0xf3, 0x23, 0x83, 0xcd, 0xe9, 0x07, 0x83, 0x00, 0x2f, 0x00, 0xf3, - 0x19, 0x81, 0xb9, 0xf1, 0x00, 0x0f, 0x40, 0xf0, 0xfd, 0x81, 0xb0, 0x46, 0x04, 0x9b, 0x03, 0x9f, - 0x08, 0x99, 0x03, 0xf0, 0x01, 0x02, 0x7b, 0x1e, 0x19, 0x44, 0x24, 0x9b, 0x0b, 0x92, 0x13, 0x43, - 0x09, 0x91, 0x0a, 0x93, 0x51, 0x46, 0x28, 0x46, 0xff, 0xf7, 0x21, 0xfb, 0x31, 0x46, 0x83, 0x46, - 0x28, 0x46, 0x01, 0xf0, 0x3c, 0xfe, 0x42, 0x46, 0x51, 0x46, 0x81, 0x46, 0x20, 0x46, 0x01, 0xf0, - 0x58, 0xfe, 0xc2, 0x68, 0x01, 0x46, 0x0b, 0xf1, 0x30, 0x03, 0x00, 0x2a, 0x42, 0xd1, 0x06, 0x90, - 0x28, 0x46, 0x08, 0x93, 0x01, 0xf0, 0x2b, 0xfe, 0x06, 0x99, 0x04, 0x90, 0x20, 0x46, 0x01, 0xf0, - 0xc4, 0xfb, 0x04, 0x9a, 0x08, 0x9b, 0x1a, 0xb9, 0x0a, 0x99, 0x00, 0x29, 0x00, 0xf0, 0xd7, 0x82, - 0xb9, 0xf1, 0x00, 0x0f, 0xc0, 0xf2, 0x88, 0x81, 0x24, 0x99, 0x49, 0xea, 0x01, 0x09, 0x0b, 0x99, - 0x51, 0xea, 0x09, 0x01, 0x00, 0xf0, 0x80, 0x81, 0x00, 0x2a, 0x00, 0xf3, 0xe8, 0x81, 0x09, 0x9a, - 0x3b, 0x70, 0x07, 0xf1, 0x01, 0x09, 0x97, 0x42, 0xcb, 0x46, 0x00, 0xf0, 0xe6, 0x81, 0x29, 0x46, - 0x00, 0x23, 0x0a, 0x22, 0x20, 0x46, 0x01, 0xf0, 0xaa, 0xfb, 0x46, 0x45, 0x05, 0x46, 0x31, 0x46, - 0x4f, 0xf0, 0x00, 0x03, 0x4f, 0xf0, 0x0a, 0x02, 0x20, 0x46, 0x12, 0xd0, 0x01, 0xf0, 0x9f, 0xfb, - 0x41, 0x46, 0x06, 0x46, 0x00, 0x23, 0x0a, 0x22, 0x20, 0x46, 0x01, 0xf0, 0x98, 0xfb, 0x4f, 0x46, - 0x80, 0x46, 0xa7, 0xe7, 0x20, 0x46, 0x04, 0x93, 0x01, 0xf0, 0x87, 0xfb, 0x04, 0x9b, 0x01, 0x22, - 0xc6, 0xe7, 0x01, 0xf0, 0x8c, 0xfb, 0x4f, 0x46, 0x06, 0x46, 0x80, 0x46, 0x9a, 0xe7, 0x24, 0x9b, - 0x02, 0x2b, 0x78, 0xdc, 0x0a, 0x9b, 0x00, 0x2b, 0x80, 0xd1, 0x07, 0x9b, 0x51, 0x46, 0x01, 0x33, - 0x28, 0x46, 0x07, 0x93, 0xff, 0xf7, 0xb3, 0xfa, 0xdd, 0xf8, 0x0c, 0xb0, 0x00, 0xf1, 0x30, 0x03, - 0x0b, 0xf8, 0x01, 0x3b, 0x00, 0x27, 0xf7, 0xe6, 0x51, 0x46, 0x28, 0x46, 0x01, 0xf0, 0xc7, 0xfd, - 0x00, 0x28, 0xbf, 0xf6, 0xc3, 0xae, 0x29, 0x46, 0x00, 0x23, 0x0a, 0x22, 0x20, 0x46, 0x01, 0xf0, - 0x66, 0xfb, 0x07, 0x9b, 0x03, 0xf1, 0xff, 0x38, 0x0a, 0x9b, 0x05, 0x46, 0x00, 0x2b, 0x7f, 0xf4, - 0x50, 0xaf, 0x0f, 0x9b, 0x00, 0x2b, 0x40, 0xf3, 0x71, 0x82, 0x08, 0x93, 0xb9, 0xe6, 0xbd, 0x4b, - 0x03, 0x93, 0x03, 0x33, 0x07, 0xe4, 0xdd, 0xe9, 0x04, 0x12, 0x00, 0x29, 0x7f, 0xf4, 0x76, 0xae, - 0xc2, 0xf3, 0x13, 0x03, 0x00, 0x2b, 0x7f, 0xf4, 0x71, 0xae, 0xb7, 0x4b, 0x13, 0x40, 0x00, 0x2b, - 0x00, 0xf0, 0x3e, 0x82, 0x09, 0x9b, 0x01, 0x33, 0x09, 0x93, 0x06, 0x9b, 0x01, 0x33, 0x06, 0x93, - 0x4f, 0xf0, 0x01, 0x09, 0x64, 0xe6, 0x01, 0x23, 0x0a, 0x93, 0x25, 0x9b, 0x07, 0x9a, 0x13, 0x44, - 0x0f, 0x93, 0x01, 0x33, 0x01, 0x2b, 0x1f, 0x46, 0x08, 0x93, 0xb8, 0xbf, 0x01, 0x27, 0x00, 0x21, - 0x17, 0x2f, 0x61, 0x64, 0x7f, 0xf7, 0x33, 0xac, 0x01, 0x22, 0x04, 0x23, 0x5b, 0x00, 0x03, 0xf1, - 0x14, 0x00, 0xb8, 0x42, 0x11, 0x46, 0x02, 0xf1, 0x01, 0x02, 0xf7, 0xd9, 0x61, 0x64, 0x26, 0xe4, - 0x01, 0x23, 0x0a, 0x93, 0x25, 0x9b, 0x00, 0x2b, 0x4b, 0xdd, 0x0f, 0x93, 0x08, 0x93, 0x1f, 0x46, - 0xe5, 0xe7, 0x00, 0x23, 0x0a, 0x93, 0xd8, 0xe7, 0x00, 0x23, 0x0a, 0x93, 0xf2, 0xe7, 0x0f, 0x9b, - 0xcd, 0xf8, 0x1c, 0x80, 0x08, 0x93, 0x08, 0x9b, 0x00, 0x2b, 0x7f, 0xf4, 0x3d, 0xad, 0x51, 0x46, - 0x05, 0x22, 0x20, 0x46, 0x01, 0xf0, 0x03, 0xfb, 0x01, 0x46, 0x82, 0x46, 0x28, 0x46, 0x01, 0xf0, - 0x56, 0xfd, 0x00, 0x28, 0x7f, 0xf7, 0x30, 0xad, 0x03, 0x98, 0x07, 0x9f, 0x31, 0x23, 0x80, 0x46, - 0x00, 0xf8, 0x01, 0x3b, 0x01, 0x37, 0x03, 0x90, 0x51, 0x46, 0x20, 0x46, 0x01, 0xf0, 0xe5, 0xfa, - 0x7b, 0x1c, 0xdd, 0xf8, 0x0c, 0x90, 0x07, 0x93, 0xcd, 0xf8, 0x0c, 0x80, 0x00, 0x2e, 0x7f, 0xf4, - 0x96, 0xae, 0x98, 0xe6, 0x31, 0x46, 0x3a, 0x46, 0x20, 0x46, 0x01, 0xf0, 0xc0, 0xfc, 0x06, 0x46, - 0xdf, 0xe6, 0x0b, 0x9b, 0xcd, 0xf8, 0x2c, 0x80, 0xa8, 0xeb, 0x03, 0x03, 0x9b, 0x44, 0x4f, 0xf0, - 0x00, 0x08, 0x8a, 0xe5, 0x4f, 0xf0, 0x02, 0x0a, 0xb0, 0xee, 0x49, 0x8a, 0xf0, 0xee, 0x69, 0x8a, - 0x02, 0xe4, 0x01, 0x23, 0x25, 0x93, 0x08, 0x93, 0xff, 0xf7, 0xcd, 0xbb, 0x03, 0xd1, 0x04, 0x9b, - 0xdb, 0x07, 0x3f, 0xf5, 0x56, 0xae, 0xd9, 0x46, 0x1b, 0xf8, 0x01, 0x3d, 0x30, 0x2b, 0xfa, 0xd0, - 0x61, 0xe6, 0x07, 0x9b, 0x03, 0x9a, 0x01, 0x33, 0x07, 0x93, 0x31, 0x23, 0x13, 0x70, 0x5a, 0xe6, - 0x0d, 0x9a, 0x00, 0x2a, 0x00, 0xf0, 0x63, 0x81, 0x03, 0xf2, 0x33, 0x43, 0x06, 0x9a, 0xdd, 0xf8, - 0x2c, 0x80, 0x1a, 0x44, 0x06, 0x92, 0x09, 0x9a, 0x17, 0x46, 0x1a, 0x44, 0x09, 0x92, 0x67, 0xe5, - 0x50, 0x46, 0x03, 0xf0, 0xcc, 0xfc, 0x53, 0xec, 0x1a, 0x2b, 0x03, 0xf0, 0x32, 0xfd, 0x63, 0x4b, - 0x00, 0x22, 0x03, 0xf0, 0x78, 0xfb, 0x80, 0x46, 0xa1, 0xf1, 0x50, 0x79, 0x61, 0x4b, 0x00, 0x22, - 0x51, 0xec, 0x1a, 0x0b, 0x03, 0xf0, 0x6d, 0xfb, 0x42, 0x46, 0x4b, 0x46, 0x06, 0x46, 0x0f, 0x46, - 0x03, 0xf0, 0xaf, 0xff, 0x00, 0x28, 0x40, 0xf0, 0x7f, 0x81, 0x30, 0x46, 0x39, 0x46, 0x42, 0x46, - 0x09, 0xf1, 0x00, 0x43, 0x03, 0xf0, 0x87, 0xff, 0x00, 0x28, 0x3f, 0xf4, 0x8e, 0xac, 0x4f, 0xf0, - 0x00, 0x0a, 0x56, 0x46, 0xb0, 0xe4, 0x29, 0x46, 0x0b, 0x9a, 0x20, 0x46, 0x01, 0xf0, 0xf7, 0xfb, - 0x05, 0x46, 0x8e, 0xe5, 0x0c, 0x90, 0x40, 0xe5, 0x00, 0xf0, 0x4e, 0x81, 0x07, 0x9a, 0x4d, 0x4b, - 0x56, 0x42, 0x06, 0xf0, 0x0f, 0x02, 0x03, 0xeb, 0xc2, 0x03, 0xd3, 0xe9, 0x00, 0x23, 0x51, 0xec, - 0x19, 0x0b, 0x03, 0xf0, 0xf6, 0xfc, 0x36, 0x11, 0x41, 0xec, 0x1a, 0x0b, 0x00, 0xf0, 0x88, 0x81, - 0x46, 0x4f, 0x00, 0x23, 0x4f, 0xf0, 0x02, 0x0a, 0xf2, 0x07, 0x06, 0xd5, 0xd7, 0xe9, 0x00, 0x23, - 0x03, 0xf0, 0xe7, 0xfc, 0x0a, 0xf1, 0x01, 0x0a, 0x01, 0x23, 0x76, 0x10, 0x07, 0xf1, 0x08, 0x07, - 0xf2, 0xd1, 0x00, 0x2b, 0x3f, 0xf4, 0x9f, 0xab, 0x41, 0xec, 0x1a, 0x0b, 0xff, 0xf7, 0x9b, 0xbb, - 0x04, 0x9b, 0x00, 0x2b, 0x7f, 0xf4, 0x27, 0xae, 0xdd, 0xe9, 0x04, 0x12, 0xc2, 0xf3, 0x13, 0x03, - 0x00, 0x2b, 0x3f, 0xf4, 0xf2, 0xae, 0x1e, 0xe6, 0x00, 0x2a, 0x12, 0xdd, 0x29, 0x46, 0x01, 0x22, - 0x20, 0x46, 0x04, 0x93, 0x01, 0xf0, 0x13, 0xfc, 0x51, 0x46, 0x05, 0x46, 0x01, 0xf0, 0x87, 0xfc, - 0x00, 0x28, 0x04, 0x9b, 0x40, 0xf3, 0x35, 0x81, 0x39, 0x2b, 0x00, 0xf0, 0x13, 0x81, 0x0b, 0xf1, - 0x31, 0x03, 0xb9, 0x46, 0x09, 0xf8, 0x01, 0x3b, 0x07, 0x9b, 0x01, 0x33, 0x37, 0x46, 0x07, 0x93, - 0x46, 0x46, 0xc0, 0xe5, 0xa2, 0x46, 0x18, 0xee, 0x10, 0x5a, 0x18, 0xee, 0x90, 0x4a, 0x02, 0x46, - 0x0b, 0x46, 0x03, 0xf0, 0xf0, 0xfa, 0x42, 0x46, 0x4b, 0x46, 0x06, 0x46, 0x0f, 0x46, 0x03, 0xf0, - 0x30, 0xff, 0x60, 0xb9, 0x42, 0x46, 0x4b, 0x46, 0x30, 0x46, 0x39, 0x46, 0x03, 0xf0, 0x01, 0xff, - 0x00, 0x28, 0x3f, 0xf4, 0x97, 0xac, 0x5f, 0xea, 0xcb, 0x71, 0x7f, 0xf5, 0x93, 0xac, 0x03, 0x9a, - 0xff, 0xf7, 0xf8, 0xbb, 0x71, 0x68, 0x20, 0x46, 0x01, 0xf0, 0xc9, 0xf9, 0x07, 0x46, 0x00, 0x28, - 0x00, 0xf0, 0x3a, 0x81, 0x33, 0x69, 0x02, 0x33, 0x9a, 0x00, 0x06, 0xf1, 0x0c, 0x01, 0x0c, 0x30, - 0xfd, 0xf7, 0xcf, 0xf8, 0x39, 0x46, 0x01, 0x22, 0x20, 0x46, 0x01, 0xf0, 0xc8, 0xfb, 0x80, 0x46, - 0xec, 0xe5, 0x29, 0x46, 0x20, 0x46, 0x01, 0xf0, 0x62, 0xfb, 0x05, 0x46, 0xf9, 0xe4, 0xdd, 0xe9, - 0x08, 0x23, 0x9f, 0x1a, 0x9c, 0xe4, 0xbc, 0x93, 0x00, 0x10, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, - 0x1c, 0x40, 0x00, 0x00, 0x14, 0x40, 0x08, 0x95, 0x00, 0x10, 0xe0, 0x94, 0x00, 0x10, 0x39, 0x2b, - 0x00, 0xf0, 0xb8, 0x80, 0xb9, 0x46, 0x01, 0x33, 0xa4, 0xe7, 0x07, 0x9a, 0x01, 0x32, 0x37, 0x46, - 0x07, 0x92, 0x46, 0x46, 0x48, 0xe5, 0x0e, 0x98, 0x8d, 0x49, 0x01, 0xeb, 0xc0, 0x01, 0x42, 0x46, + 0xbe,0xef,0xed,0x05,0x1f,0xf2,0x98,0x87,0x59,0x03,0x1e,0xee,0x24,0x02,0x10,0x00, + 0x3d,0xc8,0x00,0x00,0x1e,0xe4,0x8a,0x20,0x0d,0xf1,0x8b,0x02,0x30,0x33,0x02,0xf8, + 0x01,0x3b,0x22,0xab,0xd3,0x1a,0x1a,0x93,0xff,0xf7,0xb5,0xba,0x67,0x27,0x19,0x99, + 0x0b,0x78,0xff,0x2b,0x00,0xf0,0xa3,0x80,0x00,0x24,0x11,0x9a,0x20,0x46,0x03,0xe0, + 0x01,0x30,0x01,0x31,0xff,0x2b,0x08,0xd0,0x93,0x42,0x06,0xda,0xd2,0x1a,0x4b,0x78, + 0x00,0x2b,0xf5,0xd1,0x0b,0x78,0x01,0x34,0xf4,0xe7,0x19,0x91,0x11,0x92,0x13,0x90, + 0x10,0x94,0x10,0x9a,0x13,0x9b,0x1c,0x99,0x13,0x44,0x0b,0x9a,0x01,0xfb,0x03,0x23, + 0x0b,0x93,0x23,0xea,0xe3,0x73,0x07,0x93,0xff,0xf7,0xa4,0xba,0x16,0x9b,0xd3,0x18, + 0x19,0x44,0x0b,0x91,0x66,0x27,0xcc,0xe6,0x11,0x9b,0x0b,0x93,0x68,0xe5,0x20,0xaa, + 0x51,0xec,0x1b,0x0b,0x02,0xf0,0x81,0xff,0x00,0x22,0x4f,0xf0,0x7f,0x53,0x04,0xf0, + 0xa0,0xfc,0x02,0x46,0x0b,0x46,0x43,0xec,0x18,0x2b,0x00,0x22,0x00,0x23,0x04,0xf0, + 0x00,0xff,0x08,0xb1,0x01,0x23,0x20,0x93,0x3c,0x4b,0x0f,0x93,0xb5,0xe4,0x15,0x9b, + 0x3b,0x4d,0x3b,0x4a,0x00,0x2b,0xb6,0xbf,0x2d,0x23,0x9d,0xf8,0x7b,0x30,0x8d,0xf8, + 0x7b,0x30,0x2a,0xf0,0x80,0x0a,0xfe,0xf7,0xee,0xbc,0x07,0xf1,0x0f,0x02,0xd2,0xb2, + 0x01,0x21,0xff,0xf7,0x16,0xba,0x51,0xec,0x1b,0x0b,0x00,0x22,0x00,0x23,0x04,0xf0, + 0xe0,0xfe,0x00,0x28,0x7f,0xf4,0x5d,0xae,0x08,0x9b,0xc3,0xf1,0x01,0x03,0x20,0x93, + 0x58,0xe6,0xf4,0x07,0x7f,0xf5,0x52,0xaa,0xff,0xf7,0x4c,0xba,0xc3,0xf1,0x01,0x03, + 0x1a,0x44,0x22,0xea,0xe2,0x73,0x0b,0x92,0x07,0x93,0x67,0x27,0x2b,0xe5,0x25,0x4a, + 0x0e,0x92,0xff,0xf7,0x64,0xbb,0x0c,0x90,0xf9,0xe5,0x22,0x4b,0x0e,0x93,0xff,0xf7, + 0xd3,0xbb,0x08,0x9a,0x06,0xf0,0x01,0x06,0x56,0xea,0x02,0x03,0x04,0xd1,0x01,0x23, + 0x07,0x93,0x66,0x27,0x0b,0x93,0x16,0xe5,0x16,0x9b,0x01,0x33,0x1a,0x44,0x22,0xea, + 0xe2,0x73,0x0b,0x92,0x07,0x93,0x66,0x27,0x0d,0xe5,0x0d,0xf1,0x8a,0x02,0x5d,0xe7, + 0x0d,0x9b,0x9b,0xf8,0x01,0x70,0x93,0x46,0x53,0xf8,0x04,0x2b,0x0d,0x93,0x42,0xea, + 0xe2,0x72,0x08,0x92,0xfe,0xf7,0xd0,0xba,0x0f,0x4a,0x0e,0x92,0xaf,0xe5,0x00,0x23, + 0x10,0x93,0x13,0x93,0x6d,0xe7,0x02,0x23,0x1a,0x93,0xff,0xf7,0x04,0xba,0x08,0x9c, + 0xc1,0xe6,0x08,0x4a,0x0e,0x92,0xf7,0xe6,0x19,0xee,0x10,0x2a,0x93,0x89,0x43,0xf0, + 0x40,0x03,0x93,0x81,0xfe,0xf7,0x9a,0xbb,0x00,0xbf,0x68,0x93,0x00,0x10,0x60,0x93, + 0x00,0x10,0x64,0x93,0x00,0x10,0xac,0x93,0x00,0x10,0x70,0xb5,0x0c,0x46,0x89,0x89, + 0xad,0xf5,0x8e,0x6d,0x21,0xf0,0x02,0x01,0xad,0xf8,0x14,0x10,0x61,0x6e,0x1b,0x91, + 0xe1,0x89,0xad,0xf8,0x16,0x10,0xe1,0x69,0x09,0x91,0x61,0x6a,0x0b,0x91,0x1c,0xa9, + 0x02,0x91,0x06,0x91,0x4f,0xf4,0x80,0x61,0x06,0x46,0x04,0x91,0x07,0x91,0x18,0xa8, + 0x00,0x21,0xcd,0xe9,0x00,0x32,0x08,0x91,0x01,0xf0,0x31,0xfd,0xdd,0xe9,0x00,0x32, + 0x02,0xa9,0x30,0x46,0xfe,0xf7,0x13,0xfa,0x05,0x1e,0x07,0xdb,0x02,0xa9,0x30,0x46, + 0x01,0xf0,0x53,0xf9,0x00,0x28,0x18,0xbf,0x4f,0xf0,0xff,0x35,0xbd,0xf8,0x14,0x30, + 0x5b,0x06,0x03,0xd5,0xa3,0x89,0x43,0xf0,0x40,0x03,0xa3,0x81,0x18,0x98,0x01,0xf0, + 0x18,0xfd,0x28,0x46,0x0d,0xf5,0x8e,0x6d,0x70,0xbd,0x38,0xb5,0x33,0x4b,0x1b,0x68, + 0x05,0x46,0x0c,0x46,0x0b,0xb1,0x9a,0x6b,0x12,0xb3,0xb4,0xf9,0x0c,0x30,0x18,0x07, + 0x9a,0xb2,0x25,0xd5,0x21,0x69,0x00,0x29,0x2d,0xd0,0x12,0xf0,0x01,0x00,0x07,0xd0, + 0x00,0x20,0xa0,0x60,0x60,0x69,0x40,0x42,0xa0,0x61,0x39,0xb1,0x00,0x20,0x38,0xbd, + 0x95,0x07,0x58,0xbf,0x60,0x69,0xa0,0x60,0x00,0x29,0xf7,0xd1,0x12,0x06,0x58,0xbf, + 0x08,0x46,0xf4,0xd5,0x43,0xf0,0x40,0x03,0xa3,0x81,0x4f,0xf0,0xff,0x30,0x38,0xbd, + 0x18,0x46,0x01,0xf0,0x46,0xf9,0xb4,0xf9,0x0c,0x30,0x18,0x07,0x9a,0xb2,0xd9,0xd4, + 0xd1,0x06,0x2a,0xd5,0x52,0x07,0x14,0xd4,0x21,0x69,0x43,0xf0,0x08,0x03,0xa3,0x81, + 0x9a,0xb2,0x00,0x29,0xd1,0xd1,0x02,0xf4,0x20,0x70,0xb0,0xf5,0x00,0x7f,0xcc,0xd0, + 0x21,0x46,0x28,0x46,0x01,0xf0,0xd3,0xfc,0xb4,0xf9,0x0c,0x30,0x21,0x69,0x9a,0xb2, + 0xc3,0xe7,0x21,0x6b,0x51,0xb1,0x04,0xf1,0x40,0x02,0x91,0x42,0x04,0xd0,0x28,0x46, + 0x01,0xf0,0x17,0xfa,0xb4,0xf9,0x0c,0x30,0x00,0x22,0x22,0x63,0x21,0x69,0x00,0x22, + 0xc4,0xe9,0x00,0x12,0x23,0xf0,0x24,0x03,0xd7,0xe7,0x09,0x22,0x43,0xf0,0x40,0x03, + 0x2a,0x60,0x4f,0xf0,0xff,0x30,0xa3,0x81,0x38,0xbd,0x08,0x00,0x00,0x20,0x02,0x4b, + 0x13,0xb1,0x02,0x48,0x00,0xf0,0x05,0xb8,0x70,0x47,0x00,0x00,0x00,0x00,0xf9,0x53, + 0x00,0x10,0x00,0x23,0x01,0x46,0x1a,0x46,0x18,0x46,0x03,0xf0,0x94,0xbe,0x2d,0xe9, + 0xf0,0x4f,0x03,0x69,0x0c,0x69,0xa3,0x42,0x83,0xb0,0xc0,0xf2,0x87,0x80,0x01,0x3c, + 0x01,0xf1,0x14,0x05,0xa3,0x00,0x00,0xf1,0x14,0x08,0x00,0x93,0x55,0xf8,0x24,0x30, + 0x58,0xf8,0x24,0x20,0x01,0x33,0x81,0x46,0x9a,0x42,0x08,0xeb,0x84,0x00,0x05,0xeb, + 0x84,0x07,0x01,0x90,0xb2,0xfb,0xf3,0xf6,0x3b,0xd3,0x00,0x23,0xae,0x46,0x40,0x46, + 0x9b,0x46,0x5e,0xf8,0x04,0xab,0x02,0x68,0x1f,0xfa,0x8a,0xfc,0x06,0xfb,0x0c,0x33, + 0x4f,0xea,0x13,0x4c,0x4f,0xea,0x1a,0x4a,0x06,0xfb,0x0a,0xca,0x1f,0xfa,0x83,0xfc, + 0xab,0xeb,0x0c,0x0c,0x1f,0xfa,0x8a,0xf3,0x1c,0xfa,0x82,0xfc,0xc3,0xeb,0x12,0x42, + 0x02,0xeb,0x2c,0x42,0x1f,0xfa,0x8c,0xfc,0x4c,0xea,0x02,0x43,0x77,0x45,0x40,0xf8, + 0x04,0x3b,0x4f,0xea,0x22,0x4b,0x4f,0xea,0x1a,0x43,0xda,0xd2,0x00,0x9b,0x58,0xf8, + 0x03,0x30,0x73,0xb9,0x01,0x9b,0x04,0x3b,0x98,0x45,0x04,0xd3,0x07,0xe0,0x98,0x45, + 0x04,0xf1,0xff,0x34,0x03,0xd2,0x53,0xf8,0x04,0x29,0x00,0x2a,0xf7,0xd0,0xc9,0xf8, + 0x10,0x40,0x48,0x46,0x02,0xf0,0xc3,0xfa,0x00,0x28,0x2b,0xdb,0x01,0x36,0x40,0x46, + 0x00,0x23,0x55,0xf8,0x04,0x1b,0xd0,0xf8,0x00,0xc0,0x8a,0xb2,0x9a,0x1a,0x0b,0x0c, + 0x12,0xfa,0x8c,0xf2,0xc3,0xeb,0x1c,0x43,0x03,0xeb,0x22,0x43,0x92,0xb2,0x42,0xea, + 0x03,0x42,0xaf,0x42,0x40,0xf8,0x04,0x2b,0x4f,0xea,0x23,0x43,0xe9,0xd2,0x58,0xf8, + 0x24,0x20,0x08,0xeb,0x84,0x03,0x6a,0xb9,0x04,0x3b,0x98,0x45,0x04,0xd3,0x07,0xe0, + 0x98,0x45,0x04,0xf1,0xff,0x34,0x03,0xd2,0x53,0xf8,0x04,0x29,0x00,0x2a,0xf7,0xd0, + 0xc9,0xf8,0x10,0x40,0x30,0x46,0x03,0xb0,0xbd,0xe8,0xf0,0x8f,0x00,0x20,0x03,0xb0, + 0xbd,0xe8,0xf0,0x8f,0x00,0xbf,0x2d,0xe9,0xf0,0x4f,0x2d,0xed,0x06,0x8b,0x01,0x6c, + 0x95,0xb0,0x90,0x46,0x99,0x46,0xcd,0xe9,0x04,0x89,0x27,0x9d,0x04,0x46,0x41,0xb1, + 0x42,0x6c,0x4a,0x60,0x01,0x23,0x93,0x40,0x8b,0x60,0x02,0xf0,0x16,0xf8,0x00,0x23, + 0x23,0x64,0xb9,0xf1,0x00,0x0a,0xb4,0xbf,0x01,0x23,0x00,0x23,0x2b,0x60,0x7b,0x4b, + 0xbc,0xbf,0x2a,0xf0,0x00,0x4a,0xcd,0xf8,0x14,0xa0,0x33,0xea,0x0a,0x03,0x00,0xf0, + 0xb2,0x80,0x9d,0xed,0x04,0x7b,0x00,0x22,0x51,0xec,0x17,0x0b,0xb0,0xee,0x47,0x9a, + 0xf0,0xee,0x67,0x9a,0x00,0x23,0x04,0xf0,0xfc,0xfc,0x07,0x46,0x80,0xb1,0x26,0x9a, + 0x01,0x23,0x13,0x60,0x28,0x9b,0x00,0x2b,0x00,0xf0,0xda,0x82,0x6d,0x48,0x18,0x60, + 0x43,0x1e,0x03,0x93,0x03,0x98,0x15,0xb0,0xbd,0xec,0x06,0x8b,0xbd,0xe8,0xf0,0x8f, + 0x12,0xab,0x01,0x93,0x13,0xab,0x00,0x93,0x20,0x46,0x53,0xec,0x19,0x2b,0xb0,0xee, + 0x49,0x8a,0xf0,0xee,0x69,0x8a,0x02,0xf0,0x02,0xfb,0x5f,0xea,0x1a,0x56,0x05,0x46, + 0x40,0xf0,0x99,0x80,0xdd,0xe9,0x12,0x76,0x3e,0x44,0x06,0xf2,0x32,0x40,0x20,0x28, + 0x40,0xf3,0xaa,0x83,0xc0,0xf1,0x40,0x00,0x0a,0xfa,0x00,0xfa,0x06,0xf2,0x12,0x40, + 0x28,0xfa,0x00,0xf0,0x4a,0xea,0x00,0x00,0x04,0xf0,0xe1,0xf9,0x01,0x23,0x01,0x3e, + 0x0d,0x93,0xa1,0xf1,0xf8,0x71,0x53,0x4b,0x00,0x22,0x04,0xf0,0x9a,0xf8,0x49,0xa3, + 0xd3,0xe9,0x00,0x23,0x04,0xf0,0x4d,0xfa,0x49,0xa3,0xd3,0xe9,0x00,0x23,0x04,0xf0, + 0x92,0xf8,0x80,0x46,0x30,0x46,0x89,0x46,0x04,0xf0,0xd9,0xf9,0x46,0xa3,0xd3,0xe9, + 0x00,0x23,0x04,0xf0,0x3e,0xfa,0x02,0x46,0x0b,0x46,0x40,0x46,0x49,0x46,0x04,0xf0, + 0x82,0xf8,0x80,0x46,0x89,0x46,0x04,0xf0,0xe4,0xfc,0x00,0x22,0x83,0x46,0x00,0x23, + 0x40,0x46,0x49,0x46,0x04,0xf0,0x9f,0xfc,0x00,0x28,0x40,0xf0,0x6c,0x82,0xbb,0xf1, + 0x16,0x0f,0x00,0xf2,0x5b,0x82,0x3c,0x4b,0x03,0xeb,0xcb,0x03,0xd3,0xe9,0x00,0x23, + 0x51,0xec,0x19,0x0b,0x04,0xf0,0x8f,0xfc,0x00,0x28,0x74,0xd0,0x00,0x23,0xbe,0x1b, + 0x0c,0x93,0x73,0x1e,0x0b,0xf1,0xff,0x3b,0x06,0x93,0x00,0xf1,0x4e,0x82,0x00,0x23, + 0x09,0x93,0xbb,0xf1,0x00,0x0f,0x6d,0xda,0x09,0x9b,0xcd,0xf8,0x1c,0xb0,0xa3,0xeb, + 0x0b,0x03,0x09,0x93,0xcb,0xf1,0x00,0x03,0x0b,0x93,0x24,0x9b,0x09,0x2b,0x4f,0xf0, + 0x00,0x0b,0x68,0xd8,0x05,0x2b,0x40,0xf3,0x3d,0x83,0x04,0x3b,0x24,0x93,0x00,0x26, + 0x24,0x9b,0x02,0x3b,0x03,0x2b,0x00,0xf2,0x98,0x86,0xdf,0xe8,0x13,0xf0,0x4d,0x04, + 0x4a,0x04,0x41,0x04,0x24,0x04,0x26,0x9a,0x42,0xf2,0x0f,0x73,0xca,0xf3,0x13,0x0a, + 0x13,0x60,0x5a,0xea,0x08,0x03,0x1d,0xd1,0x28,0x9b,0x00,0x2b,0x00,0xf0,0x7c,0x86, + 0x1b,0x4b,0x03,0x93,0x08,0x33,0x28,0x9a,0x03,0x98,0x13,0x60,0x15,0xb0,0xbd,0xec, + 0x06,0x8b,0xbd,0xe8,0xf0,0x8f,0x18,0xee,0x90,0x3a,0xc3,0xf3,0x13,0x03,0x51,0xec, + 0x19,0x0b,0x43,0xf0,0x7f,0x51,0x0d,0x97,0xa6,0xf2,0xff,0x36,0x12,0x9f,0x41,0xf4, + 0x40,0x11,0x70,0xe7,0x28,0x9b,0x00,0x2b,0x40,0xf0,0xd9,0x83,0x0d,0x4b,0x03,0x93, + 0x38,0xe7,0xaf,0xf3,0x00,0x80,0x61,0x43,0x6f,0x63,0xa7,0x87,0xd2,0x3f,0xb3,0xc8, + 0x60,0x8b,0x28,0x8a,0xc6,0x3f,0xfb,0x79,0x9f,0x50,0x13,0x44,0xd3,0x3f,0x00,0x00, + 0xf0,0x7f,0x99,0x93,0x00,0x10,0x00,0x00,0xf8,0x3f,0x08,0x95,0x00,0x10,0xc0,0x93, + 0x00,0x10,0xbc,0x93,0x00,0x10,0xbe,0x1b,0x73,0x1e,0x06,0x93,0x00,0xf1,0x9a,0x84, + 0x0c,0x90,0x09,0x90,0x06,0x9b,0x5b,0x44,0xcd,0xe9,0x06,0x3b,0x00,0x23,0x0b,0x93, + 0x24,0x9b,0x09,0x2b,0x96,0xd9,0x00,0x23,0xcd,0xe9,0x24,0x33,0x01,0x26,0x4f,0xf0, + 0xff,0x33,0x0a,0x96,0x08,0x93,0x08,0x9b,0x0f,0x93,0x00,0x21,0x61,0x64,0x20,0x46, + 0x01,0xf0,0xc5,0xfe,0x03,0x90,0x00,0x28,0x00,0xf0,0x2f,0x86,0x03,0x9b,0x23,0x64, + 0x08,0x9b,0x0e,0x2b,0x00,0xf2,0xf9,0x80,0x00,0x2e,0x00,0xf0,0xf6,0x80,0x07,0x99, + 0x00,0x29,0x40,0xf3,0x71,0x84,0xbd,0x4b,0x01,0xf0,0x0f,0x02,0x03,0xeb,0xc2,0x03, + 0x4f,0xea,0x21,0x18,0xc9,0x05,0xd3,0xe9,0x00,0x67,0x40,0xf1,0x03,0x84,0xb8,0x4b, + 0x51,0xec,0x19,0x0b,0xd3,0xe9,0x08,0x23,0x04,0xf0,0x8d,0xfa,0x41,0xec,0x18,0x0b, + 0x08,0xf0,0x0f,0x08,0x4f,0xf0,0x03,0x0a,0xb8,0xf1,0x00,0x0f,0x13,0xd0,0xdf,0xf8, + 0xc0,0x92,0x18,0xf0,0x01,0x0f,0x09,0xd0,0x30,0x46,0x39,0x46,0xd9,0xe9,0x00,0x23, + 0x04,0xf0,0x4f,0xf9,0x0a,0xf1,0x01,0x0a,0x06,0x46,0x0f,0x46,0x5f,0xea,0x68,0x08, + 0x09,0xf1,0x08,0x09,0xed,0xd1,0x51,0xec,0x18,0x0b,0x32,0x46,0x3b,0x46,0x04,0xf0, + 0x6a,0xfa,0x41,0xec,0x1a,0x0b,0x0c,0x9b,0x5b,0xb1,0x57,0xec,0x1a,0x6b,0xa1,0x4b, + 0x1a,0xee,0x10,0x0a,0x00,0x22,0x39,0x46,0x04,0xf0,0xa5,0xfb,0x00,0x28,0x40,0xf0, + 0x52,0x85,0x50,0x46,0x04,0xf0,0xc3,0xf8,0x53,0xec,0x1a,0x2b,0x04,0xf0,0x29,0xf9, + 0x9a,0x4b,0x00,0x22,0x03,0xf0,0x6f,0xff,0x08,0x9b,0x80,0x46,0xa1,0xf1,0x50,0x79, + 0x00,0x2b,0x00,0xf0,0xf3,0x83,0x07,0x9b,0x10,0x93,0x08,0x9b,0x0e,0x93,0x0a,0x9b, + 0x00,0x2b,0x00,0xf0,0xc0,0x84,0x0e,0x9a,0x8d,0x4b,0x90,0x49,0xdd,0xf8,0x0c,0xa0, + 0x03,0xeb,0xc2,0x03,0x53,0xe9,0x02,0x23,0x00,0x20,0x04,0xf0,0x34,0xfa,0x42,0x46, + 0x4b,0x46,0x03,0xf0,0x4e,0xff,0x59,0xec,0x1a,0x8b,0x41,0xec,0x18,0x0b,0x49,0x46, + 0x1a,0xee,0x10,0x0a,0x04,0xf0,0xad,0xfb,0x07,0x46,0x04,0xf0,0x90,0xf8,0x02,0x46, + 0x0b,0x46,0x1a,0xee,0x10,0x0a,0x49,0x46,0x03,0xf0,0x3b,0xff,0x30,0x37,0x0a,0xf8, + 0x01,0x7b,0x53,0xec,0x18,0x2b,0x06,0x46,0x0f,0x46,0x04,0xf0,0x5c,0xfb,0x00,0x28, + 0x40,0xf0,0x55,0x85,0x4f,0xf0,0x00,0x08,0x0a,0xee,0x10,0x5a,0xcd,0xf8,0x44,0xb0, + 0x55,0x46,0x5b,0xec,0x18,0xab,0x08,0xee,0x10,0x4a,0x44,0x46,0x2a,0xe0,0x0e,0x9b, + 0x01,0x34,0x9c,0x42,0x4b,0xda,0x72,0x4b,0x50,0x46,0x59,0x46,0x00,0x22,0x04,0xf0, + 0xd0,0xf8,0x6f,0x4b,0x00,0x22,0x82,0x46,0x8b,0x46,0x30,0x46,0x39,0x46,0x04,0xf0, + 0xc8,0xf8,0x89,0x46,0x80,0x46,0x04,0xf0,0x74,0xfb,0x07,0x46,0x04,0xf0,0x57,0xf8, + 0x02,0x46,0x0b,0x46,0x40,0x46,0x49,0x46,0x03,0xf0,0x03,0xff,0x30,0x37,0x05,0xf8, + 0x01,0x7b,0x52,0x46,0x5b,0x46,0x06,0x46,0x0f,0x46,0x04,0xf0,0x24,0xfb,0x00,0x28, + 0x40,0xf0,0x18,0x85,0x32,0x46,0x3b,0x46,0x5b,0x49,0x00,0x20,0x03,0xf0,0xf1,0xfe, + 0x52,0x46,0x5b,0x46,0x04,0xf0,0x17,0xfb,0x00,0x28,0xc8,0xd0,0x10,0x9b,0x03,0x9a, + 0x07,0x93,0xaa,0x46,0x18,0xee,0x10,0x4a,0x1a,0xee,0x10,0x5a,0x02,0xe0,0x92,0x45, + 0x00,0xf0,0xea,0x84,0xd1,0x46,0x1a,0xf8,0x01,0x3d,0x39,0x2b,0xf7,0xd0,0x01,0x33, + 0xdb,0xb2,0x8a,0xf8,0x00,0x30,0x07,0x9b,0x01,0x33,0x07,0x93,0xab,0xe1,0xdd,0xf8, + 0x44,0xb0,0x1a,0xee,0x10,0x5a,0x18,0xee,0x10,0x4a,0x13,0x9b,0x00,0x2b,0xc0,0xf2, + 0x94,0x80,0x07,0x9a,0x0e,0x2a,0x00,0xf3,0x90,0x80,0x40,0x4b,0x03,0xeb,0xc2,0x03, + 0xd3,0xe9,0x00,0x89,0x25,0x9b,0x00,0x2b,0x1b,0xda,0x08,0x9b,0x00,0x2b,0x18,0xdc, + 0x40,0xf0,0x5d,0x83,0x40,0x4b,0x00,0x22,0x40,0x46,0x49,0x46,0x04,0xf0,0x69,0xf8, + 0x02,0x46,0x0b,0x46,0x51,0xec,0x19,0x0b,0x04,0xf0,0xdf,0xfa,0xdd,0xf8,0x20,0xa0, + 0x56,0x46,0x00,0x28,0x00,0xf0,0xd0,0x82,0x25,0x9b,0xdd,0xf8,0x0c,0x80,0xdf,0x43, + 0xd2,0xe2,0x42,0x46,0x4b,0x46,0x51,0xec,0x19,0x0b,0x04,0xf0,0x7c,0xf9,0x04,0xf0, + 0x00,0xfb,0x06,0x46,0x83,0x46,0x03,0xf0,0xe2,0xff,0x42,0x46,0x4b,0x46,0x04,0xf0, + 0x48,0xf8,0x0b,0x46,0x02,0x46,0x51,0xec,0x19,0x0b,0x03,0xf0,0x8a,0xfe,0xdd,0xf8, + 0x0c,0xa0,0x33,0x46,0x30,0x33,0x0a,0xf8,0x01,0x3b,0x08,0x9b,0x01,0x2b,0x00,0xf0, + 0x8e,0x83,0x4f,0xf0,0x01,0x0b,0x08,0xee,0x10,0x5a,0x08,0xee,0x90,0x4a,0x1d,0x46, + 0x54,0x46,0xda,0x46,0x1d,0xe0,0x42,0x46,0x4b,0x46,0x30,0x46,0x39,0x46,0x04,0xf0, + 0x52,0xf9,0x04,0xf0,0xd6,0xfa,0x83,0x46,0x03,0xf0,0xb9,0xff,0x42,0x46,0x4b,0x46, + 0x04,0xf0,0x1f,0xf8,0x0a,0xf1,0x01,0x0a,0x0b,0x46,0x02,0x46,0x39,0x46,0x30,0x46, + 0x03,0xf0,0x5f,0xfe,0x0b,0xf1,0x30,0x03,0xaa,0x45,0x04,0xf8,0x01,0x3b,0x00,0xf0, + 0x61,0x83,0x0f,0x4b,0x00,0x22,0x04,0xf0,0x0c,0xf8,0x00,0x22,0x00,0x23,0x06,0x46, + 0x0f,0x46,0x04,0xf0,0x6e,0xfa,0x00,0x28,0xd5,0xd0,0xa2,0x46,0x18,0xee,0x10,0x5a, + 0x18,0xee,0x90,0x4a,0x07,0x9b,0x01,0x33,0x07,0x93,0xd1,0x46,0x1b,0xe1,0x08,0x95, + 0x00,0x10,0xe0,0x94,0x00,0x10,0x00,0x00,0xf0,0x3f,0x00,0x00,0x1c,0x40,0x00,0x00, + 0xe0,0x3f,0x00,0x00,0x24,0x40,0x00,0x00,0x14,0x40,0x0a,0x9a,0x00,0x2a,0x3f,0xd0, + 0x24,0x9a,0x01,0x2a,0x40,0xf3,0x9c,0x82,0x08,0x9b,0x03,0xf1,0xff,0x38,0x0b,0x9b, + 0x43,0x45,0xc0,0xf2,0x6e,0x82,0xa3,0xeb,0x08,0x08,0x08,0x9b,0x00,0x2b,0xc0,0xf2, + 0x66,0x83,0x06,0x9a,0x1a,0x44,0x06,0x92,0x09,0x9a,0x17,0x46,0x1a,0x44,0x09,0x92, + 0x01,0x21,0x20,0x46,0x01,0xf0,0xdf,0xfd,0x06,0x46,0x25,0xe0,0x01,0x23,0xbe,0x1b, + 0x0c,0x93,0x73,0x1e,0x06,0x93,0x7f,0xf5,0xb2,0xad,0xc6,0xf1,0x01,0x03,0x09,0x93, + 0x00,0x23,0x06,0x93,0xad,0xe5,0x58,0x46,0x03,0xf0,0x51,0xff,0x42,0x46,0x4b,0x46, + 0x04,0xf0,0x1f,0xfa,0x00,0x28,0x7f,0xf4,0x8a,0xad,0x0b,0xf1,0xff,0x3b,0x86,0xe5, + 0x87,0x4b,0x03,0x93,0x03,0x98,0x15,0xb0,0xbd,0xec,0x06,0x8b,0xbd,0xe8,0xf0,0x8f, + 0xdd,0xe9,0x09,0x76,0xdd,0xf8,0x2c,0x80,0x00,0x2f,0x0c,0xdd,0x06,0x9a,0x00,0x2a, + 0x09,0xdd,0x09,0x99,0xba,0x42,0x13,0x46,0xa8,0xbf,0x3b,0x46,0xc9,0x1a,0xff,0x1a, + 0xd3,0x1a,0x09,0x91,0x06,0x93,0x0b,0x9b,0xdb,0xb1,0x0a,0x9b,0x00,0x2b,0x00,0xf0, + 0x82,0x82,0xb8,0xf1,0x00,0x0f,0x0f,0xdd,0x31,0x46,0x42,0x46,0x20,0x46,0x01,0xf0, + 0x76,0xfe,0x2a,0x46,0x01,0x46,0x06,0x46,0x20,0x46,0x01,0xf0,0xc2,0xfd,0x29,0x46, + 0x05,0x46,0x20,0x46,0x01,0xf0,0xe1,0xfc,0x0b,0x9b,0xb3,0xeb,0x08,0x02,0x40,0xf0, + 0x00,0x83,0x01,0x21,0x20,0x46,0x01,0xf0,0x86,0xfd,0xbb,0xf1,0x00,0x0f,0x82,0x46, + 0x00,0xf3,0xb7,0x80,0x24,0x9b,0x01,0x2b,0x40,0xf3,0x85,0x81,0x4f,0xf0,0x00,0x09, + 0x01,0x20,0xbb,0xf1,0x00,0x0f,0x40,0xf0,0xb8,0x80,0x06,0x9a,0x10,0x44,0x10,0xf0, + 0x1f,0x00,0x00,0xf0,0x96,0x80,0xc0,0xf1,0x20,0x03,0x04,0x2b,0x40,0xf3,0xf8,0x83, + 0x09,0x9b,0xc0,0xf1,0x1c,0x00,0x03,0x44,0x02,0x44,0x09,0x93,0x07,0x44,0x06,0x92, + 0x09,0x9b,0x00,0x2b,0x05,0xdd,0x29,0x46,0x1a,0x46,0x20,0x46,0x01,0xf0,0x97,0xfe, + 0x05,0x46,0x06,0x9b,0x00,0x2b,0x05,0xdd,0x51,0x46,0x1a,0x46,0x20,0x46,0x01,0xf0, + 0x8e,0xfe,0x82,0x46,0x0c,0x9b,0x00,0x2b,0x40,0xf0,0x36,0x81,0x08,0x9b,0x00,0x2b, + 0x40,0xf3,0x1d,0x81,0x0a,0x9b,0x00,0x2b,0x40,0xf0,0xa0,0x80,0x07,0x9b,0x01,0x33, + 0x07,0x93,0xdd,0xf8,0x0c,0x80,0xdd,0xf8,0x20,0x90,0x01,0x27,0x07,0xe0,0x29,0x46, + 0x00,0x23,0x0a,0x22,0x20,0x46,0x01,0xf0,0x92,0xfc,0x01,0x37,0x05,0x46,0x51,0x46, + 0x28,0x46,0xff,0xf7,0xc4,0xfb,0x4f,0x45,0x00,0xf1,0x30,0x00,0x08,0xf8,0x01,0x0b, + 0xed,0xdb,0x08,0x9a,0x00,0x2a,0xc8,0xbf,0x93,0x46,0x03,0x9a,0xd8,0xbf,0x4f,0xf0, + 0x01,0x0b,0x03,0x46,0x93,0x44,0x00,0x27,0x29,0x46,0x01,0x22,0x20,0x46,0x04,0x93, + 0x01,0xf0,0x55,0xfe,0x51,0x46,0x05,0x46,0x01,0xf0,0xc9,0xfe,0x00,0x28,0x40,0xf3, + 0xa5,0x81,0x1b,0xf8,0x01,0x3c,0x03,0x9a,0x0b,0xf1,0xff,0x3b,0x04,0xe0,0x5a,0x45, + 0x00,0xf0,0xa7,0x81,0x1b,0xf8,0x01,0x3d,0x39,0x2b,0x0b,0xf1,0x01,0x09,0xf6,0xd0, + 0x01,0x33,0x8b,0xf8,0x00,0x30,0x51,0x46,0x20,0x46,0x01,0xf0,0x4e,0xfc,0x56,0xb1, + 0x2f,0xb1,0xb7,0x42,0x03,0xd0,0x39,0x46,0x20,0x46,0x01,0xf0,0x46,0xfc,0x31,0x46, + 0x20,0x46,0x01,0xf0,0x42,0xfc,0x29,0x46,0x20,0x46,0x01,0xf0,0x3e,0xfc,0x00,0x23, + 0x89,0xf8,0x00,0x30,0x26,0x9b,0x07,0x9a,0x1a,0x60,0x28,0x9b,0x00,0x2b,0x3f,0xf4, + 0x49,0xac,0x03,0x98,0xc3,0xf8,0x00,0x90,0x15,0xb0,0xbd,0xec,0x06,0x8b,0xbd,0xe8, + 0xf0,0x8f,0x1c,0x20,0x09,0x9b,0x03,0x44,0x09,0x93,0x06,0x9b,0x03,0x44,0x07,0x44, + 0x06,0x93,0x6d,0xe7,0x01,0x26,0xc3,0xe4,0xc0,0xf1,0x20,0x00,0x08,0xfa,0x00,0xf0, + 0x5a,0xe4,0x01,0x46,0x5a,0x46,0x20,0x46,0x01,0xf0,0xa1,0xfd,0x24,0x9b,0x01,0x2b, + 0x82,0x46,0x40,0xf3,0xd5,0x81,0x4f,0xf0,0x00,0x09,0xda,0xf8,0x10,0x30,0x0a,0xeb, + 0x83,0x03,0x18,0x69,0x01,0xf0,0x67,0xfc,0xc0,0xf1,0x20,0x00,0x3d,0xe7,0x98,0x93, + 0x00,0x10,0x31,0x46,0x00,0x23,0x0a,0x22,0x20,0x46,0x01,0xf0,0x08,0xfc,0x0f,0x9b, + 0x00,0x2b,0x06,0x46,0x40,0xf3,0x23,0x83,0xcd,0xe9,0x07,0x83,0x00,0x2f,0x00,0xf3, + 0x19,0x81,0xb9,0xf1,0x00,0x0f,0x40,0xf0,0xfd,0x81,0xb0,0x46,0x04,0x9b,0x03,0x9f, + 0x08,0x99,0x03,0xf0,0x01,0x02,0x7b,0x1e,0x19,0x44,0x24,0x9b,0x0b,0x92,0x13,0x43, + 0x09,0x91,0x0a,0x93,0x51,0x46,0x28,0x46,0xff,0xf7,0x21,0xfb,0x31,0x46,0x83,0x46, + 0x28,0x46,0x01,0xf0,0x3c,0xfe,0x42,0x46,0x51,0x46,0x81,0x46,0x20,0x46,0x01,0xf0, + 0x58,0xfe,0xc2,0x68,0x01,0x46,0x0b,0xf1,0x30,0x03,0x00,0x2a,0x42,0xd1,0x06,0x90, + 0x28,0x46,0x08,0x93,0x01,0xf0,0x2b,0xfe,0x06,0x99,0x04,0x90,0x20,0x46,0x01,0xf0, + 0xc4,0xfb,0x04,0x9a,0x08,0x9b,0x1a,0xb9,0x0a,0x99,0x00,0x29,0x00,0xf0,0xd7,0x82, + 0xb9,0xf1,0x00,0x0f,0xc0,0xf2,0x88,0x81,0x24,0x99,0x49,0xea,0x01,0x09,0x0b,0x99, + 0x51,0xea,0x09,0x01,0x00,0xf0,0x80,0x81,0x00,0x2a,0x00,0xf3,0xe8,0x81,0x09,0x9a, + 0x3b,0x70,0x07,0xf1,0x01,0x09,0x97,0x42,0xcb,0x46,0x00,0xf0,0xe6,0x81,0x29,0x46, + 0x00,0x23,0x0a,0x22,0x20,0x46,0x01,0xf0,0xaa,0xfb,0x46,0x45,0x05,0x46,0x31,0x46, + 0x4f,0xf0,0x00,0x03,0x4f,0xf0,0x0a,0x02,0x20,0x46,0x12,0xd0,0x01,0xf0,0x9f,0xfb, + 0x41,0x46,0x06,0x46,0x00,0x23,0x0a,0x22,0x20,0x46,0x01,0xf0,0x98,0xfb,0x4f,0x46, + 0x80,0x46,0xa7,0xe7,0x20,0x46,0x04,0x93,0x01,0xf0,0x87,0xfb,0x04,0x9b,0x01,0x22, + 0xc6,0xe7,0x01,0xf0,0x8c,0xfb,0x4f,0x46,0x06,0x46,0x80,0x46,0x9a,0xe7,0x24,0x9b, + 0x02,0x2b,0x78,0xdc,0x0a,0x9b,0x00,0x2b,0x80,0xd1,0x07,0x9b,0x51,0x46,0x01,0x33, + 0x28,0x46,0x07,0x93,0xff,0xf7,0xb3,0xfa,0xdd,0xf8,0x0c,0xb0,0x00,0xf1,0x30,0x03, + 0x0b,0xf8,0x01,0x3b,0x00,0x27,0xf7,0xe6,0x51,0x46,0x28,0x46,0x01,0xf0,0xc7,0xfd, + 0x00,0x28,0xbf,0xf6,0xc3,0xae,0x29,0x46,0x00,0x23,0x0a,0x22,0x20,0x46,0x01,0xf0, + 0x66,0xfb,0x07,0x9b,0x03,0xf1,0xff,0x38,0x0a,0x9b,0x05,0x46,0x00,0x2b,0x7f,0xf4, + 0x50,0xaf,0x0f,0x9b,0x00,0x2b,0x40,0xf3,0x71,0x82,0x08,0x93,0xb9,0xe6,0xbd,0x4b, + 0x03,0x93,0x03,0x33,0x07,0xe4,0xdd,0xe9,0x04,0x12,0x00,0x29,0x7f,0xf4,0x76,0xae, + 0xc2,0xf3,0x13,0x03,0x00,0x2b,0x7f,0xf4,0x71,0xae,0xb7,0x4b,0x13,0x40,0x00,0x2b, + 0x00,0xf0,0x3e,0x82,0x09,0x9b,0x01,0x33,0x09,0x93,0x06,0x9b,0x01,0x33,0x06,0x93, + 0x4f,0xf0,0x01,0x09,0x64,0xe6,0x01,0x23,0x0a,0x93,0x25,0x9b,0x07,0x9a,0x13,0x44, + 0x0f,0x93,0x01,0x33,0x01,0x2b,0x1f,0x46,0x08,0x93,0xb8,0xbf,0x01,0x27,0x00,0x21, + 0x17,0x2f,0x61,0x64,0x7f,0xf7,0x33,0xac,0x01,0x22,0x04,0x23,0x5b,0x00,0x03,0xf1, + 0x14,0x00,0xb8,0x42,0x11,0x46,0x02,0xf1,0x01,0x02,0xf7,0xd9,0x61,0x64,0x26,0xe4, + 0x01,0x23,0x0a,0x93,0x25,0x9b,0x00,0x2b,0x4b,0xdd,0x0f,0x93,0x08,0x93,0x1f,0x46, + 0xe5,0xe7,0x00,0x23,0x0a,0x93,0xd8,0xe7,0x00,0x23,0x0a,0x93,0xf2,0xe7,0x0f,0x9b, + 0xcd,0xf8,0x1c,0x80,0x08,0x93,0x08,0x9b,0x00,0x2b,0x7f,0xf4,0x3d,0xad,0x51,0x46, + 0x05,0x22,0x20,0x46,0x01,0xf0,0x03,0xfb,0x01,0x46,0x82,0x46,0x28,0x46,0x01,0xf0, + 0x56,0xfd,0x00,0x28,0x7f,0xf7,0x30,0xad,0x03,0x98,0x07,0x9f,0x31,0x23,0x80,0x46, + 0x00,0xf8,0x01,0x3b,0x01,0x37,0x03,0x90,0x51,0x46,0x20,0x46,0x01,0xf0,0xe5,0xfa, + 0x7b,0x1c,0xdd,0xf8,0x0c,0x90,0x07,0x93,0xcd,0xf8,0x0c,0x80,0x00,0x2e,0x7f,0xf4, + 0x96,0xae,0x98,0xe6,0x31,0x46,0x3a,0x46,0x20,0x46,0x01,0xf0,0xc0,0xfc,0x06,0x46, + 0xdf,0xe6,0x0b,0x9b,0xcd,0xf8,0x2c,0x80,0xa8,0xeb,0x03,0x03,0x9b,0x44,0x4f,0xf0, + 0x00,0x08,0x8a,0xe5,0x4f,0xf0,0x02,0x0a,0xb0,0xee,0x49,0x8a,0xf0,0xee,0x69,0x8a, + 0x02,0xe4,0x01,0x23,0x25,0x93,0x08,0x93,0xff,0xf7,0xcd,0xbb,0x03,0xd1,0x04,0x9b, + 0xdb,0x07,0x3f,0xf5,0x56,0xae,0xd9,0x46,0x1b,0xf8,0x01,0x3d,0x30,0x2b,0xfa,0xd0, + 0x61,0xe6,0x07,0x9b,0x03,0x9a,0x01,0x33,0x07,0x93,0x31,0x23,0x13,0x70,0x5a,0xe6, + 0x0d,0x9a,0x00,0x2a,0x00,0xf0,0x63,0x81,0x03,0xf2,0x33,0x43,0x06,0x9a,0xdd,0xf8, + 0x2c,0x80,0x1a,0x44,0x06,0x92,0x09,0x9a,0x17,0x46,0x1a,0x44,0x09,0x92,0x67,0xe5, + 0x50,0x46,0x03,0xf0,0xcc,0xfc,0x53,0xec,0x1a,0x2b,0x03,0xf0,0x32,0xfd,0x63,0x4b, + 0x00,0x22,0x03,0xf0,0x78,0xfb,0x80,0x46,0xa1,0xf1,0x50,0x79,0x61,0x4b,0x00,0x22, + 0x51,0xec,0x1a,0x0b,0x03,0xf0,0x6d,0xfb,0x42,0x46,0x4b,0x46,0x06,0x46,0x0f,0x46, + 0x03,0xf0,0xaf,0xff,0x00,0x28,0x40,0xf0,0x7f,0x81,0x30,0x46,0x39,0x46,0x42,0x46, + 0x09,0xf1,0x00,0x43,0x03,0xf0,0x87,0xff,0x00,0x28,0x3f,0xf4,0x8e,0xac,0x4f,0xf0, + 0x00,0x0a,0x56,0x46,0xb0,0xe4,0x29,0x46,0x0b,0x9a,0x20,0x46,0x01,0xf0,0xf7,0xfb, + 0x05,0x46,0x8e,0xe5,0x0c,0x90,0x40,0xe5,0x00,0xf0,0x4e,0x81,0x07,0x9a,0x4d,0x4b, + 0x56,0x42,0x06,0xf0,0x0f,0x02,0x03,0xeb,0xc2,0x03,0xd3,0xe9,0x00,0x23,0x51,0xec, + 0x19,0x0b,0x03,0xf0,0xf6,0xfc,0x36,0x11,0x41,0xec,0x1a,0x0b,0x00,0xf0,0x88,0x81, + 0x46,0x4f,0x00,0x23,0x4f,0xf0,0x02,0x0a,0xf2,0x07,0x06,0xd5,0xd7,0xe9,0x00,0x23, + 0x03,0xf0,0xe7,0xfc,0x0a,0xf1,0x01,0x0a,0x01,0x23,0x76,0x10,0x07,0xf1,0x08,0x07, + 0xf2,0xd1,0x00,0x2b,0x3f,0xf4,0x9f,0xab,0x41,0xec,0x1a,0x0b,0xff,0xf7,0x9b,0xbb, + 0x04,0x9b,0x00,0x2b,0x7f,0xf4,0x27,0xae,0xdd,0xe9,0x04,0x12,0xc2,0xf3,0x13,0x03, + 0x00,0x2b,0x3f,0xf4,0xf2,0xae,0x1e,0xe6,0x00,0x2a,0x12,0xdd,0x29,0x46,0x01,0x22, + 0x20,0x46,0x04,0x93,0x01,0xf0,0x13,0xfc,0x51,0x46,0x05,0x46,0x01,0xf0,0x87,0xfc, + 0x00,0x28,0x04,0x9b,0x40,0xf3,0x35,0x81,0x39,0x2b,0x00,0xf0,0x13,0x81,0x0b,0xf1, + 0x31,0x03,0xb9,0x46,0x09,0xf8,0x01,0x3b,0x07,0x9b,0x01,0x33,0x37,0x46,0x07,0x93, + 0x46,0x46,0xc0,0xe5,0xa2,0x46,0x18,0xee,0x10,0x5a,0x18,0xee,0x90,0x4a,0x02,0x46, + 0x0b,0x46,0x03,0xf0,0xf0,0xfa,0x42,0x46,0x4b,0x46,0x06,0x46,0x0f,0x46,0x03,0xf0, + 0x30,0xff,0x60,0xb9,0x42,0x46,0x4b,0x46,0x30,0x46,0x39,0x46,0x03,0xf0,0x01,0xff, + 0x00,0x28,0x3f,0xf4,0x97,0xac,0x5f,0xea,0xcb,0x71,0x7f,0xf5,0x93,0xac,0x03,0x9a, + 0xff,0xf7,0xf8,0xbb,0x71,0x68,0x20,0x46,0x01,0xf0,0xc9,0xf9,0x07,0x46,0x00,0x28, + 0x00,0xf0,0x3a,0x81,0x33,0x69,0x02,0x33,0x9a,0x00,0x06,0xf1,0x0c,0x01,0x0c,0x30, + 0xfd,0xf7,0xcf,0xf8,0x39,0x46,0x01,0x22,0x20,0x46,0x01,0xf0,0xc8,0xfb,0x80,0x46, + 0xec,0xe5,0x29,0x46,0x20,0x46,0x01,0xf0,0x62,0xfb,0x05,0x46,0xf9,0xe4,0xdd,0xe9, + 0x08,0x23,0x9f,0x1a,0x9c,0xe4,0xbc,0x93,0x00,0x10,0x00,0x00,0xf0,0x7f,0x00,0x00, + 0x1c,0x40,0x00,0x00,0x14,0x40,0x08,0x95,0x00,0x10,0xe0,0x94,0x00,0x10,0x39,0x2b, + 0x00,0xf0,0xb8,0x80,0xb9,0x46,0x01,0x33,0xa4,0xe7,0x07,0x9a,0x01,0x32,0x37,0x46, + 0x07,0x92,0x46,0x46,0x48,0xe5,0x0e,0x98,0x8d,0x49,0x01,0xeb,0xc0,0x01,0x42,0x46, 0x4b, 0x46, 0x51, 0xe9, 0x02, 0x01, 0x03, 0xf0, 0x4c, 0xfc, 0x5a, 0xec, 0x1a, 0x9b, 0x41, 0xec, 0x18, 0x0b, 0x51, 0x46, 0x1a, 0xee, 0x10, 0x0a, 0x03, 0xf0, 0xf3, 0xfe, 0x07, 0x46, 0x03, 0xf0, 0xd6, 0xfb, 0x02, 0x46, 0x0b, 0x46, 0x1a, 0xee, 0x10, 0x0a, 0x51, 0x46, 0x03, 0xf0, 0x81, 0xfa, @@ -2700,100 +2700,100 @@ static const unsigned char scp_0000028_write_mem[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0xc5, 0x5f, 0x4d, 0x4b, 0xc1, 0xd1, 0x30, 0x7a, 0x39, 0xf4, 0x93, 0x80, 0x23, 0x63, 0xed, 0xd9, 0xba, 0x6e, 0x69, 0x3b, 0xeb, 0xf2, 0xc4, 0x61, 0x2d, 0x85, 0x0a, 0xe7, 0x9d, 0x79, 0x54, 0x3a, 0x86, 0x43, 0x46, 0xf0, 0x8a, - 0xf4,0xd6,0xa6,0x9a,0xa9,0x01,0x73,0x6b,0x2f,0xe4,0xb8,0xe8,0xf2,0xab,0x4d,0xae, - 0x2d,0x7f,0x7b,0x0c,0x19,0xac,0xfd,0x04,0x40,0xbc,0x10,0xdb,0xb9,0xa3,0x04,0xd1, - 0xe2,0xea,0x80,0x29,0x0f,0xac,0xe9,0x7b,0xf7,0xdf,0xc3,0x44,0x94,0x4f,0x7b,0xbb, - 0xd0,0x3e,0x7b,0xc3,0xb6,0x74,0x64,0x85,0x51,0x4e,0x55,0xeb,0xca,0x55,0x4b,0x7c, - 0x0c,0x64,0xd6,0x65,0x99,0x02,0x09,0x18,0x44,0x9c,0xb9,0xfa,0x02,0x16,0xc5,0x07, - 0xc6,0x10,0x31,0x0a,0x0f,0x2e,0x6a,0xb3,0xe4,0xd3,0xb6,0x25,0xe8,0x9e,0x5a,0x94, - 0x56,0x7d,0x25,0x99,0xa9,0x0c,0x1e,0x81,0x32,0x08,0x2e,0x46,0xe7,0x52,0x28,0xf4, - 0x37,0x62,0xfc,0xb8,0xac,0xf7,0xce,0x63,0xc1,0xc3,0x87,0x13,0xdf,0xa2,0xf2,0x40, - 0x12,0x05,0xfc,0xeb,0x8c,0x5b,0x95,0x18,0x88,0xe6,0x49,0x98,0xf3,0x69,0xf9,0x46, - 0xf0,0xf2,0xfe,0x56,0xbe,0x53,0x59,0x4e,0xe7,0x6d,0x46,0x09,0xf6,0x53,0x84,0x33, - 0x9b,0x44,0x07,0xd8,0x0e,0xdc,0x0f,0xe0,0xf6,0xca,0x9e,0xd6,0x2e,0x04,0x3c,0xf5, - 0x9d,0xa2,0x36,0xad,0x60,0xfb,0x4f,0x83,0x9f,0x6b,0xbb,0xf7,0x12,0x01,0xa4,0xc3, - 0x73,0xc9,0xd3,0x3d,0x95,0xee,0x55,0x57,0x1e,0x3b,0x82,0xae,0xbd,0x94,0x29,0xca, - 0x80,0x0c,0x7b,0x3a,0xa5,0x29,0x73,0x57,0x82,0x24,0x85,0x75,0x33,0x00 + 0xf4, 0xd6, 0xa6, 0x9a, 0xa9, 0x01, 0x73, 0x6b, 0x2f, 0xe4, 0xb8, 0xe8, 0xf2, 0xab, 0x4d, 0xae, + 0x2d, 0x7f, 0x7b, 0x0c, 0x19, 0xac, 0xfd, 0x04, 0x40, 0xbc, 0x10, 0xdb, 0xb9, 0xa3, 0x04, 0xd1, + 0xe2, 0xea, 0x80, 0x29, 0x0f, 0xac, 0xe9, 0x7b, 0xf7, 0xdf, 0xc3, 0x44, 0x94, 0x4f, 0x7b, 0xbb, + 0xd0, 0x3e, 0x7b, 0xc3, 0xb6, 0x74, 0x64, 0x85, 0x51, 0x4e, 0x55, 0xeb, 0xca, 0x55, 0x4b, 0x7c, + 0x0c, 0x64, 0xd6, 0x65, 0x99, 0x02, 0x09, 0x18, 0x44, 0x9c, 0xb9, 0xfa, 0x02, 0x16, 0xc5, 0x07, + 0xc6, 0x10, 0x31, 0x0a, 0x0f, 0x2e, 0x6a, 0xb3, 0xe4, 0xd3, 0xb6, 0x25, 0xe8, 0x9e, 0x5a, 0x94, + 0x56, 0x7d, 0x25, 0x99, 0xa9, 0x0c, 0x1e, 0x81, 0x32, 0x08, 0x2e, 0x46, 0xe7, 0x52, 0x28, 0xf4, + 0x37, 0x62, 0xfc, 0xb8, 0xac, 0xf7, 0xce, 0x63, 0xc1, 0xc3, 0x87, 0x13, 0xdf, 0xa2, 0xf2, 0x40, + 0x12, 0x05, 0xfc, 0xeb, 0x8c, 0x5b, 0x95, 0x18, 0x88, 0xe6, 0x49, 0x98, 0xf3, 0x69, 0xf9, 0x46, + 0xf0, 0xf2, 0xfe, 0x56, 0xbe, 0x53, 0x59, 0x4e, 0xe7, 0x6d, 0x46, 0x09, 0xf6, 0x53, 0x84, 0x33, + 0x9b, 0x44, 0x07, 0xd8, 0x0e, 0xdc, 0x0f, 0xe0, 0xf6, 0xca, 0x9e, 0xd6, 0x2e, 0x04, 0x3c, 0xf5, + 0x9d, 0xa2, 0x36, 0xad, 0x60, 0xfb, 0x4f, 0x83, 0x9f, 0x6b, 0xbb, 0xf7, 0x12, 0x01, 0xa4, 0xc3, + 0x73, 0xc9, 0xd3, 0x3d, 0x95, 0xee, 0x55, 0x57, 0x1e, 0x3b, 0x82, 0xae, 0xbd, 0x94, 0x29, 0xca, + 0x80, 0x0c, 0x7b, 0x3a, 0xa5, 0x29, 0x73, 0x57, 0x82, 0x24, 0x85, 0x75, 0x33, 0x00 }; -static const unsigned char scp_0000029_ack[] = { 0xbe,0xef,0xed,0x06,0x00,0x00,0x9c,0x9f }; +static const unsigned char scp_0000029_ack[] = { 0xbe, 0xef, 0xed, 0x06, 0x00, 0x00, 0x9c, 0x9f }; -static const unsigned char scp_0000030_write_mem_response[] = { 0xbe,0xef,0xed,0x05,0x00, - 0x08,0x9d,0xeb,0x59,0x05, - 0x00,0x04,0x00,0x00,0x00, - 0x00,0xca,0x01,0x28,0x4c }; +static const unsigned char scp_0000030_write_mem_response[] = { 0xbe, 0xef, 0xed, 0x05, 0x00, + 0x08, 0x9d, 0xeb, 0x59, 0x05, + 0x00, 0x04, 0x00, 0x00, 0x00, + 0x00, 0xca, 0x01, 0x28, 0x4c }; -static const unsigned char scp_0000031_ack[] = { 0xbe,0xef,0xed,0x06,0x00,0x00,0x9d,0x5e }; +static const unsigned char scp_0000031_ack[] = { 0xbe, 0xef, 0xed, 0x06, 0x00, 0x00, 0x9d, 0x5e }; static const unsigned char scp_0000032_write_mem[] = { - 0xbe,0xef,0xed,0x05,0x08,0xda,0x9e,0xdf,0x59,0x06,0x07,0xd6,0x24,0x02,0x10,0x00, - 0x9a,0x74,0x00,0x00,0x07,0xcc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2c,0x0e, - 0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x04,0x00,0x20,0x3c,0x04, - 0x00,0x20,0x44,0x04,0x00,0x20,0x44,0x04,0x00,0x20,0x4c,0x04,0x00,0x20,0x4c,0x04, - 0x00,0x20,0x54,0x04,0x00,0x20,0x54,0x04,0x00,0x20,0x5c,0x04,0x00,0x20,0x5c,0x04, - 0x00,0x20,0x64,0x04,0x00,0x20,0x64,0x04,0x00,0x20,0x6c,0x04,0x00,0x20,0x6c,0x04, - 0x00,0x20,0x74,0x04,0x00,0x20,0x74,0x04,0x00,0x20,0x7c,0x04,0x00,0x20,0x7c,0x04, - 0x00,0x20,0x84,0x04,0x00,0x20,0x84,0x04,0x00,0x20,0x8c,0x04,0x00,0x20,0x8c,0x04, - 0x00,0x20,0x94,0x04,0x00,0x20,0x94,0x04,0x00,0x20,0x9c,0x04,0x00,0x20,0x9c,0x04, - 0x00,0x20,0xa4,0x04,0x00,0x20,0xa4,0x04,0x00,0x20,0xac,0x04,0x00,0x20,0xac,0x04, - 0x00,0x20,0xb4,0x04,0x00,0x20,0xb4,0x04,0x00,0x20,0xbc,0x04,0x00,0x20,0xbc,0x04, - 0x00,0x20,0xc4,0x04,0x00,0x20,0xc4,0x04,0x00,0x20,0xcc,0x04,0x00,0x20,0xcc,0x04, - 0x00,0x20,0xd4,0x04,0x00,0x20,0xd4,0x04,0x00,0x20,0xdc,0x04,0x00,0x20,0xdc,0x04, - 0x00,0x20,0xe4,0x04,0x00,0x20,0xe4,0x04,0x00,0x20,0xec,0x04,0x00,0x20,0xec,0x04, - 0x00,0x20,0xf4,0x04,0x00,0x20,0xf4,0x04,0x00,0x20,0xfc,0x04,0x00,0x20,0xfc,0x04, - 0x00,0x20,0x04,0x05,0x00,0x20,0x04,0x05,0x00,0x20,0x0c,0x05,0x00,0x20,0x0c,0x05, - 0x00,0x20,0x14,0x05,0x00,0x20,0x14,0x05,0x00,0x20,0x1c,0x05,0x00,0x20,0x1c,0x05, - 0x00,0x20,0x24,0x05,0x00,0x20,0x24,0x05,0x00,0x20,0x2c,0x05,0x00,0x20,0x2c,0x05, - 0x00,0x20,0x34,0x05,0x00,0x20,0x34,0x05,0x00,0x20,0x3c,0x05,0x00,0x20,0x3c,0x05, - 0x00,0x20,0x44,0x05,0x00,0x20,0x44,0x05,0x00,0x20,0x4c,0x05,0x00,0x20,0x4c,0x05, - 0x00,0x20,0x54,0x05,0x00,0x20,0x54,0x05,0x00,0x20,0x5c,0x05,0x00,0x20,0x5c,0x05, - 0x00,0x20,0x64,0x05,0x00,0x20,0x64,0x05,0x00,0x20,0x6c,0x05,0x00,0x20,0x6c,0x05, - 0x00,0x20,0x74,0x05,0x00,0x20,0x74,0x05,0x00,0x20,0x7c,0x05,0x00,0x20,0x7c,0x05, - 0x00,0x20,0x84,0x05,0x00,0x20,0x84,0x05,0x00,0x20,0x8c,0x05,0x00,0x20,0x8c,0x05, - 0x00,0x20,0x94,0x05,0x00,0x20,0x94,0x05,0x00,0x20,0x9c,0x05,0x00,0x20,0x9c,0x05, - 0x00,0x20,0xa4,0x05,0x00,0x20,0xa4,0x05,0x00,0x20,0xac,0x05,0x00,0x20,0xac,0x05, - 0x00,0x20,0xb4,0x05,0x00,0x20,0xb4,0x05,0x00,0x20,0xbc,0x05,0x00,0x20,0xbc,0x05, - 0x00,0x20,0xc4,0x05,0x00,0x20,0xc4,0x05,0x00,0x20,0xcc,0x05,0x00,0x20,0xcc,0x05, - 0x00,0x20,0xd4,0x05,0x00,0x20,0xd4,0x05,0x00,0x20,0xdc,0x05,0x00,0x20,0xdc,0x05, - 0x00,0x20,0xe4,0x05,0x00,0x20,0xe4,0x05,0x00,0x20,0xec,0x05,0x00,0x20,0xec,0x05, - 0x00,0x20,0xf4,0x05,0x00,0x20,0xf4,0x05,0x00,0x20,0xfc,0x05,0x00,0x20,0xfc,0x05, - 0x00,0x20,0x04,0x06,0x00,0x20,0x04,0x06,0x00,0x20,0x0c,0x06,0x00,0x20,0x0c,0x06, - 0x00,0x20,0x14,0x06,0x00,0x20,0x14,0x06,0x00,0x20,0x1c,0x06,0x00,0x20,0x1c,0x06, - 0x00,0x20,0x24,0x06,0x00,0x20,0x24,0x06,0x00,0x20,0x2c,0x06,0x00,0x20,0x2c,0x06, - 0x00,0x20,0x34,0x06,0x00,0x20,0x34,0x06,0x00,0x20,0x3c,0x06,0x00,0x20,0x3c,0x06, - 0x00,0x20,0x44,0x06,0x00,0x20,0x44,0x06,0x00,0x20,0x4c,0x06,0x00,0x20,0x4c,0x06, - 0x00,0x20,0x54,0x06,0x00,0x20,0x54,0x06,0x00,0x20,0x5c,0x06,0x00,0x20,0x5c,0x06, - 0x00,0x20,0x64,0x06,0x00,0x20,0x64,0x06,0x00,0x20,0x6c,0x06,0x00,0x20,0x6c,0x06, - 0x00,0x20,0x74,0x06,0x00,0x20,0x74,0x06,0x00,0x20,0x7c,0x06,0x00,0x20,0x7c,0x06, - 0x00,0x20,0x84,0x06,0x00,0x20,0x84,0x06,0x00,0x20,0x8c,0x06,0x00,0x20,0x8c,0x06, - 0x00,0x20,0x94,0x06,0x00,0x20,0x94,0x06,0x00,0x20,0x9c,0x06,0x00,0x20,0x9c,0x06, - 0x00,0x20,0xa4,0x06,0x00,0x20,0xa4,0x06,0x00,0x20,0xac,0x06,0x00,0x20,0xac,0x06, - 0x00,0x20,0xb4,0x06,0x00,0x20,0xb4,0x06,0x00,0x20,0xbc,0x06,0x00,0x20,0xbc,0x06, - 0x00,0x20,0xc4,0x06,0x00,0x20,0xc4,0x06,0x00,0x20,0xcc,0x06,0x00,0x20,0xcc,0x06, - 0x00,0x20,0xd4,0x06,0x00,0x20,0xd4,0x06,0x00,0x20,0xdc,0x06,0x00,0x20,0xdc,0x06, - 0x00,0x20,0xe4,0x06,0x00,0x20,0xe4,0x06,0x00,0x20,0xec,0x06,0x00,0x20,0xec,0x06, - 0x00,0x20,0xf4,0x06,0x00,0x20,0xf4,0x06,0x00,0x20,0xfc,0x06,0x00,0x20,0xfc,0x06, - 0x00,0x20,0x04,0x07,0x00,0x20,0x04,0x07,0x00,0x20,0x0c,0x07,0x00,0x20,0x0c,0x07, - 0x00,0x20,0x14,0x07,0x00,0x20,0x14,0x07,0x00,0x20,0x1c,0x07, 0x00, 0x20, 0x1c, 0x07, + 0xbe, 0xef, 0xed, 0x05, 0x08, 0xda, 0x9e, 0xdf, 0x59, 0x06, 0x07, 0xd6, 0x24, 0x02, 0x10, 0x00, + 0x9a, 0x74, 0x00, 0x00, 0x07, 0xcc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x0e, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x04, 0x00, 0x20, 0x3c, 0x04, + 0x00, 0x20, 0x44, 0x04, 0x00, 0x20, 0x44, 0x04, 0x00, 0x20, 0x4c, 0x04, 0x00, 0x20, 0x4c, 0x04, + 0x00, 0x20, 0x54, 0x04, 0x00, 0x20, 0x54, 0x04, 0x00, 0x20, 0x5c, 0x04, 0x00, 0x20, 0x5c, 0x04, + 0x00, 0x20, 0x64, 0x04, 0x00, 0x20, 0x64, 0x04, 0x00, 0x20, 0x6c, 0x04, 0x00, 0x20, 0x6c, 0x04, + 0x00, 0x20, 0x74, 0x04, 0x00, 0x20, 0x74, 0x04, 0x00, 0x20, 0x7c, 0x04, 0x00, 0x20, 0x7c, 0x04, + 0x00, 0x20, 0x84, 0x04, 0x00, 0x20, 0x84, 0x04, 0x00, 0x20, 0x8c, 0x04, 0x00, 0x20, 0x8c, 0x04, + 0x00, 0x20, 0x94, 0x04, 0x00, 0x20, 0x94, 0x04, 0x00, 0x20, 0x9c, 0x04, 0x00, 0x20, 0x9c, 0x04, + 0x00, 0x20, 0xa4, 0x04, 0x00, 0x20, 0xa4, 0x04, 0x00, 0x20, 0xac, 0x04, 0x00, 0x20, 0xac, 0x04, + 0x00, 0x20, 0xb4, 0x04, 0x00, 0x20, 0xb4, 0x04, 0x00, 0x20, 0xbc, 0x04, 0x00, 0x20, 0xbc, 0x04, + 0x00, 0x20, 0xc4, 0x04, 0x00, 0x20, 0xc4, 0x04, 0x00, 0x20, 0xcc, 0x04, 0x00, 0x20, 0xcc, 0x04, + 0x00, 0x20, 0xd4, 0x04, 0x00, 0x20, 0xd4, 0x04, 0x00, 0x20, 0xdc, 0x04, 0x00, 0x20, 0xdc, 0x04, + 0x00, 0x20, 0xe4, 0x04, 0x00, 0x20, 0xe4, 0x04, 0x00, 0x20, 0xec, 0x04, 0x00, 0x20, 0xec, 0x04, + 0x00, 0x20, 0xf4, 0x04, 0x00, 0x20, 0xf4, 0x04, 0x00, 0x20, 0xfc, 0x04, 0x00, 0x20, 0xfc, 0x04, + 0x00, 0x20, 0x04, 0x05, 0x00, 0x20, 0x04, 0x05, 0x00, 0x20, 0x0c, 0x05, 0x00, 0x20, 0x0c, 0x05, + 0x00, 0x20, 0x14, 0x05, 0x00, 0x20, 0x14, 0x05, 0x00, 0x20, 0x1c, 0x05, 0x00, 0x20, 0x1c, 0x05, + 0x00, 0x20, 0x24, 0x05, 0x00, 0x20, 0x24, 0x05, 0x00, 0x20, 0x2c, 0x05, 0x00, 0x20, 0x2c, 0x05, + 0x00, 0x20, 0x34, 0x05, 0x00, 0x20, 0x34, 0x05, 0x00, 0x20, 0x3c, 0x05, 0x00, 0x20, 0x3c, 0x05, + 0x00, 0x20, 0x44, 0x05, 0x00, 0x20, 0x44, 0x05, 0x00, 0x20, 0x4c, 0x05, 0x00, 0x20, 0x4c, 0x05, + 0x00, 0x20, 0x54, 0x05, 0x00, 0x20, 0x54, 0x05, 0x00, 0x20, 0x5c, 0x05, 0x00, 0x20, 0x5c, 0x05, + 0x00, 0x20, 0x64, 0x05, 0x00, 0x20, 0x64, 0x05, 0x00, 0x20, 0x6c, 0x05, 0x00, 0x20, 0x6c, 0x05, + 0x00, 0x20, 0x74, 0x05, 0x00, 0x20, 0x74, 0x05, 0x00, 0x20, 0x7c, 0x05, 0x00, 0x20, 0x7c, 0x05, + 0x00, 0x20, 0x84, 0x05, 0x00, 0x20, 0x84, 0x05, 0x00, 0x20, 0x8c, 0x05, 0x00, 0x20, 0x8c, 0x05, + 0x00, 0x20, 0x94, 0x05, 0x00, 0x20, 0x94, 0x05, 0x00, 0x20, 0x9c, 0x05, 0x00, 0x20, 0x9c, 0x05, + 0x00, 0x20, 0xa4, 0x05, 0x00, 0x20, 0xa4, 0x05, 0x00, 0x20, 0xac, 0x05, 0x00, 0x20, 0xac, 0x05, + 0x00, 0x20, 0xb4, 0x05, 0x00, 0x20, 0xb4, 0x05, 0x00, 0x20, 0xbc, 0x05, 0x00, 0x20, 0xbc, 0x05, + 0x00, 0x20, 0xc4, 0x05, 0x00, 0x20, 0xc4, 0x05, 0x00, 0x20, 0xcc, 0x05, 0x00, 0x20, 0xcc, 0x05, + 0x00, 0x20, 0xd4, 0x05, 0x00, 0x20, 0xd4, 0x05, 0x00, 0x20, 0xdc, 0x05, 0x00, 0x20, 0xdc, 0x05, + 0x00, 0x20, 0xe4, 0x05, 0x00, 0x20, 0xe4, 0x05, 0x00, 0x20, 0xec, 0x05, 0x00, 0x20, 0xec, 0x05, + 0x00, 0x20, 0xf4, 0x05, 0x00, 0x20, 0xf4, 0x05, 0x00, 0x20, 0xfc, 0x05, 0x00, 0x20, 0xfc, 0x05, + 0x00, 0x20, 0x04, 0x06, 0x00, 0x20, 0x04, 0x06, 0x00, 0x20, 0x0c, 0x06, 0x00, 0x20, 0x0c, 0x06, + 0x00, 0x20, 0x14, 0x06, 0x00, 0x20, 0x14, 0x06, 0x00, 0x20, 0x1c, 0x06, 0x00, 0x20, 0x1c, 0x06, + 0x00, 0x20, 0x24, 0x06, 0x00, 0x20, 0x24, 0x06, 0x00, 0x20, 0x2c, 0x06, 0x00, 0x20, 0x2c, 0x06, + 0x00, 0x20, 0x34, 0x06, 0x00, 0x20, 0x34, 0x06, 0x00, 0x20, 0x3c, 0x06, 0x00, 0x20, 0x3c, 0x06, + 0x00, 0x20, 0x44, 0x06, 0x00, 0x20, 0x44, 0x06, 0x00, 0x20, 0x4c, 0x06, 0x00, 0x20, 0x4c, 0x06, + 0x00, 0x20, 0x54, 0x06, 0x00, 0x20, 0x54, 0x06, 0x00, 0x20, 0x5c, 0x06, 0x00, 0x20, 0x5c, 0x06, + 0x00, 0x20, 0x64, 0x06, 0x00, 0x20, 0x64, 0x06, 0x00, 0x20, 0x6c, 0x06, 0x00, 0x20, 0x6c, 0x06, + 0x00, 0x20, 0x74, 0x06, 0x00, 0x20, 0x74, 0x06, 0x00, 0x20, 0x7c, 0x06, 0x00, 0x20, 0x7c, 0x06, + 0x00, 0x20, 0x84, 0x06, 0x00, 0x20, 0x84, 0x06, 0x00, 0x20, 0x8c, 0x06, 0x00, 0x20, 0x8c, 0x06, + 0x00, 0x20, 0x94, 0x06, 0x00, 0x20, 0x94, 0x06, 0x00, 0x20, 0x9c, 0x06, 0x00, 0x20, 0x9c, 0x06, + 0x00, 0x20, 0xa4, 0x06, 0x00, 0x20, 0xa4, 0x06, 0x00, 0x20, 0xac, 0x06, 0x00, 0x20, 0xac, 0x06, + 0x00, 0x20, 0xb4, 0x06, 0x00, 0x20, 0xb4, 0x06, 0x00, 0x20, 0xbc, 0x06, 0x00, 0x20, 0xbc, 0x06, + 0x00, 0x20, 0xc4, 0x06, 0x00, 0x20, 0xc4, 0x06, 0x00, 0x20, 0xcc, 0x06, 0x00, 0x20, 0xcc, 0x06, + 0x00, 0x20, 0xd4, 0x06, 0x00, 0x20, 0xd4, 0x06, 0x00, 0x20, 0xdc, 0x06, 0x00, 0x20, 0xdc, 0x06, + 0x00, 0x20, 0xe4, 0x06, 0x00, 0x20, 0xe4, 0x06, 0x00, 0x20, 0xec, 0x06, 0x00, 0x20, 0xec, 0x06, + 0x00, 0x20, 0xf4, 0x06, 0x00, 0x20, 0xf4, 0x06, 0x00, 0x20, 0xfc, 0x06, 0x00, 0x20, 0xfc, 0x06, + 0x00, 0x20, 0x04, 0x07, 0x00, 0x20, 0x04, 0x07, 0x00, 0x20, 0x0c, 0x07, 0x00, 0x20, 0x0c, 0x07, + 0x00, 0x20, 0x14, 0x07, 0x00, 0x20, 0x14, 0x07, 0x00, 0x20, 0x1c, 0x07, 0x00, 0x20, 0x1c, 0x07, 0x00, 0x20, 0x24, 0x07, 0x00, 0x20, 0x24, 0x07, 0x00, 0x20, 0x2c, 0x07, 0x00, 0x20, 0x2c, 0x07, 0x00, 0x20, 0x34, 0x07, 0x00, 0x20, 0x34, 0x07, 0x00, 0x20, 0x3c, 0x07, 0x00, 0x20, 0x3c, 0x07, 0x00, 0x20, 0x44, 0x07, 0x00, 0x20, 0x44, 0x07, 0x00, 0x20, 0x4c, 0x07, 0x00, 0x20, 0x4c, 0x07, diff --git a/Examples/MAX32670/SecureROM_BL_Host/test_images/test_images.h b/Examples/MAX32670/SecureROM_BL_Host/test_images/test_images.h index e997152e8fe..fe072276d5a 100644 --- a/Examples/MAX32670/SecureROM_BL_Host/test_images/test_images.h +++ b/Examples/MAX32670/SecureROM_BL_Host/test_images/test_images.h @@ -1,49 +1,49 @@ /****************************************************************************** * - * Copyright 2023 Analog Devices, Inc. + * Copyright 2023 Analog Devices,Inc. * - * Licensed under the Apache License, Version 2.0 (the "License"); + * Licensed under the Apache License,Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software + * Unless required by applicable law or agreed to in writing,software * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** * - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * Copyright (C) 2023 Maxim Integrated Products,Inc.,All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a + * Permission is hereby granted,free of charge,to any person obtaining a * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: + * to deal in the Software without restriction,including without limitation + * the rights to use,copy,modify,merge,publish,distribute,sublicense, + * and/or sell copies of the Software,and to permit persons to whom the + * Software is furnished to do so,subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * THE SOFTWARE IS PROVIDED "AS IS",WITHOUT WARRANTY OF ANY KIND,EXPRESS + * OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM,DAMAGES + * OR OTHER LIABILITY,WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE, + * ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. + * Except as contained in this notice,the name of Maxim Integrated + * Products,Inc. shall not be used except as stated in the Maxim Integrated + * Products,Inc. Branding Policy. * * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all + * of trade secrets,proprietary technology,copyrights,patents, + * trademarks,maskwork rights,or any other form of intellectual + * property whatsoever. Maxim Integrated Products,Inc. retains all * ownership rights. * ******************************************************************************/ diff --git a/Examples/MAX32672/Display/lv_conf.h b/Examples/MAX32672/Display/lv_conf.h index 7629c97b1a0..fd335f2b1d6 100644 --- a/Examples/MAX32672/Display/lv_conf.h +++ b/Examples/MAX32672/Display/lv_conf.h @@ -1,49 +1,49 @@ /****************************************************************************** * - * Copyright 2023 Analog Devices, Inc. + * Copyright 2023 Analog Devices,Inc. * - * Licensed under the Apache License, Version 2.0 (the "License"); + * Licensed under the Apache License,Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software + * Unless required by applicable law or agreed to in writing,software * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** * - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * Copyright (C) 2023 Maxim Integrated Products,Inc.,All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a + * Permission is hereby granted,free of charge,to any person obtaining a * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: + * to deal in the Software without restriction,including without limitation + * the rights to use,copy,modify,merge,publish,distribute,sublicense, + * and/or sell copies of the Software,and to permit persons to whom the + * Software is furnished to do so,subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * THE SOFTWARE IS PROVIDED "AS IS",WITHOUT WARRANTY OF ANY KIND,EXPRESS + * OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM,DAMAGES + * OR OTHER LIABILITY,WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE, + * ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. + * Except as contained in this notice,the name of Maxim Integrated + * Products,Inc. shall not be used except as stated in the Maxim Integrated + * Products,Inc. Branding Policy. * * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all + * of trade secrets,proprietary technology,copyrights,patents, + * trademarks,maskwork rights,or any other form of intellectual + * property whatsoever. Maxim Integrated Products,Inc. retains all * ownership rights. * ******************************************************************************/ @@ -62,30 +62,31 @@ */ /* clang-format off */ -#if 1 /*Set it to "1" to enable content*/ #ifndef EXAMPLES_MAX32672_DISPLAY_LV_CONF_H_ #define EXAMPLES_MAX32672_DISPLAY_LV_CONF_H_ +#if 1 /*Set it to "1" to enable content*/ + #include /*==================== COLOR SETTINGS *====================*/ -/*Color depth: 1 (1 byte per pixel), 8 (RGB332), 16 (RGB565), 32 (ARGB8888)*/ +/*Color depth: 1 (1 byte per pixel),8 (RGB332),16 (RGB565),32 (ARGB8888)*/ #define LV_COLOR_DEPTH 16 /*Swap the 2 bytes of RGB565 color. Useful if the display has an 8-bit interface (e.g. SPI)*/ #define LV_COLOR_16_SWAP 0 /*Enable features to draw on transparent background. - *It's required if opa, and transform_* style properties are used. - *Can be also used if the UI is above another layer, e.g. an OSD menu or video player.*/ + *It's required if opa,and transform_* style properties are used. + *Can be also used if the UI is above another layer,e.g. an OSD menu or video player.*/ #define LV_COLOR_SCREEN_TRANSP 0 /* Adjust color mix functions rounding. GPUs might calculate color mix (blending) differently. - * 0: round down, 64: round up from x.75, 128: round up from half, 192: round up from x.25, 254: round up */ + * 0: round down,64: round up from x.75,128: round up from half,192: round up from x.25,254: round up */ #define LV_COLOR_MIX_ROUND_OFS 0 /*Images pixels with this color will not be drawn if they are chroma keyed)*/ @@ -95,7 +96,7 @@ MEMORY SETTINGS *=========================*/ -/*1: use custom malloc/free, 0: use the built-in `lv_mem_alloc()` and `lv_mem_free()`*/ +/*1: use custom malloc/free,0: use the built-in `lv_mem_alloc()` and `lv_mem_free()`*/ #define LV_MEM_CUSTOM 0 #if LV_MEM_CUSTOM == 0 /*Size of the memory available for `lv_mem_alloc()` in bytes (>= 2kB)*/ @@ -141,8 +142,8 @@ #define LV_TICK_CUSTOM_SYS_TIME_EXPR (millis()) /*Expression evaluating to current system time in ms*/ #endif /*LV_TICK_CUSTOM*/ -/*Default Dot Per Inch. Used to initialize default sizes such as widgets sized, style paddings. - *(Not so important, you can adjust it to modify default sizes and spaces)*/ +/*Default Dot Per Inch. Used to initialize default sizes such as widgets sized,style paddings. + *(Not so important,you can adjust it to modify default sizes and spaces)*/ #define LV_DPI_DEF 130 /*[px/inch]*/ /*======================= @@ -154,12 +155,12 @@ *-----------*/ /*Enable complex draw engine. - *Required to draw shadow, gradient, rounded corners, circles, arc, skew lines, image transformations or any masks*/ + *Required to draw shadow,gradient,rounded corners,circles,arc,skew lines,image transformations or any masks*/ #define LV_DRAW_COMPLEX 1 #if LV_DRAW_COMPLEX != 0 /*Allow buffering some shadow calculation. - *LV_SHADOW_CACHE_SIZE is the max. shadow size to buffer, where shadow size is `shadow_width + radius` + *LV_SHADOW_CACHE_SIZE is the max. shadow size to buffer,where shadow size is `shadow_width + radius` *Caching has LV_SHADOW_CACHE_SIZE^2 RAM cost*/ #define LV_SHADOW_CACHE_SIZE 0 @@ -173,7 +174,7 @@ /** * "Simple layers" are used when a widget has `style_opa < 255` to buffer the widget into a layer * and blend it as an image with the given opacity. - * Note that `bg_opa`, `text_opa` etc don't require buffering into layer) + * Note that `bg_opa`,`text_opa` etc don't require buffering into layer) * The widget can be buffered in smaller chunks to avoid using large buffers. * * - LV_LAYER_SIMPLE_BUF_SIZE: [bytes] the optimal target buffer size. LVGL will try to allocate it @@ -210,7 +211,7 @@ #define LV_DITHER_GRADIENT 0 #if LV_DITHER_GRADIENT /*Add support for error diffusion dithering. - *Error diffusion dithering gets a much better visual result, but implies more CPU consumption and memory when drawing. + *Error diffusion dithering gets a much better visual result,but implies more CPU consumption and memory when drawing. *The increase in memory consumption is (24 bits * object's width)*/ #define LV_DITHER_ERROR_DIFFUSION 0 #endif @@ -245,7 +246,7 @@ #if LV_USE_GPU_NXP_PXP /*1: Add default bare metal and FreeRTOS interrupt handling routines for PXP (lv_gpu_nxp_pxp_osa.c) * and call lv_gpu_nxp_pxp_init() automatically during lv_init(). Note that symbol SDK_OS_FREE_RTOS - * has to be defined in order to use FreeRTOS OSA, otherwise bare-metal implementation is selected. + * has to be defined in order to use FreeRTOS OSA,otherwise bare-metal implementation is selected. *0: lv_gpu_nxp_pxp_init() has to be called manually before lv_init() */ #define LV_USE_GPU_NXP_PXP_AUTO_INIT 0 @@ -258,10 +259,10 @@ #define LV_USE_GPU_SDL 0 #if LV_USE_GPU_SDL #define LV_GPU_SDL_INCLUDE_PATH < SDL2/SDL.h> - /*Texture cache size, 8MB by default*/ + /*Texture cache size,8MB by default*/ #define LV_GPU_SDL_LRU_SIZE (1024 * 1024 * 8) - /*Custom blend mode for mask drawing, disable if you need to link with older SDL2 lib*/ - #define LV_GPU_SDL_CUSTOM_BLEND_MODE (SDL_VERSION_ATLEAST(2, 0, 6)) + /*Custom blend mode for mask drawing,disable if you need to link with older SDL2 lib*/ + #define LV_GPU_SDL_CUSTOM_BLEND_MODE (SDL_VERSION_ATLEAST(2,0,6)) #endif /*------------- @@ -276,7 +277,7 @@ *LV_LOG_LEVEL_TRACE A lot of logs to give detailed information *LV_LOG_LEVEL_INFO Log important events *LV_LOG_LEVEL_WARN Log if something unwanted happened but didn't cause a problem - *LV_LOG_LEVEL_ERROR Only critical issue, when the system may fail + *LV_LOG_LEVEL_ERROR Only critical issue,when the system may fail *LV_LOG_LEVEL_USER Only logs added by the user *LV_LOG_LEVEL_NONE Do not log anything*/ #define LV_LOG_LEVEL LV_LOG_LEVEL_WARN @@ -303,9 +304,9 @@ /*Enable asserts if an operation is failed or an invalid data is found. *If LV_USE_LOG is enabled an error message will be printed on failure*/ -#define LV_USE_ASSERT_NULL 1 /*Check if the parameter is NULL. (Very fast, recommended)*/ -#define LV_USE_ASSERT_MALLOC 1 /*Checks is the memory is successfully allocated or no. (Very fast, recommended)*/ -#define LV_USE_ASSERT_STYLE 0 /*Check if the styles are properly initialized. (Very fast, recommended)*/ +#define LV_USE_ASSERT_NULL 1 /*Check if the parameter is NULL. (Very fast,recommended)*/ +#define LV_USE_ASSERT_MALLOC 1 /*Checks is the memory is successfully allocated or no. (Very fast,recommended)*/ +#define LV_USE_ASSERT_STYLE 0 /*Check if the styles are properly initialized. (Very fast,recommended)*/ #define LV_USE_ASSERT_MEM_INTEGRITY 0 /*Check the integrity of `lv_mem` after critical operations. (Slow)*/ #define LV_USE_ASSERT_OBJ 0 /*Check the object's type and existence (e.g. not deleted). (Slow)*/ @@ -384,7 +385,7 @@ /*Place performance critical functions into a faster memory (e.g RAM)*/ #define LV_ATTRIBUTE_FAST_MEM -/*Prefix variables that are used in GPU accelerated operations, often these need to be placed in RAM sections that are DMA accessible*/ +/*Prefix variables that are used in GPU accelerated operations,often these need to be placed in RAM sections that are DMA accessible*/ #define LV_ATTRIBUTE_DMA /*Export integer constant to binding. This macro is used with constants in the form of LV_ < CONST> that @@ -425,7 +426,7 @@ /*Demonstrate special features*/ #define LV_FONT_MONTSERRAT_12_SUBPX 0 #define LV_FONT_MONTSERRAT_28_COMPRESSED 0 /*bpp = 3*/ -#define LV_FONT_DEJAVU_16_PERSIAN_HEBREW 0 /*Hebrew, Arabic, Persian letters and all their forms*/ +#define LV_FONT_DEJAVU_16_PERSIAN_HEBREW 0 /*Hebrew,Arabic,Persian letters and all their forms*/ #define LV_FONT_SIMSUN_16_CJK 0 /*1000 most common CJK radicals*/ /*Pixel perfect monospace fonts*/ @@ -441,7 +442,7 @@ #define LV_FONT_DEFAULT &lv_font_unscii_8 /*Enable handling large font and/or fonts with a lot of characters. - *The limit depends on the font size, font face and bpp. + *The limit depends on the font size,font face and bpp. *Compiler error will be triggered if a font needs it.*/ #define LV_FONT_FMT_TXT_LARGE 0 @@ -473,8 +474,8 @@ /*Can break (wrap) texts on these chars*/ #define LV_TXT_BREAK_CHARS " ,.;:-_" -/*If a word is at least this long, will break wherever "prettiest" - *To disable, set to a value <= 0*/ +/*If a word is at least this long,will break wherever "prettiest" + *To disable,set to a value <= 0*/ #define LV_TXT_LINE_BREAK_LONG_LEN 0 /*Minimum number of characters in a long word to put on a line before a break. @@ -563,12 +564,12 @@ #if LV_USE_CALENDAR #define LV_CALENDAR_WEEK_STARTS_MONDAY 0 #if LV_CALENDAR_WEEK_STARTS_MONDAY - #define LV_CALENDAR_DEFAULT_DAY_NAMES {"Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"} + #define LV_CALENDAR_DEFAULT_DAY_NAMES {"Mo","Tu","We","Th","Fr","Sa","Su"} #else - #define LV_CALENDAR_DEFAULT_DAY_NAMES {"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"} + #define LV_CALENDAR_DEFAULT_DAY_NAMES {"Su","Mo","Tu","We","Th","Fr","Sa"} #endif - #define LV_CALENDAR_DEFAULT_MONTH_NAMES {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"} + #define LV_CALENDAR_DEFAULT_MONTH_NAMES {"January","February","March","April","May","June","July","August","September","October","November","December"} #define LV_USE_CALENDAR_HEADER_ARROW 1 #define LV_USE_CALENDAR_HEADER_DROPDOWN 1 #endif /*LV_USE_CALENDAR*/ @@ -611,7 +612,7 @@ * Themes *----------*/ -/*A simple, impressive and very complete theme*/ +/*A simple,impressive and very complete theme*/ #define LV_USE_THEME_DEFAULT 1 #if LV_USE_THEME_DEFAULT @@ -647,7 +648,7 @@ /*File system interfaces for common APIs */ -/*API for fopen, fread, etc*/ +/*API for fopen,fread,etc*/ #define LV_USE_FS_STDIO 0 #if LV_USE_FS_STDIO #define LV_FS_STDIO_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/ @@ -655,7 +656,7 @@ #define LV_FS_STDIO_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/ #endif -/*API for open, read, etc*/ +/*API for open,read,etc*/ #define LV_USE_FS_POSIX 0 #if LV_USE_FS_POSIX #define LV_FS_POSIX_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/ @@ -663,7 +664,7 @@ #define LV_FS_POSIX_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/ #endif -/*API for CreateFile, ReadFile, etc*/ +/*API for CreateFile,ReadFile,etc*/ #define LV_USE_FS_WIN32 0 #if LV_USE_FS_WIN32 #define LV_FS_WIN32_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/ @@ -671,7 +672,7 @@ #define LV_FS_WIN32_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/ #endif -/*API for FATFS (needs to be added separately). Uses f_open, f_read, etc*/ +/*API for FATFS (needs to be added separately). Uses f_open,f_read,etc*/ #define LV_USE_FS_FATFS 0 #if LV_USE_FS_FATFS #define LV_FS_FATFS_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/ @@ -700,9 +701,9 @@ /*Memory used by FreeType to cache characters [bytes] (-1: no caching)*/ #define LV_FREETYPE_CACHE_SIZE (16 * 1024) #if LV_FREETYPE_CACHE_SIZE >= 0 - /* 1: bitmap cache use the sbit cache, 0:bitmap cache use the image cache. */ + /* 1: bitmap cache use the sbit cache,0:bitmap cache use the image cache. */ /* sbit cache:it is much more memory efficient for small bitmaps(font size < 256) */ - /* if font size >= 256, must be configured as image cache */ + /* if font size >= 256,must be configured as image cache */ #define LV_FREETYPE_SBIT_CACHE 0 /* Maximum number of opened FT_Face/FT_Size objects managed by this cache instance. */ /* (0:use system defaults) */ @@ -749,7 +750,7 @@ #define LV_USE_IME_PINYIN 0 #if LV_USE_IME_PINYIN /*1: Use default thesaurus*/ - /*If you do not use the default thesaurus, be sure to use `lv_ime_pinyin` after setting the thesauruss*/ + /*If you do not use the default thesaurus,be sure to use `lv_ime_pinyin` after setting the thesauruss*/ #define LV_IME_PINYIN_USE_DEFAULT_DICT 1 /*Set the maximum number of candidate panels that can be displayed*/ /*This needs to be adjusted according to the size of the screen*/ @@ -804,6 +805,6 @@ /*--END OF LV_CONF_H--*/ -#endif // EXAMPLES_MAX32672_DISPLAY_LV_CONF_H_ - #endif // End of "Content enable" + +#endif // EXAMPLES_MAX32672_DISPLAY_LV_CONF_H_ diff --git a/Libraries/FCL/Makefile_x86 b/Libraries/FCL/Makefile_x86 index 7090f8a1748..8f0c023c43d 100644 --- a/Libraries/FCL/Makefile_x86 +++ b/Libraries/FCL/Makefile_x86 @@ -2,31 +2,31 @@ # Makefile for the FCL, Free Cryptographic Library # -CC= gcc.exe +CC= gcc.exe CFLAGS= -O2 -W -Wall -DASYMMETRIC -DWORD32 -DX86 -D__x86 IFLAGS= -I ./ -I ./include -I ../include LFLAGS= -L ./ LIBFLAGS= -OBJ = main.o ecdsatest.o shatest.o ucl_sha256.o sha256_stone.o ucl_sha384.o ucl_sha512.o sha512_stone.o ucl_sia256.o ucl_sha3.o bignum.o ecdsa_generic_api.o ecdsa_high.o ucl_rng.o ucl_sys.o +OBJ = main.o ecdsatest.o shatest.o ucl_sha256.o sha256_stone.o ucl_sha384.o ucl_sha512.o sha512_stone.o ucl_sia256.o ucl_sha3.o bignum.o ecdsa_generic_api.o ecdsa_high.o ucl_rng.o ucl_sys.o TRACE_OBJ= # # Rules # -all: fcl_testing.exe +all: fcl_testing.exe # # Dependencies # -%.o: %.c - $(CC) $(CFLAGS) $(IFLAGS) -c -o $@ $< +%.o: %.c + $(CC) $(CFLAGS) $(IFLAGS) -c -o $@ $< -fcl_testing.exe: $(OBJ) - $(CC) $(CFLAGS) $(IFLAGS) $(LFLAGS) -o fcl_testing.exe $(OBJ) $(LIBFLAGS) +fcl_testing.exe: $(OBJ) + $(CC) $(CFLAGS) $(IFLAGS) $(LFLAGS) -o fcl_testing.exe $(OBJ) $(LIBFLAGS) # End Of Makefile diff --git a/Libraries/FCL/doc/Doxyfile b/Libraries/FCL/doc/Doxyfile index 24d9abbe2d0..bfba93d08e1 100644 --- a/Libraries/FCL/doc/Doxyfile +++ b/Libraries/FCL/doc/Doxyfile @@ -38,7 +38,7 @@ PROJECT_NAME = FCL # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = +PROJECT_NUMBER = # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a @@ -162,7 +162,7 @@ FULL_PATH_NAMES = YES # will be relative from the directory where doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. -STRIP_FROM_PATH = +STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the # path mentioned in the documentation of a class, which tells the reader which @@ -171,7 +171,7 @@ STRIP_FROM_PATH = # specify the list of include paths that are normally passed to the compiler # using the -I flag. -STRIP_FROM_INC_PATH = +STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but # less readable) file names. This can be useful is your file systems doesn't @@ -238,13 +238,13 @@ TAB_SIZE = 4 # "Side Effects:". You can put \n's in the value part of an alias to insert # newlines. -ALIASES = +ALIASES = # This tag can be used to specify a number of word-keyword mappings (TCL only). # A mapping has the form "name=value". For example adding "class=itcl::class" # will allow you to use the command class in the itcl::class meaning. -TCL_SUBST = +TCL_SUBST = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. For @@ -291,7 +291,7 @@ OPTIMIZE_OUTPUT_VHDL = NO # Note that for custom extensions you also need to set FILE_PATTERNS otherwise # the files are not read by doxygen. -EXTENSION_MAPPING = +EXTENSION_MAPPING = # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments # according to the Markdown format, which allows for more readable @@ -648,7 +648,7 @@ GENERATE_DEPRECATEDLIST= YES # sections, marked by \if ... \endif and \cond # ... \endcond blocks. -ENABLED_SECTIONS = +ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the # initial value of a variable or macro / define can have for it to appear in the @@ -690,7 +690,7 @@ SHOW_NAMESPACES = NO # by doxygen. Whatever the program writes to standard output is used as the file # version. For an example see the documentation. -FILE_VERSION_FILTER = +FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated @@ -713,7 +713,7 @@ LAYOUT_FILE = res/layout.xml # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the # search path. See also \cite for info how to create references. -CITE_BIB_FILES = +CITE_BIB_FILES = #--------------------------------------------------------------------------- # Configuration options related to warning and progress messages @@ -778,7 +778,7 @@ WARN_FORMAT = "$file:$line: $text" # messages should be written. If left blank the output is written to standard # error (stderr). -WARN_LOGFILE = +WARN_LOGFILE = #--------------------------------------------------------------------------- # Configuration options related to the input files @@ -874,7 +874,7 @@ RECURSIVE = YES # Note that relative paths are relative to the directory from which doxygen is # run. -EXCLUDE = +EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded @@ -890,7 +890,7 @@ EXCLUDE_SYMLINKS = NO # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories for example use the pattern */test/* -EXCLUDE_PATTERNS = +EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the @@ -901,13 +901,13 @@ EXCLUDE_PATTERNS = # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories use the pattern */test/* -EXCLUDE_SYMBOLS = +EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or directories # that contain example code fragments that are included (see the \include # command). -EXAMPLE_PATH = +EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and @@ -948,7 +948,7 @@ IMAGE_PATH = res # need to set EXTENSION_MAPPING for the extension otherwise the files are not # properly processed by doxygen. -INPUT_FILTER = +INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the @@ -961,7 +961,7 @@ INPUT_FILTER = # need to set EXTENSION_MAPPING for the extension otherwise the files are not # properly processed by doxygen. -FILTER_PATTERNS = +FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will also be used to filter the input files that are used for @@ -976,14 +976,14 @@ FILTER_SOURCE_FILES = NO # *.ext= (so without naming a filter). # This tag requires that the tag FILTER_SOURCE_FILES is set to YES. -FILTER_SOURCE_PATTERNS = +FILTER_SOURCE_PATTERNS = # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that # is part of the input, its contents will be placed on the main page # (index.html). This can be useful if you have a project on for instance GitHub # and want to reuse the introduction page also for the doxygen output. -USE_MDFILE_AS_MAINPAGE = +USE_MDFILE_AS_MAINPAGE = #--------------------------------------------------------------------------- # Configuration options related to source browsing @@ -1088,7 +1088,7 @@ CLANG_ASSISTED_PARSING = NO # specified with INPUT and INCLUDE_PATH. # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. -CLANG_OPTIONS = +CLANG_OPTIONS = #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index @@ -1114,7 +1114,7 @@ COLS_IN_ALPHA_INDEX = 5 # while generating the index headers. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. -IGNORE_PREFIX = +IGNORE_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the HTML output @@ -1158,7 +1158,7 @@ HTML_FILE_EXTENSION = .html # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_HEADER = +HTML_HEADER = # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank doxygen will generate a standard @@ -1180,7 +1180,7 @@ HTML_FOOTER = res/footer.html # obsolete. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_STYLESHEET = +HTML_STYLESHEET = # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined # cascading style sheets that are included after the standard style sheets @@ -1193,7 +1193,7 @@ HTML_STYLESHEET = # list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_EXTRA_STYLESHEET = +HTML_EXTRA_STYLESHEET = # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note @@ -1203,7 +1203,7 @@ HTML_EXTRA_STYLESHEET = # files will be copied as-is; there are no commands or markers available. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_EXTRA_FILES = +HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the style sheet and background images according to @@ -1332,7 +1332,7 @@ GENERATE_HTMLHELP = NO # written to the html output directory. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. -CHM_FILE = +CHM_FILE = # The HHC_LOCATION tag can be used to specify the location (absolute path # including file name) of the HTML help compiler (hhc.exe). If non-empty, @@ -1340,7 +1340,7 @@ CHM_FILE = # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. -HHC_LOCATION = +HHC_LOCATION = # The GENERATE_CHI flag controls if a separate .chi index file is generated # (YES) or that it should be included in the master .chm file (NO). @@ -1353,7 +1353,7 @@ GENERATE_CHI = NO # and project file content. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. -CHM_INDEX_ENCODING = +CHM_INDEX_ENCODING = # The BINARY_TOC flag controls whether a binary table of contents is generated # (YES) or a normal table of contents (NO) in the .chm file. Furthermore it @@ -1384,7 +1384,7 @@ GENERATE_QHP = NO # the HTML output folder. # This tag requires that the tag GENERATE_QHP is set to YES. -QCH_FILE = +QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace @@ -1409,7 +1409,7 @@ QHP_VIRTUAL_FOLDER = doc # filters). # This tag requires that the tag GENERATE_QHP is set to YES. -QHP_CUST_FILTER_NAME = +QHP_CUST_FILTER_NAME = # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see Qt Help Project / Custom @@ -1417,21 +1417,21 @@ QHP_CUST_FILTER_NAME = # filters). # This tag requires that the tag GENERATE_QHP is set to YES. -QHP_CUST_FILTER_ATTRS = +QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's filter section matches. Qt Help Project / Filter Attributes (see: # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). # This tag requires that the tag GENERATE_QHP is set to YES. -QHP_SECT_FILTER_ATTRS = +QHP_SECT_FILTER_ATTRS = # The QHG_LOCATION tag can be used to specify the location of Qt's # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the # generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. -QHG_LOCATION = +QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be # generated, together with the HTML files, they form an Eclipse help plugin. To @@ -1564,7 +1564,7 @@ MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols # This tag requires that the tag USE_MATHJAX is set to YES. -MATHJAX_EXTENSIONS = +MATHJAX_EXTENSIONS = # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # of code that will be used on startup of the MathJax code. See the MathJax site @@ -1572,7 +1572,7 @@ MATHJAX_EXTENSIONS = # example see the documentation. # This tag requires that the tag USE_MATHJAX is set to YES. -MATHJAX_CODEFILE = +MATHJAX_CODEFILE = # When the SEARCHENGINE tag is enabled doxygen will generate a search box for # the HTML output. The underlying search engine uses javascript and DHTML and @@ -1632,7 +1632,7 @@ EXTERNAL_SEARCH = NO # Searching" for details. # This tag requires that the tag SEARCHENGINE is set to YES. -SEARCHENGINE_URL = +SEARCHENGINE_URL = # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed # search data is written to a file for indexing by an external tool. With the @@ -1648,7 +1648,7 @@ SEARCHDATA_FILE = searchdata.xml # projects and redirect the results back to the right project. # This tag requires that the tag SEARCHENGINE is set to YES. -EXTERNAL_SEARCH_ID = +EXTERNAL_SEARCH_ID = # The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen # projects other than the one defined by this configuration file, but that are @@ -1658,7 +1658,7 @@ EXTERNAL_SEARCH_ID = # EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ... # This tag requires that the tag SEARCHENGINE is set to YES. -EXTRA_SEARCH_MAPPINGS = +EXTRA_SEARCH_MAPPINGS = #--------------------------------------------------------------------------- # Configuration options related to the LaTeX output @@ -1722,7 +1722,7 @@ PAPER_TYPE = a4 # If left blank no extra packages will be included. # This tag requires that the tag GENERATE_LATEX is set to YES. -EXTRA_PACKAGES = +EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for the # generated LaTeX document. The header should contain everything until the first @@ -1760,7 +1760,7 @@ LATEX_FOOTER = res/footer.tex # list). # This tag requires that the tag GENERATE_LATEX is set to YES. -LATEX_EXTRA_STYLESHEET = +LATEX_EXTRA_STYLESHEET = # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the LATEX_OUTPUT output @@ -1768,7 +1768,7 @@ LATEX_EXTRA_STYLESHEET = # markers available. # This tag requires that the tag GENERATE_LATEX is set to YES. -LATEX_EXTRA_FILES = +LATEX_EXTRA_FILES = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will @@ -1876,14 +1876,14 @@ RTF_HYPERLINKS = NO # default style sheet that doxygen normally uses. # This tag requires that the tag GENERATE_RTF is set to YES. -RTF_STYLESHEET_FILE = +RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an RTF document. Syntax is # similar to doxygen's config file. A template extensions file can be generated # using doxygen -e rtf extensionFile. # This tag requires that the tag GENERATE_RTF is set to YES. -RTF_EXTENSIONS_FILE = +RTF_EXTENSIONS_FILE = # If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code # with syntax highlighting in the RTF output. @@ -1928,7 +1928,7 @@ MAN_EXTENSION = .3 # MAN_EXTENSION with the initial . removed. # This tag requires that the tag GENERATE_MAN is set to YES. -MAN_SUBDIR = +MAN_SUBDIR = # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it # will generate one additional man file for each entity documented in the real @@ -2041,7 +2041,7 @@ PERLMOD_PRETTY = YES # overwrite each other's variables. # This tag requires that the tag GENERATE_PERLMOD is set to YES. -PERLMOD_MAKEVAR_PREFIX = +PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor @@ -2082,7 +2082,7 @@ SEARCH_INCLUDES = YES # preprocessor. # This tag requires that the tag SEARCH_INCLUDES is set to YES. -INCLUDE_PATH = +INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the @@ -2090,7 +2090,7 @@ INCLUDE_PATH = # used. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. -INCLUDE_FILE_PATTERNS = +INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that are # defined before the preprocessor is started (similar to the -D option of e.g. @@ -2100,7 +2100,7 @@ INCLUDE_FILE_PATTERNS = # recursively expanded use the := operator instead of the = operator. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. -PREDEFINED = +PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this # tag can be used to specify a list of macro names that should be expanded. The @@ -2109,7 +2109,7 @@ PREDEFINED = # definition found in the source code. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. -EXPAND_AS_DEFINED = +EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will # remove all references to function-like macros that are alone on a line, have @@ -2138,13 +2138,13 @@ SKIP_FUNCTION_MACROS = YES # the path). If a tag file is not located in the directory in which doxygen is # run, you must also specify the path to the tagfile here. -TAGFILES = +TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create a # tag file that is based on the input files it reads. See section "Linking to # external documentation" for more information about the usage of tag files. -GENERATE_TAGFILE = +GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES, all external class will be listed in # the class index. If set to NO, only the inherited external classes will be @@ -2193,14 +2193,14 @@ CLASS_DIAGRAMS = YES # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. -MSCGEN_PATH = +MSCGEN_PATH = # You can include diagrams made with dia in doxygen documentation. Doxygen will # then run dia to produce the diagram and insert it in the documentation. The # DIA_PATH tag allows you to specify the directory where the dia binary resides. # If left empty dia is assumed to be found in the default search path. -DIA_PATH = +DIA_PATH = # If set to YES the inheritance and collaboration graphs will hide inheritance # and usage relations if the target is undocumented or is not a class. @@ -2249,7 +2249,7 @@ DOT_FONTSIZE = 10 # the path where dot can find it using this tag. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_FONTPATH = +DOT_FONTPATH = # If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for # each documented class showing the direct and indirect inheritance relations. @@ -2393,26 +2393,26 @@ INTERACTIVE_SVG = NO # found. If left blank, it is assumed the dot tool can be found in the path. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_PATH = +DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the \dotfile # command). # This tag requires that the tag HAVE_DOT is set to YES. -DOTFILE_DIRS = +DOTFILE_DIRS = # The MSCFILE_DIRS tag can be used to specify one or more directories that # contain msc files that are included in the documentation (see the \mscfile # command). -MSCFILE_DIRS = +MSCFILE_DIRS = # The DIAFILE_DIRS tag can be used to specify one or more directories that # contain dia files that are included in the documentation (see the \diafile # command). -DIAFILE_DIRS = +DIAFILE_DIRS = # When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the # path where java can find the plantuml.jar file. If left blank, it is assumed @@ -2420,17 +2420,17 @@ DIAFILE_DIRS = # generate a warning when it encounters a \startuml command in this case and # will not generate output for the diagram. -PLANTUML_JAR_PATH = +PLANTUML_JAR_PATH = # When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a # configuration file for plantuml. -PLANTUML_CFG_FILE = +PLANTUML_CFG_FILE = # When using plantuml, the specified paths are searched for files specified by # the !include statement in a plantuml block. -PLANTUML_INCLUDE_PATH = +PLANTUML_INCLUDE_PATH = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes # that will be shown in the graph. If the number of nodes in a graph becomes diff --git a/Libraries/FCL/doc/Makefile b/Libraries/FCL/doc/Makefile index e58d41381cd..7e70a496600 100644 --- a/Libraries/FCL/doc/Makefile +++ b/Libraries/FCL/doc/Makefile @@ -1,5 +1,5 @@ doc: - doxygen + doxygen clean: - rm -rf ./output + rm -rf ./output diff --git a/Libraries/FCL/doc/html/_formulas.tex b/Libraries/FCL/doc/html/_formulas.tex index 2f6764542e8..4cfeb50d9a8 100644 --- a/Libraries/FCL/doc/html/_formulas.tex +++ b/Libraries/FCL/doc/html/_formulas.tex @@ -11,7 +11,7 @@ $ E ~:~ y^{2} + x.y ~=~x^3+ a.x^2 + b $ \pagebreak -$ (x,y) $ +$ (x, y) $ \pagebreak $ Q = k.P $ diff --git a/Libraries/FCL/doc/html/_p_c_i_g_u_i_d_a_n_c_e.html b/Libraries/FCL/doc/html/_p_c_i_g_u_i_d_a_n_c_e.html index 043ebe9541a..0acd4dc6e42 100644 --- a/Libraries/FCL/doc/html/_p_c_i_g_u_i_d_a_n_c_e.html +++ b/Libraries/FCL/doc/html/_p_c_i_g_u_i_d_a_n_c_e.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@ -
@@ -75,7 +75,7 @@
-
@@ -218,7 +218,7 @@

  • in the above, replace SIGNING_KEY_XXXXX by the appropriate signing key identifier (one of SIGNING_KEY_FW, SIGNING_KEY_TRUSTED, SIGNING_KEY_OTHER)
  • extend the file ./mbed-os/target/TARGET_Maxim/common/max325xx.ld.inc
  • below the marker "SECURE BOXES", add this set of definitions:
    .text.box_NAME_cfg :
    {
    *path/to/box_NAME*(.keep.addmodules*)
    }> FLASH_MOD
    .text.box_NAME_code :
    {
    __start_box_NAME = .;
    *path/to/box_NAME*(.text* .rodata*)
    FILL(0xab)
    . = ALIGN(4);
    } > FLASH_MOD
    .data.box_NAME_datainit :
    {
    KEEP(*path/to/box_NAME*(.data*))
    FILL(0xab)
    . = ALIGN(4);
    } > RAM AT > FLASH_MOD = 0xcc
    __start_box_NAME_data_src = LOADADDR(.data.box_NAME_datainit);
    __start_box_NAME_data_dest = ADDR(.data.box_NAME_datainit);
    __end_box_NAME = LOADADDR(.data.box_NAME_datainit)+SIZEOF(.data.box_NAME_datainit);
  • -
  • Modify the top Makefile: in the target %.elf.signed: %.elf Makefile, add an additional line:
    $(call signmodule,box_NAME,$(SIGNINGKEY_XXX_PEM),$(TEMPDIR)${<F}.temp)
    Replace SIGNINGKEY_XXX_PEM by the appropriate file name that contains the private signing key.
  • +
  • Modify the top Makefile: in the target %.elf.signed: %.elf Makefile, add an additional line:
    $(call signmodule, box_NAME, $(SIGNINGKEY_XXX_PEM), $(TEMPDIR)${<F}.temp)
    Replace SIGNINGKEY_XXX_PEM by the appropriate file name that contains the private signing key.
  • Firmware signature

    @@ -257,7 +257,7 @@

    Developer guidance on how to correctly configure and review Deeptrust implementations to ensure that they are correctly isolating non-security code:

    Before using a signing key to approve a box for being added to the software or firmware, the developer must ensure that:

    • the check_acl function correctly limits the ACLs of boxes
    • -
    • even if allowed by check_acl for the selected signing key,
    • +
    • even if allowed by check_acl for the selected signing key,
    • the code must be manually reviewed and tested to make sure that:
      • their sensitive data is kept in secure memory and not leaked in the public memory (use the private heap of the box)
      • the access control to their services offered via RPC is correctly implemented and tested
      • @@ -279,7 +279,7 @@

        Minimal configuration

        The provided solution ensures the minimal software configuration through the use of GCC's options:

        • -fdata-sections -ffunction-sections for compiling
        • -
        • -Wl,–gc-section for linking
        • +
        • -Wl, –gc-section for linking

        The above options eliminates dead code. Hence, by definition, only the strictly useful code is embedded in the final binary.

        diff --git a/Libraries/FCL/doc/html/_r_e_f_e_r_e_n_c_e_s.html b/Libraries/FCL/doc/html/_r_e_f_e_r_e_n_c_e_s.html index 1cffc92ceee..40e6bbfe394 100644 --- a/Libraries/FCL/doc/html/_r_e_f_e_r_e_n_c_e_s.html +++ b/Libraries/FCL/doc/html/_r_e_f_e_r_e_n_c_e_s.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@

    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/_r_e_l_e_a_s_e__n_o_t_e_s.html b/Libraries/FCL/doc/html/_r_e_l_e_a_s_e__n_o_t_e_s.html index d3c8f84275a..26f7275327e 100644 --- a/Libraries/FCL/doc/html/_r_e_l_e_a_s_e__n_o_t_e_s.html +++ b/Libraries/FCL/doc/html/_r_e_l_e_a_s_e__n_o_t_e_s.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/annotated.html b/Libraries/FCL/doc/html/annotated.html index 111c9b77783..51118eb20e2 100644 --- a/Libraries/FCL/doc/html/annotated.html +++ b/Libraries/FCL/doc/html/annotated.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/classes.html b/Libraries/FCL/doc/html/classes.html index bfd40fb231e..b67d1bfcc54 100644 --- a/Libraries/FCL/doc/html/classes.html +++ b/Libraries/FCL/doc/html/classes.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/Libraries/FCL/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html index 61505f7a9d4..68a44cad07b 100644 --- a/Libraries/FCL/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html +++ b/Libraries/FCL/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/dir_9a29ba0da82fedb5b32f280ade68783f.html b/Libraries/FCL/doc/html/dir_9a29ba0da82fedb5b32f280ade68783f.html index c54a897eefc..0a5e3971693 100644 --- a/Libraries/FCL/doc/html/dir_9a29ba0da82fedb5b32f280ade68783f.html +++ b/Libraries/FCL/doc/html/dir_9a29ba0da82fedb5b32f280ade68783f.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/dir_b0856f6b0d80ccb263b2f415c91f9e17.html b/Libraries/FCL/doc/html/dir_b0856f6b0d80ccb263b2f415c91f9e17.html index 6cca94620b3..334ee1cf7eb 100644 --- a/Libraries/FCL/doc/html/dir_b0856f6b0d80ccb263b2f415c91f9e17.html +++ b/Libraries/FCL/doc/html/dir_b0856f6b0d80ccb263b2f415c91f9e17.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/dir_b70bfd746afac09928c9c01feb72ccc3.html b/Libraries/FCL/doc/html/dir_b70bfd746afac09928c9c01feb72ccc3.html index 781eec1b6d4..c96398bb773 100644 --- a/Libraries/FCL/doc/html/dir_b70bfd746afac09928c9c01feb72ccc3.html +++ b/Libraries/FCL/doc/html/dir_b70bfd746afac09928c9c01feb72ccc3.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/dir_d44c64559bbebec7f509842c48db8b23.html b/Libraries/FCL/doc/html/dir_d44c64559bbebec7f509842c48db8b23.html index 0b6bf183a7c..7655eedb707 100644 --- a/Libraries/FCL/doc/html/dir_d44c64559bbebec7f509842c48db8b23.html +++ b/Libraries/FCL/doc/html/dir_d44c64559bbebec7f509842c48db8b23.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/doxygen.css b/Libraries/FCL/doc/html/doxygen.css index 63207047efe..9915a8728f4 100644 --- a/Libraries/FCL/doc/html/doxygen.css +++ b/Libraries/FCL/doc/html/doxygen.css @@ -1,89 +1,89 @@ /* The standard CSS for doxygen 1.8.13 */ body, table, div, p, dl { - font: 400 14px/22px Roboto,sans-serif; + font: 400 14px/22px Roboto, sans-serif; } p.reference, p.definition { - font: 400 14px/22px Roboto,sans-serif; + font: 400 14px/22px Roboto, sans-serif; } /* @group Heading Levels */ h1.groupheader { - font-size: 150%; + font-size: 150%; } .title { - font: 400 14px/28px Roboto,sans-serif; - font-size: 150%; - font-weight: bold; - margin: 10px 2px; + font: 400 14px/28px Roboto, sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; } h2.groupheader { - border-bottom: 1px solid #7EC0BB; - color: #316561; - font-size: 150%; - font-weight: normal; - margin-top: 1.75em; - padding-top: 8px; - padding-bottom: 4px; - width: 100%; + border-bottom: 1px solid #7EC0BB; + color: #316561; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; } h3.groupheader { - font-size: 100%; + font-size: 100%; } h1, h2, h3, h4, h5, h6 { - -webkit-transition: text-shadow 0.5s linear; - -moz-transition: text-shadow 0.5s linear; - -ms-transition: text-shadow 0.5s linear; - -o-transition: text-shadow 0.5s linear; - transition: text-shadow 0.5s linear; - margin-right: 15px; + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; } h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { - text-shadow: 0 0 15px cyan; + text-shadow: 0 0 15px cyan; } dt { - font-weight: bold; + font-weight: bold; } div.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; } p.startli, p.startdd { - margin-top: 2px; + margin-top: 2px; } p.starttd { - margin-top: 0px; + margin-top: 0px; } p.endli { - margin-bottom: 0px; + margin-bottom: 0px; } p.enddd { - margin-bottom: 4px; + margin-bottom: 4px; } p.endtd { - margin-bottom: 2px; + margin-bottom: 2px; } /* @end */ caption { - font-weight: bold; + font-weight: bold; } span.legend { @@ -97,45 +97,45 @@ h3.version { } div.qindex, div.navtab{ - background-color: #E9F4F3; - border: 1px solid #9BCFCA; - text-align: center; + background-color: #E9F4F3; + border: 1px solid #9BCFCA; + text-align: center; } div.qindex, div.navpath { - width: 100%; - line-height: 140%; + width: 100%; + line-height: 140%; } div.navtab { - margin-right: 15px; + margin-right: 15px; } /* @group Link Styling */ a { - color: #397671; - font-weight: normal; - text-decoration: none; + color: #397671; + font-weight: normal; + text-decoration: none; } .contents a:visited { - color: #438C85; + color: #438C85; } a:hover { - text-decoration: underline; + text-decoration: underline; } a.qindex { - font-weight: bold; + font-weight: bold; } a.qindexHL { - font-weight: bold; - background-color: #93CBC6; - color: #ffffff; - border: 1px double #7CC0BA; + font-weight: bold; + background-color: #93CBC6; + color: #ffffff; + border: 1px double #7CC0BA; } .contents a.qindexHL:visited { @@ -143,24 +143,24 @@ a.qindexHL { } a.el { - font-weight: bold; + font-weight: bold; } a.elRef { } a.code, a.code:visited, a.line, a.line:visited { - color: #4665A2; + color: #4665A2; } a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { - color: #4665A2; + color: #4665A2; } /* @end */ dl.el { - margin-left: -1cm; + margin-left: -1cm; } pre.fragment { @@ -179,35 +179,35 @@ pre.fragment { div.fragment { padding: 0px; margin: 4px 8px 4px 2px; - background-color: #FBFDFD; - border: 1px solid #BFE0DD; + background-color: #FBFDFD; + border: 1px solid #BFE0DD; } div.line { - font-family: monospace, fixed; + font-family: monospace, fixed; font-size: 13px; - min-height: 13px; - line-height: 1.0; - text-wrap: unrestricted; - white-space: -moz-pre-wrap; /* Moz */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - white-space: pre-wrap; /* CSS3 */ - word-wrap: break-word; /* IE 5.5+ */ - text-indent: -53px; - padding-left: 53px; - padding-bottom: 0px; - margin: 0px; - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; } div.line:after { @@ -216,51 +216,51 @@ div.line:after { } div.line.glow { - background-color: cyan; - box-shadow: 0 0 10px cyan; + background-color: cyan; + box-shadow: 0 0 10px cyan; } span.lineno { - padding-right: 4px; - text-align: right; - border-right: 2px solid #0F0; - background-color: #E8E8E8; + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; white-space: pre; } span.lineno a { - background-color: #D8D8D8; + background-color: #D8D8D8; } span.lineno a:hover { - background-color: #C8C8C8; + background-color: #C8C8C8; } .lineno { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } div.ah, span.ah { - background-color: black; - font-weight: bold; - color: #ffffff; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; - box-shadow: 2px 2px 3px #999; - -webkit-box-shadow: 2px 2px 3px #999; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000), color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); } div.classindex ul { @@ -273,126 +273,126 @@ div.classindex span.ai { } div.groupHeader { - margin-left: 16px; - margin-top: 12px; - font-weight: bold; + margin-left: 16px; + margin-top: 12px; + font-weight: bold; } div.groupText { - margin-left: 16px; - font-style: italic; + margin-left: 16px; + font-style: italic; } body { - background-color: white; - color: black; + background-color: white; + color: black; margin: 0; } div.contents { - margin-top: 10px; - margin-left: 12px; - margin-right: 8px; + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; } td.indexkey { - background-color: #E9F4F3; - font-weight: bold; - border: 1px solid #BFE0DD; - margin: 2px 0px 2px 0; - padding: 2px 10px; + background-color: #E9F4F3; + font-weight: bold; + border: 1px solid #BFE0DD; + margin: 2px 0px 2px 0; + padding: 2px 10px; white-space: nowrap; vertical-align: top; } td.indexvalue { - background-color: #E9F4F3; - border: 1px solid #BFE0DD; - padding: 2px 10px; - margin: 2px 0px; + background-color: #E9F4F3; + border: 1px solid #BFE0DD; + padding: 2px 10px; + margin: 2px 0px; } tr.memlist { - background-color: #ECF5F5; + background-color: #ECF5F5; } p.formulaDsp { - text-align: center; + text-align: center; } img.formulaDsp { - + } img.formulaInl { - vertical-align: middle; + vertical-align: middle; } div.center { - text-align: center; + text-align: center; margin-top: 0px; margin-bottom: 0px; padding: 0px; } div.center img { - border: 0px; + border: 0px; } address.footer { - text-align: right; - padding-right: 12px; + text-align: right; + padding-right: 12px; } img.footer { - border: 0px; - vertical-align: middle; + border: 0px; + vertical-align: middle; } /* @group Code Colorization */ span.keyword { - color: #008000 + color: #008000 } span.keywordtype { - color: #604020 + color: #604020 } span.keywordflow { - color: #e08000 + color: #e08000 } span.comment { - color: #800000 + color: #800000 } span.preprocessor { - color: #806020 + color: #806020 } span.stringliteral { - color: #002080 + color: #002080 } span.charliteral { - color: #008080 + color: #008080 } -span.vhdldigit { - color: #ff00ff +span.vhdldigit { + color: #ff00ff } -span.vhdlchar { - color: #000000 +span.vhdlchar { + color: #000000 } -span.vhdlkeyword { - color: #700070 +span.vhdlkeyword { + color: #700070 } -span.vhdllogic { - color: #ff0000 +span.vhdllogic { + color: #ff0000 } blockquote { @@ -406,85 +406,85 @@ blockquote { /* .search { - color: #003399; - font-weight: bold; + color: #003399; + font-weight: bold; } form.search { - margin-bottom: 0px; - margin-top: 0px; + margin-bottom: 0px; + margin-top: 0px; } input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; } */ td.tiny { - font-size: 75%; + font-size: 75%; } .dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid #9BCFCA; + padding: 4px; + border-collapse: collapse; + border: 1px solid #9BCFCA; } th.dirtab { - background: #E9F4F3; - font-weight: bold; + background: #E9F4F3; + font-weight: bold; } hr { - height: 0px; - border: none; - border-top: 1px solid #47948D; + height: 0px; + border: none; + border-top: 1px solid #47948D; } hr.footer { - height: 1px; + height: 1px; } /* @group Member Descriptions */ table.memberdecls { - border-spacing: 0px; - padding: 0px; + border-spacing: 0px; + padding: 0px; } .memberdecls td, .fieldtable tr { - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; } .memberdecls td.glow, .fieldtable tr.glow { - background-color: cyan; - box-shadow: 0 0 15px cyan; + background-color: cyan; + box-shadow: 0 0 15px cyan; } .mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F8FCFB; - border: none; - margin: 4px; - padding: 1px 0 0 8px; + background-color: #F8FCFB; + border: none; + margin: 4px; + padding: 1px 0 0 8px; } .mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: #555; + padding: 0px 8px 4px 8px; + color: #555; } .memSeparator { @@ -499,13 +499,13 @@ table.memberdecls { } .memItemRight { - width: 100%; + width: 100%; } .memTemplParams { - color: #438C85; + color: #438C85; white-space: nowrap; - font-size: 80%; + font-size: 80%; } /* @end */ @@ -515,19 +515,19 @@ table.memberdecls { /* Styles for detailed member documentation */ .memtitle { - padding: 8px; - border-top: 1px solid #A0D1CD; - border-left: 1px solid #A0D1CD; - border-right: 1px solid #A0D1CD; - border-top-right-radius: 4px; - border-top-left-radius: 4px; - margin-bottom: -1px; - background-image: url('nav_f.png'); - background-repeat: repeat-x; - background-color: #DFEFEE; - line-height: 1.25; - font-weight: 300; - float:left; + padding: 8px; + border-top: 1px solid #A0D1CD; + border-left: 1px solid #A0D1CD; + border-right: 1px solid #A0D1CD; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #DFEFEE; + line-height: 1.25; + font-weight: 300; + float:left; } .permalink @@ -538,29 +538,29 @@ table.memberdecls { } .memtemplate { - font-size: 80%; - color: #438C85; - font-weight: normal; - margin-left: 9px; + font-size: 80%; + color: #438C85; + font-weight: normal; + margin-left: 9px; } .memnav { - background-color: #E9F4F3; - border: 1px solid #9BCFCA; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; + background-color: #E9F4F3; + border: 1px solid #9BCFCA; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; } .mempage { - width: 100%; + width: 100%; } .memitem { - padding: 0; - margin-bottom: 10px; - margin-right: 5px; + padding: 0; + margin-bottom: 10px; + margin-right: 5px; -webkit-transition: box-shadow 0.5s linear; -moz-transition: box-shadow 0.5s linear; -ms-transition: box-shadow 0.5s linear; @@ -580,7 +580,7 @@ table.memberdecls { } .memname td { - vertical-align: bottom; + vertical-align: bottom; } .memproto, dl.reflist dt { @@ -605,14 +605,14 @@ table.memberdecls { } .overload { - font-family: "courier new",courier,monospace; - font-size: 65%; + font-family: "courier new", courier, monospace; + font-size: 65%; } .memdoc, dl.reflist dd { - border-bottom: 1px solid #A0D1CD; - border-left: 1px solid #A0D1CD; - border-right: 1px solid #A0D1CD; + border-bottom: 1px solid #A0D1CD; + border-left: 1px solid #A0D1CD; + border-right: 1px solid #A0D1CD; padding: 6px 10px 2px 10px; background-color: #FBFDFD; border-top-width: 0; @@ -643,19 +643,19 @@ dl.reflist dd { } .paramkey { - text-align: right; + text-align: right; } .paramtype { - white-space: nowrap; + white-space: nowrap; } .paramname { - color: #602020; - white-space: nowrap; + color: #602020; + white-space: nowrap; } .paramname em { - font-style: normal; + font-style: normal; } .paramname code { line-height: 14px; @@ -664,36 +664,36 @@ dl.reflist dd { .params, .retval, .exception, .tparams { margin-left: 0px; padding-left: 0px; -} +} .params .paramname, .retval .paramname { font-weight: bold; vertical-align: top; } - + .params .paramtype { font-style: italic; vertical-align: top; -} - +} + .params .paramdir { - font-family: "courier new",courier,monospace; + font-family: "courier new", courier, monospace; vertical-align: top; } table.mlabels { - border-spacing: 0px; + border-spacing: 0px; } td.mlabels-left { - width: 100%; - padding: 0px; + width: 100%; + padding: 0px; } td.mlabels-right { - vertical-align: bottom; - padding: 0px; - white-space: nowrap; + vertical-align: bottom; + padding: 0px; + white-space: nowrap; } span.mlabels { @@ -706,14 +706,14 @@ span.mlabel { border-left:1px solid #4DA19A; border-right:1px solid #BFE0DD; border-bottom:1px solid #BFE0DD; - text-shadow: none; - color: white; - margin-right: 4px; - padding: 2px 3px; - border-radius: 3px; - font-size: 7pt; - white-space: nowrap; - vertical-align: middle; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; } @@ -736,13 +736,13 @@ div.directory { .directory td { margin: 0px; padding: 0px; - vertical-align: top; + vertical-align: top; } .directory td.entry { white-space: nowrap; padding-right: 6px; - padding-top: 3px; + padding-top: 3px; } .directory td.entry a { @@ -756,18 +756,18 @@ div.directory { .directory td.desc { width: 100%; padding-left: 6px; - padding-right: 6px; - padding-top: 3px; - border-left: 1px solid rgba(0,0,0,0.05); + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0, 0, 0, 0.05); } .directory tr.even { - padding-left: 6px; - background-color: #F6FAFA; + padding-left: 6px; + background-color: #F6FAFA; } .directory img { - vertical-align: -30%; + vertical-align: -30%; } .directory .levels { @@ -781,7 +781,7 @@ div.directory { cursor: pointer; padding-left: 2px; padding-right: 2px; - color: #397671; + color: #397671; } .arrow { @@ -853,47 +853,47 @@ div.directory { } table.directory { - font: 400 14px Roboto,sans-serif; + font: 400 14px Roboto, sans-serif; } /* @end */ div.dynheader { margin-top: 8px; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } address { - font-style: normal; - color: #254E4A; + font-style: normal; + color: #254E4A; } table.doxtable caption { - caption-side: top; + caption-side: top; } table.doxtable { - border-collapse:collapse; + border-collapse:collapse; margin-top: 4px; margin-bottom: 4px; } table.doxtable td, table.doxtable th { - border: 1px solid #285350; - padding: 3px 7px 2px; + border: 1px solid #285350; + padding: 3px 7px 2px; } table.doxtable th { - background-color: #336A65; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; + background-color: #336A65; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; } table.fieldtable { @@ -931,8 +931,8 @@ table.fieldtable { .fieldtable td.fielddoc p:first-child { margin-top: 0px; -} - +} + .fieldtable td.fielddoc p:last-child { margin-bottom: 2px; } @@ -962,57 +962,57 @@ table.fieldtable { .tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: url('tab_b.png'); - z-index: 101; - overflow: hidden; - font-size: 13px; + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; } .navpath ul { - font-size: 11px; - background-image:url('tab_b.png'); - background-repeat:repeat-x; - background-position: 0 -5px; - height:30px; - line-height:30px; - color:#80C2BC; - border:solid 1px #BCDEDC; - overflow:hidden; - margin:0px; - padding:0px; + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#80C2BC; + border:solid 1px #BCDEDC; + overflow:hidden; + margin:0px; + padding:0px; } .navpath li { - list-style-type:none; - float:left; - padding-left:10px; - padding-right:15px; - background-image:url('bc_s.png'); - background-repeat:no-repeat; - background-position:right; - color:#316762; + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#316762; } .navpath li.navelem a { - height:32px; - display:block; - text-decoration: none; - outline: none; - color: #234A46; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #234A46; + font-family: 'Lucida Grande', Geneva, Helvetica, Arial, sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; } .navpath li.navelem a:hover { - color:#5DB1AA; + color:#5DB1AA; } .navpath li.footer @@ -1031,16 +1031,16 @@ table.fieldtable { div.summary { - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; -} + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} div.summary a { - white-space: nowrap; + white-space: nowrap; } table.classindex @@ -1051,34 +1051,34 @@ table.classindex margin-right: 3%; width: 94%; border: 0; - border-spacing: 0; + border-spacing: 0; padding: 0; } div.ingroups { - font-size: 8pt; - width: 50%; - text-align: left; + font-size: 8pt; + width: 50%; + text-align: left; } div.ingroups a { - white-space: nowrap; + white-space: nowrap; } div.header { background-image:url('nav_h.png'); background-repeat:repeat-x; - background-color: #F8FCFB; - margin: 0px; - border-bottom: 1px solid #BFE0DD; + background-color: #F8FCFB; + margin: 0px; + border-bottom: 1px solid #BFE0DD; } div.headertitle { - padding: 5px 5px 5px 10px; + padding: 5px 5px 5px 10px; } dl @@ -1089,8 +1089,8 @@ dl /* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ dl.section { - margin-left: 0px; - padding-left: 0px; + margin-left: 0px; + padding-left: 0px; } dl.note @@ -1150,22 +1150,22 @@ dl.bug } dl.section dd { - margin-bottom: 6px; + margin-bottom: 6px; } #projectlogo { - text-align: center; - vertical-align: bottom; - border-collapse: separate; + text-align: center; + vertical-align: bottom; + border-collapse: separate; } - + #projectlogo img -{ - border: 0px none; +{ + border: 0px none; } - + #projectalign { vertical-align: middle; @@ -1173,31 +1173,31 @@ dl.section dd { #projectname { - font: 300% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 2px 0px; + font: 300% Tahoma, Arial, sans-serif; + margin: 0px; + padding: 2px 0px; } - + #projectbrief { - font: 120% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; + font: 120% Tahoma, Arial, sans-serif; + margin: 0px; + padding: 0px; } #projectnumber { - font: 50% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; + font: 50% Tahoma, Arial, sans-serif; + margin: 0px; + padding: 0px; } #titlearea { - padding: 0px; - margin: 0px; - width: 100%; - border-bottom: 1px solid #4DA19A; + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #4DA19A; } .image @@ -1227,12 +1227,12 @@ dl.section dd { .caption { - font-weight: bold; + font-weight: bold; } div.zoom { - border: 1px solid #87C5BF; + border: 1px solid #87C5BF; } dl.citelist { @@ -1265,15 +1265,15 @@ div.toc { div.toc li { background: url("bdwn.png") no-repeat scroll 0 5px transparent; - font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + font: 10px/1.2 Verdana, DejaVu Sans, Geneva, sans-serif; margin-top: 5px; padding-left: 10px; padding-top: 2px; } div.toc h3 { - font: bold 12px/1.2 Arial,FreeSans,sans-serif; - color: #438C85; + font: bold 12px/1.2 Arial, FreeSans, sans-serif; + color: #438C85; border-bottom: 0 none; margin: 0; } @@ -1282,7 +1282,7 @@ div.toc ul { list-style: none outside none; border: medium none; padding: 0px; -} +} div.toc li.level1 { margin-left: 0px; @@ -1304,12 +1304,12 @@ div.toc li.level4 { font-weight: bold; color: gray; cursor: pointer; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } .inherit_header td { @@ -1333,24 +1333,24 @@ tr.heading h2 { } #powerTip { - cursor: default; - white-space: nowrap; - background-color: white; - border: 1px solid gray; - border-radius: 4px 4px 4px 4px; - box-shadow: 1px 1px 7px gray; - display: none; - font-size: smaller; - max-width: 80%; - opacity: 0.9; - padding: 1ex 1em 1em; - position: absolute; - z-index: 2147483647; + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; } #powerTip div.ttdoc { color: grey; - font-style: italic; + font-style: italic; } #powerTip div.ttname a { @@ -1368,132 +1368,132 @@ tr.heading h2 { #powerTip div { margin: 0px; padding: 0px; - font: 12px/16px Roboto,sans-serif; + font: 12px/16px Roboto, sans-serif; } #powerTip:before, #powerTip:after { - content: ""; - position: absolute; - margin: 0px; + content: ""; + position: absolute; + margin: 0px; } -#powerTip.n:after, #powerTip.n:before, -#powerTip.s:after, #powerTip.s:before, -#powerTip.w:after, #powerTip.w:before, -#powerTip.e:after, #powerTip.e:before, +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, #powerTip.ne:after, #powerTip.ne:before, #powerTip.se:after, #powerTip.se:before, #powerTip.nw:after, #powerTip.nw:before, #powerTip.sw:after, #powerTip.sw:before { - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; } -#powerTip.n:after, #powerTip.s:after, -#powerTip.w:after, #powerTip.e:after, +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, #powerTip.nw:after, #powerTip.ne:after, #powerTip.sw:after, #powerTip.se:after { - border-color: rgba(255, 255, 255, 0); + border-color: rgba(255, 255, 255, 0); } -#powerTip.n:before, #powerTip.s:before, -#powerTip.w:before, #powerTip.e:before, +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, #powerTip.nw:before, #powerTip.ne:before, #powerTip.sw:before, #powerTip.se:before { - border-color: rgba(128, 128, 128, 0); + border-color: rgba(128, 128, 128, 0); } -#powerTip.n:after, #powerTip.n:before, +#powerTip.n:after, #powerTip.n:before, #powerTip.ne:after, #powerTip.ne:before, #powerTip.nw:after, #powerTip.nw:before { - top: 100%; + top: 100%; } #powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: #ffffff; - border-width: 10px; - margin: 0px -10px; + border-top-color: #ffffff; + border-width: 10px; + margin: 0px -10px; } #powerTip.n:before { - border-top-color: #808080; - border-width: 11px; - margin: 0px -11px; + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; } #powerTip.n:after, #powerTip.n:before { - left: 50%; + left: 50%; } #powerTip.nw:after, #powerTip.nw:before { - right: 14px; + right: 14px; } #powerTip.ne:after, #powerTip.ne:before { - left: 14px; + left: 14px; } -#powerTip.s:after, #powerTip.s:before, +#powerTip.s:after, #powerTip.s:before, #powerTip.se:after, #powerTip.se:before, #powerTip.sw:after, #powerTip.sw:before { - bottom: 100%; + bottom: 100%; } #powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: #ffffff; - border-width: 10px; - margin: 0px -10px; + border-bottom-color: #ffffff; + border-width: 10px; + margin: 0px -10px; } #powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { - border-bottom-color: #808080; - border-width: 11px; - margin: 0px -11px; + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; } #powerTip.s:after, #powerTip.s:before { - left: 50%; + left: 50%; } #powerTip.sw:after, #powerTip.sw:before { - right: 14px; + right: 14px; } #powerTip.se:after, #powerTip.se:before { - left: 14px; + left: 14px; } #powerTip.e:after, #powerTip.e:before { - left: 100%; + left: 100%; } #powerTip.e:after { - border-left-color: #ffffff; - border-width: 10px; - top: 50%; - margin-top: -10px; + border-left-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; } #powerTip.e:before { - border-left-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; } #powerTip.w:after, #powerTip.w:before { - right: 100%; + right: 100%; } #powerTip.w:after { - border-right-color: #ffffff; - border-width: 10px; - top: 50%; - margin-top: -10px; + border-right-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; } #powerTip.w:before { - border-right-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; } @media print @@ -1519,77 +1519,77 @@ tr.heading h2 { /* table.markdownTable { - border-collapse:collapse; + border-collapse:collapse; margin-top: 4px; margin-bottom: 4px; } table.markdownTable td, table.markdownTable th { - border: 1px solid #285350; - padding: 3px 7px 2px; + border: 1px solid #285350; + padding: 3px 7px 2px; } table.markdownTableHead tr { } table.markdownTableBodyLeft td, table.markdownTable th { - border: 1px solid #285350; - padding: 3px 7px 2px; + border: 1px solid #285350; + padding: 3px 7px 2px; } th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone { - background-color: #336A65; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; + background-color: #336A65; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; } th.markdownTableHeadLeft { - text-align: left + text-align: left } th.markdownTableHeadRight { - text-align: right + text-align: right } th.markdownTableHeadCenter { - text-align: center + text-align: center } */ table.markdownTable { - border-collapse:collapse; + border-collapse:collapse; margin-top: 4px; margin-bottom: 4px; } table.markdownTable td, table.markdownTable th { - border: 1px solid #285350; - padding: 3px 7px 2px; + border: 1px solid #285350; + padding: 3px 7px 2px; } table.markdownTable tr { } th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; } th.markdownTableHeadLeft, td.markdownTableBodyLeft { - text-align: left + text-align: left } th.markdownTableHeadRight, td.markdownTableBodyRight { - text-align: right + text-align: right } th.markdownTableHeadCenter, td.markdownTableBodyCenter { - text-align: center + text-align: center } diff --git a/Libraries/FCL/doc/html/dynsections.js b/Libraries/FCL/doc/html/dynsections.js index 85e18369095..317193fff5f 100644 --- a/Libraries/FCL/doc/html/dynsections.js +++ b/Libraries/FCL/doc/html/dynsections.js @@ -9,13 +9,13 @@ function toggleVisibility(linkObj) content.hide(); summary.show(); $(linkObj).addClass('closed').removeClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + $(trigger).attr('src', src.substring(0, src.length-8)+'closed.png'); } else { content.show(); summary.hide(); $(linkObj).removeClass('closed').addClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } + $(trigger).attr('src', src.substring(0, src.length-10)+'open.png'); + } return false; } @@ -87,11 +87,11 @@ function toggleInherit(id) var img = $('tr.inherit_header.'+id+' img'); var src = $(img).attr('src'); if (rows.filter(':first').is(':visible')===true) { - rows.css('display','none'); - $(img).attr('src',src.substring(0,src.length-8)+'closed.png'); + rows.css('display', 'none'); + $(img).attr('src', src.substring(0, src.length-8)+'closed.png'); } else { - rows.css('display','table-row'); // using show() causes jump in firefox - $(img).attr('src',src.substring(0,src.length-10)+'open.png'); + rows.css('display', 'table-row'); // using show() causes jump in firefox + $(img).attr('src', src.substring(0, src.length-10)+'open.png'); } } diff --git a/Libraries/FCL/doc/html/files.html b/Libraries/FCL/doc/html/files.html index 0868dc47ef9..c3508162e3e 100644 --- a/Libraries/FCL/doc/html/files.html +++ b/Libraries/FCL/doc/html/files.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/functions.html b/Libraries/FCL/doc/html/functions.html index 2d3dda9adcd..f5c9807da5f 100644 --- a/Libraries/FCL/doc/html/functions.html +++ b/Libraries/FCL/doc/html/functions.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/functions_vars.html b/Libraries/FCL/doc/html/functions_vars.html index 383ba77b17b..7d6e2f09494 100644 --- a/Libraries/FCL/doc/html/functions_vars.html +++ b/Libraries/FCL/doc/html/functions_vars.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/globals.html b/Libraries/FCL/doc/html/globals.html index eac499c197f..b65fc5685ff 100644 --- a/Libraries/FCL/doc/html/globals.html +++ b/Libraries/FCL/doc/html/globals.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/globals_defs.html b/Libraries/FCL/doc/html/globals_defs.html index 0a9465c6d74..367a678fbd4 100644 --- a/Libraries/FCL/doc/html/globals_defs.html +++ b/Libraries/FCL/doc/html/globals_defs.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/globals_func.html b/Libraries/FCL/doc/html/globals_func.html index 679ccbe57d3..07c0b8b7ddb 100644 --- a/Libraries/FCL/doc/html/globals_func.html +++ b/Libraries/FCL/doc/html/globals_func.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/globals_type.html b/Libraries/FCL/doc/html/globals_type.html index ecaf91fc073..80bfcceada2 100644 --- a/Libraries/FCL/doc/html/globals_type.html +++ b/Libraries/FCL/doc/html/globals_type.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/group___u_c_l___d_e_f_i_n_e_s.html b/Libraries/FCL/doc/html/group___u_c_l___d_e_f_i_n_e_s.html index 7fea3f430c2..17fdff52450 100644 --- a/Libraries/FCL/doc/html/group___u_c_l___d_e_f_i_n_e_s.html +++ b/Libraries/FCL/doc/html/group___u_c_l___d_e_f_i_n_e_s.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/group___u_c_l___d_e_f_i_n_i_t_i_o_n_s.html b/Libraries/FCL/doc/html/group___u_c_l___d_e_f_i_n_i_t_i_o_n_s.html index 654404bf5d9..877f4ff7b33 100644 --- a/Libraries/FCL/doc/html/group___u_c_l___d_e_f_i_n_i_t_i_o_n_s.html +++ b/Libraries/FCL/doc/html/group___u_c_l___d_e_f_i_n_i_t_i_o_n_s.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/group___u_c_l___r_e_t_u_r_n.html b/Libraries/FCL/doc/html/group___u_c_l___r_e_t_u_r_n.html index b4538294f16..db5110b32e1 100644 --- a/Libraries/FCL/doc/html/group___u_c_l___r_e_t_u_r_n.html +++ b/Libraries/FCL/doc/html/group___u_c_l___r_e_t_u_r_n.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/group___u_c_l___s_i_a256.html b/Libraries/FCL/doc/html/group___u_c_l___s_i_a256.html index ec558728b7f..e82038ed984 100644 --- a/Libraries/FCL/doc/html/group___u_c_l___s_i_a256.html +++ b/Libraries/FCL/doc/html/group___u_c_l___s_i_a256.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    -
    @@ -90,7 +90,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/group__appbx.html b/Libraries/FCL/doc/html/group__appbx.html index 1ade23134c1..8bf7472de18 100644 --- a/Libraries/FCL/doc/html/group__appbx.html +++ b/Libraries/FCL/doc/html/group__appbx.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/group__hypervisor.html b/Libraries/FCL/doc/html/group__hypervisor.html index c2b08478bc5..b121168e7db 100644 --- a/Libraries/FCL/doc/html/group__hypervisor.html +++ b/Libraries/FCL/doc/html/group__hypervisor.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/group__os.html b/Libraries/FCL/doc/html/group__os.html index e1899eabbb4..87c74f473c7 100644 --- a/Libraries/FCL/doc/html/group__os.html +++ b/Libraries/FCL/doc/html/group__os.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/group__pcibx.html b/Libraries/FCL/doc/html/group__pcibx.html index 9b6fa10ff6c..0f7c5c36a6d 100644 --- a/Libraries/FCL/doc/html/group__pcibx.html +++ b/Libraries/FCL/doc/html/group__pcibx.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/group__pcibx___m_s_r.html b/Libraries/FCL/doc/html/group__pcibx___m_s_r.html index 139008020de..0be3fa4b1df 100644 --- a/Libraries/FCL/doc/html/group__pcibx___m_s_r.html +++ b/Libraries/FCL/doc/html/group__pcibx___m_s_r.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/group__pcibx___p_i_n.html b/Libraries/FCL/doc/html/group__pcibx___p_i_n.html index 42149d0e4ee..504e43be595 100644 --- a/Libraries/FCL/doc/html/group__pcibx___p_i_n.html +++ b/Libraries/FCL/doc/html/group__pcibx___p_i_n.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/group__pcibx__sc.html b/Libraries/FCL/doc/html/group__pcibx__sc.html index c90b73f82d1..21a8c6eacad 100644 --- a/Libraries/FCL/doc/html/group__pcibx__sc.html +++ b/Libraries/FCL/doc/html/group__pcibx__sc.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/group__ssbx.html b/Libraries/FCL/doc/html/group__ssbx.html index 9a5744aa257..acdf5fca56c 100644 --- a/Libraries/FCL/doc/html/group__ssbx.html +++ b/Libraries/FCL/doc/html/group__ssbx.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/group__ssbx___crypto.html b/Libraries/FCL/doc/html/group__ssbx___crypto.html index 83eaf251240..487a55517e3 100644 --- a/Libraries/FCL/doc/html/group__ssbx___crypto.html +++ b/Libraries/FCL/doc/html/group__ssbx___crypto.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/group__ssbx___i_o.html b/Libraries/FCL/doc/html/group__ssbx___i_o.html index 62b4f6c4b98..dba79069038 100644 --- a/Libraries/FCL/doc/html/group__ssbx___i_o.html +++ b/Libraries/FCL/doc/html/group__ssbx___i_o.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/group__ssbx___key_management.html b/Libraries/FCL/doc/html/group__ssbx___key_management.html index c8341fcac21..d629b180eab 100644 --- a/Libraries/FCL/doc/html/group__ssbx___key_management.html +++ b/Libraries/FCL/doc/html/group__ssbx___key_management.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/group__ssbx___main.html b/Libraries/FCL/doc/html/group__ssbx___main.html index 284be4a6018..547a12a453c 100644 --- a/Libraries/FCL/doc/html/group__ssbx___main.html +++ b/Libraries/FCL/doc/html/group__ssbx___main.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/group__ssbx___mem.html b/Libraries/FCL/doc/html/group__ssbx___mem.html index f5f48baf1cf..a0f87420b6c 100644 --- a/Libraries/FCL/doc/html/group__ssbx___mem.html +++ b/Libraries/FCL/doc/html/group__ssbx___mem.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/index.html b/Libraries/FCL/doc/html/index.html index d04f76c946a..13ea2efd5b8 100644 --- a/Libraries/FCL/doc/html/index.html +++ b/Libraries/FCL/doc/html/index.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    @@ -119,9 +119,9 @@

    Release notes

    • 1.0.1: p192 initializers size corrected; hash functions number updated
    • -
    • 1.1.0: sha-3 (sha-224,sha-256,sha-384, sha-512) has been added
    • +
    • 1.1.0: sha-3 (sha-224, sha-256, sha-384, sha-512) has been added
    • 1.2.0: secp384r1, secp521r1, bp256r1, bp384r1, bp512r1 curves added; sha384 and sha512 added
    • -
    • 1.2.1: AES (128,192, 256) in ECB, CBC modes and AES-CBC-MAC added
    • +
    • 1.2.1: AES (128, 192, 256) in ECB, CBC modes and AES-CBC-MAC added
    diff --git a/Libraries/FCL/doc/html/jquery.js b/Libraries/FCL/doc/html/jquery.js index f5343eda922..eabf5822855 100644 --- a/Libraries/FCL/doc/html/jquery.js +++ b/Libraries/FCL/doc/html/jquery.js @@ -13,14 +13,14 @@ * * Date: Mon Nov 21 21:11:03 2011 -0500 */ -(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
    a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
    ";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
    t
    ";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
    ";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); +(function(bb, L){var av=bb.document, bu=bb.navigator, bl=bb.location;var b=(function(){var bF=function(b0, b1){return new bF.fn.init(b0, b1, bD)}, bU=bb.jQuery, bH=bb.$, bD, bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, bM=/\S/, bI=/^\s+/, bE=/\s+$/, bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/, bN=/^[\], :{}\s]*$/, bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, bJ=/(?:^|:|, )(?:\s*\[)+/g, by=/(webkit)[ \/]([\w.]+)/, bR=/(opera)(?:.*version)?[ \/]([\w.]+)/, bQ=/(msie) ([\w.]+)/, bS=/(mozilla)(?:.*? rv:([\w.]+))?/, bB=/-([a-z]|[0-9])/ig, bZ=/^-ms-/, bT=function(b0, b1){return(b1+"").toUpperCase()}, bX=bu.userAgent, bV, bC, e, bL=Object.prototype.toString, bG=Object.prototype.hasOwnProperty, bz=Array.prototype.push, bK=Array.prototype.slice, bO=String.prototype.trim, bv=Array.prototype.indexOf, bx={};bF.fn=bF.prototype={constructor:bF, init:function(b0, b4, b3){var b2, b5, b1, b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null, b0, null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0, b4, true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]], [b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this, b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0, this)}, selector:"", jquery:"1.7.1", length:0, size:function(){return this.length}, toArray:function(){return bK.call(this, 0)}, get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])}, pushStack:function(b1, b3, b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2, b1)}else{bF.merge(b2, b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2}, each:function(b1, b0){return bF.each(this, b1, b0)}, ready:function(b0){bF.bindReady();bC.add(b0);return this}, eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0, b0+1)}, first:function(){return this.eq(0)}, last:function(){return this.eq(-1)}, slice:function(){return this.pushStack(bK.apply(this, arguments), "slice", bK.call(arguments).join(", "))}, map:function(b0){return this.pushStack(bF.map(this, function(b2, b1){return b0.call(b2, b1, b2)}))}, end:function(){return this.prevObject||this.constructor(null)}, push:bz, sort:[].sort, splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9, b2, b0, b1, b6, b7, b5=arguments[0]||{}, b4=1, b3=arguments.length, b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av, [bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}}, bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready, 1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded", e, false);bb.addEventListener("load", bF.ready, false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange", e);bb.attachEvent("onload", bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}}, isFunction:function(b0){return bF.type(b0)==="function"}, isArray:Array.isArray||function(b0){return bF.type(b0)==="array"}, isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0}, isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)}, type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"}, isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2, "constructor")&&!bG.call(b2.constructor.prototype, "isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2, b0)}, isEmptyObject:function(b1){for(var b0 in b1){return false}return true}, error:function(b0){throw new Error(b0)}, parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW, "@").replace(bP, "]").replace(bJ, ""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)}, parseXML:function(b2){var b0, b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2, "text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0}, noop:function(){}, globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb, b1)})(b0)}}, camelCase:function(b0){return b0.replace(bZ, "ms-").replace(bB, bT)}, nodeName:function(b1, b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()}, each:function(b3, b6, b2){var b1, b4=0, b5=b3.length, b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1], b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments, 0):bG;if(!(--bw)){bC.resolveWith(bC, bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments, 0):bG;bC.notifyWith(bE, bB)}}if(e>1){for(;bv", submitBubbles:true, changeBubbles:true, focusinBubbles:false, deleteExpando:true, noCloneEvent:true, inlineBlockNeedsLayout:false, shrinkWrapBlocks:false, reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick", function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type", "radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked", "checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA, null)||{marginRight:0}).marginRight, 10)||0)===0}if(bv.attachEvent){for(by in {submit:1, change:1, focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB, "return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM, bU, bV, bT, bN, bO, bL, bS, bR, e, bP, bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
    ";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM, bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
    t
    ";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
    ";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5), doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ, bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/, aA=/([A-Z])/g;b.extend({cache:{}, uuid:0, expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g, ""), noData:{embed:true, object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", applet:true}, hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)}, data:function(bx, bv, bz, by){if(!b.acceptData(bx)){return}var bG, bA, bD, bE=b.expando, bC=typeof bv==="string", bF=bx.nodeType, e=bF?b.cache:bx, bw=bF?bx[bE]:bx[bE]&&bE, bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw], bv)}else{e[bw].data=b.extend(e[bw].data, bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD}, removeData:function(bx, bv, by){if(!b.acceptData(bx)){return}var bB, bA, bz, bC=b.expando, bD=bx.nodeType, e=bD?b.cache:bx, bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0, bz=bv.length;bA-1){return true}}return false}, val:function(bx){var e, bv, by, bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw, "value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU, ""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this), bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this, bA, bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB, function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this, bB, "value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}}, select:{get:function(e){var bA, bv, bz, bx, by=e.selectedIndex, bB=[], bC=e.options, bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}}, attrFn:{val:true, css:true, html:true, text:true, data:true, width:true, height:true, offset:true}, attr:function(bA, bx, bB, bz){var bw, e, by, bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA, bx, bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA, bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA, bB, bx))!==L){return bw}else{bA.setAttribute(bx, ""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA, bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}}, removeAttr:function(bx, bz){var by, bA, bv, e, bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i, n=/^([^\.]*)?(?:\.(.+))?$/, J=/\bhover(\.\S+)?\b/, aO=/^key/, bf=/^(?:mouse|contextmenu)|click/, T=/^(?:focusinfocus|focusoutblur)$/, U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/, Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv}, j=function(bw, e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))}, bt=function(e){return b.event.special.hover?e:e.replace(J, "mouseenter$1 mouseleave$1")};b.event={add:function(bx, bC, bJ, bA, by){var bD, bB, bK, bI, bH, bF, e, bG, bv, bz, bw, bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem, arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0, -1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG, bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv, bD, e[bC].handle.elem, true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA, bD)===false){return}bB=[[bA, bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH, bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb, bI])}}for(bC=0;bCbA){bH.push({elem:this, matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e, null, bx, bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); /*! * Sizzle CSS Selector Engine * Copyright 2011, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * More information: http://sizzlejs.com/ */ -(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

    ";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
    ";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
    ","
    "]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
    ").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*! +(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~, (\[\\]+)+|[>+~])(\s*, \s*)?((?:.|\r|\n)*)/g, bC="sizcache"+(Math.random()+"").replace(".", ""), bI=0, bL=Object.prototype.toString, bB=false, bA=true, bK=/\\/g, bO=/\r\n/g, bQ=/\W/;[0, 0].sort(function(){bA=false;return 0});var by=function(bV, e, bY, bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS, b3, b6, bR, b2, b5, b4, bX, bU=true, bT=by.isXML(e), bW=[], b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1], e, bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(), e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV, b3, bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(), e, bT);e=b2.expr?by.filter(b2.expr, b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(), set:bF(bZ)}:by.find(bW.pop(), bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e, bT);b3=b2.expr?by.filter(b2.expr, b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6, b4, bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY, b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e, b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6, bY)}if(bR){by(bR, b1, bY, bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX, e, bY){var bW, bS, bU, bT, bV, bR;if(!bX){return[]}for(bS=0, bU=bE.order.length;bS":function(bW, bR){var bV, bU=typeof bR==="string", bS=0, e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false}, ID:function(e){return e[1].replace(bK, "")}, TAG:function(bR, e){return bR[1].replace(bK, "").toLowerCase()}, CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g, "");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e}, ATTR:function(bU, bR, bS, e, bV, bW){var bT=bU[1]=bU[1].replace(bK, "");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK, "");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU}, PSEUDO:function(bU, bR, bS, e, bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3], null, null, bR)}else{var bT=by.filter(bU[3], bR, bS, true^bV);if(!bS){e.push.apply(e, bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU}, POS:function(e){e.unshift(true);return e}}, filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"}, disabled:function(e){return e.disabled===true}, checked:function(e){return e.checked===true}, selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true}, parent:function(e){return !!e.firstChild}, empty:function(e){return !e.firstChild}, has:function(bS, bR, e){return !!by(e[3], bS).length}, header:function(e){return(/h\d/i).test(e.nodeName)}, text:function(bS){var e=bS.getAttribute("type"), bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)}, radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type}, checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type}, file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type}, password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type}, submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type}, image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type}, reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type}, button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"}, input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)}, focus:function(e){return e===e.ownerDocument.activeElement}}, setFilters:{first:function(bR, e){return e===0}, last:function(bS, bR, e, bT){return bR===bT.length-1}, even:function(bR, e){return e%2===0}, odd:function(bR, e){return e%2===1}, lt:function(bS, bR, e){return bRe[3]-0}, nth:function(bS, bR, e){return e[3]-0===bR}, eq:function(bS, bR, e){return e[3]-0===bR}}, filter:{PSEUDO:function(bS, bX, bW, bY){var e=bX[1], bR=bE.filters[e];if(bR){return bR(bS, bW, bX, bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0, bU=bT.length;bV=0)}}}, ID:function(bR, e){return bR.nodeType===1&&bR.getAttribute("id")===e}, TAG:function(bR, e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e}, CLASS:function(bR, e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1}, ATTR:function(bV, bT){var bS=bT[1], e=by.attr?by.attr(bV, bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS), bW=e+"", bU=bT[2], bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0, bR.length+1)===bR+"-":false}, POS:function(bU, bR, bS, bV){var e=bR[2], bT=bE.setFilters[e];if(bT){return bT(bU, bS, bR, bV)}}}};var bD=bE.match.POS, bx=function(bR, e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g, bx))}var bF=function(bR, e){bR=Array.prototype.slice.call(bR, 0);if(e){e.push.apply(e, bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes, 0)[0].nodeType}catch(bP){bF=function(bU, bT){var bS=0, bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR, bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR, e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU, bV, bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV, bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR, bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href", 2)}}e=null})();if(av.querySelectorAll){(function(){var e=by, bT=av.createElement("div"), bS="__sizzle__";bT.innerHTML="

    ";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4, bV, bZ, b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4), bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]), bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body], bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY], bZ)}}else{return bF([], bZ)}}}try{return bF(bV.querySelectorAll(b4), bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV, bX=bV.getAttribute("id"), bU=bX||bS, b6=bV.parentNode, b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id", bU)}else{bU=bU.replace(/'/g, "\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4), bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4, bV, bZ, b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement, bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"), "div"), bR=false;try{bS.call(av.documentElement, "[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW, bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW, bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY, null, null, [bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
    ";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1, 0, "CLASS");bE.find.CLASS=function(bR, bS, bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR, bW, bV, bZ, bX, bY){for(var bT=0, bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR, e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR, e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS, e, bW){var bV, bX=[], bU="", bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO, "")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0, bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e, this).length>0:this.filter(e).length>0)}, closest:function(by, bx){var bv=[], bw, e, bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz, by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv, "closest", by)}, index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0], b(e))}return b.inArray(e.jquery?e[0]:e, this)}, add:function(e, bv){var bx=typeof e==="string"?b(e, bv):b.makeArray(e&&e.nodeType?[e]:e), bw=b.merge(this.get(), bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))}, andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null}, parents:function(e){return b.dir(e, "parentNode")}, parentsUntil:function(bv, e, bw){return b.dir(bv, "parentNode", bw)}, next:function(e){return b.nth(e, 2, "nextSibling")}, prev:function(e){return b.nth(e, 2, "previousSibling")}, nextAll:function(e){return b.dir(e, "nextSibling")}, prevAll:function(e){return b.dir(e, "previousSibling")}, nextUntil:function(bv, e, bw){return b.dir(bv, "nextSibling", bw)}, prevUntil:function(bv, e, bw){return b.dir(bv, "previousSibling", bw)}, siblings:function(e){return b.sibling(e.parentNode.firstChild, e)}, children:function(e){return b.sibling(e.firstChild)}, contents:function(e){return b.nodeName(e, "iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}}, function(e, bv){b.fn[e]=function(by, bw){var bx=b.map(this, bv, by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw, bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx, e, P.call(arguments).join(", "))}});b.extend({filter:function(bw, e, bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0], bw)?[e[0]]:[]:b.find.matches(bw, e)}, dir:function(bw, bv, by){var e=[], bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e}, nth:function(by, e, bw, bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by}, sibling:function(bw, bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx, bw, e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx, function(bz, by){var bA=!!bw.call(bz, by, bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx, function(bz, by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx, function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw, bv, !e)}else{bw=b.filter(bw, bv)}}}}return b.grep(bx, function(bz, by){return(b.inArray(bz, bw)>=0)===e})}function a(e){var bw=aR.split("|"), bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", ag=/ jQuery\d+="(?:\d+|null)"/g, ar=/^\s+/, R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, d=/<([\w:]+)/, w=/
    ", ""], legend:[1, "
    ", "
    "], thead:[1, "
    ", "
    "], tr:[2, "", "
    "], td:[3, "", "
    "], col:[2, "", "
    "], area:[1, "", ""], _default:[0, "", ""]}, ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1, "div
    ", "
    "]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this, bw, bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)}, wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this, bw))})}if(this[0]){var bv=b(e, this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this}, wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this, bv))})}return this.each(function(){var bv=b(this), bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})}, wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this, bw):e)})}, unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this, "body")){b(this).replaceWith(this.childNodes)}}).end()}, append:function(){return this.domManip(arguments, true, function(e){if(this.nodeType===1){this.appendChild(e)}})}, prepend:function(){return this.domManip(arguments, true, function(e){if(this.nodeType===1){this.insertBefore(e, this.firstChild)}})}, before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments, false, function(bv){this.parentNode.insertBefore(bv, this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e, this.toArray());return this.pushStack(e, "before", arguments)}}}, after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments, false, function(bv){this.parentNode.insertBefore(bv, this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this, "after", arguments);e.push.apply(e, b.clean(arguments));return e}}}, remove:function(e, bx){for(var bv=0, bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e, [bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this}, empty:function(){for(var e=0, bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this}, clone:function(bv, e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this, bv, e)})}, html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag, ""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["", ""])[1].toLowerCase()]){bx=bx.replace(R, "<$1>");try{for(var bw=0, bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz, e, bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"), az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by, bA, bw){var e, bv, bx, bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by, bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx], bv[bx])}}}if(bA){t(by, bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx], bv[bx])}}}e=bv=null;return bz}, clean:function(bw, by, bH, bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[], bB;for(var bE=0, bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R, "<$1>");var bK=(d.exec(bz)||["", ""])[1].toLowerCase(), bx=ax[bK]||ax._default, bD=bx[0], bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz), bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB], "tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]), bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv, e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""}, set:function(by, bz){var bx=by.style, bv=by.currentStyle, e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"", bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak, ""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak, e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw, bv){var e;b.swap(bw, {display:"inline-block"}, function(){if(bv){e=Z(bw, "margin-right", "marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by, bw){var bv, bx, e;bw=bw.replace(z, "-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by, null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement, by)){bv=b.style(by, bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz, bw){var bA, e, by, bv=bz.currentStyle&&bz.currentStyle[bw], bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by, bw, bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight, bz=bw==="width"?an:a1, bx=0, e=bz.length;if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi, q=/^(?:select|textarea)/i, h=/\s+/, br=/([?&])_=[^&]*/, K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/, A=b.fn.load, aa={}, r={}, aE, s, aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by, bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h), bw=0, bz=bx.length, bv, bB, bC;for(;bw=0){var e=bw.slice(by, bw.length);bw=bw.slice(0, by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz, b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw, type:bx, dataType:"html", data:bz, complete:function(bC, bB, bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
    ").append(bD.replace(a6, "")).find(e):bD)}if(bA){bv.each(bA, [bD, bB, bC])}}});return this}, serialize:function(){return b.param(this.serializeArray())}, serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e, bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw, function(by, bx){return{name:bv.name, value:by.replace(bs, "\r\n")}}):{name:bv.name, value:bw.replace(bs, "\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function(e, bv){b.fn[bv]=function(bw){return this.on(bv, bw)}});b.each(["get", "post"], function(e, bv){b[bv]=function(bw, by, bz, bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv, url:bw, data:by, success:bz, dataType:bx})}});b.extend({getScript:function(e, bv){return b.get(e, L, bv, "script")}, getJSON:function(e, bv, bw){return b.get(e, bv, bw, "json")}, ajaxSetup:function(bv, e){if(e){am(bv, b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv, e);return bv}, ajaxSettings:{url:aE, isLocal:aM.test(s[1]), global:true, type:"GET", contentType:"application/x-www-form-urlencoded", processData:true, async:true, accepts:{xml:"application/xml, text/xml", html:"text/html", text:"text/plain", json:"application/json, text/javascript", "*":aV}, contents:{xml:/xml/, html:/html/, json:/json/}, responseFields:{xml:"responseXML", text:"responseText"}, converters:{"* text":bb.String, "text html":true, "text json":b.parseJSON, "text xml":b.parseXML}, flatOptions:{context:true, url:true}}, ajaxPrefilter:f(aa), ajaxTransport:f(r), ajax:function(bz, bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({}, bx), bS=bD.context||bD, bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event, bR=b.Deferred(), bN=b.Callbacks("once memory"), bB=bD.statusCode||{}, bC, bH={}, bO={}, bQ, by, bL, bE, bI, bA=0, bw, bK, bJ={readyState:0, setRequestHeader:function(bT, bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this}, getAllResponseHeaders:function(){return bA===2?bQ:null}, getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e}, overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this}, abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0, e);return this}};function bF(bZ, bU, b0, bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT, b4, b3, bX=bU, bY=b0?bj(bD, bJ, b0):L, bV, b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD, bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS, [b4, bX, bJ])}else{bR.rejectWith(bS, [bJ, bX, b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"), [bJ, bD, bT?b4:b3])}bN.fireWith(bS, [bJ, bX]);if(bw){bG.trigger("ajaxComplete", [bJ, bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e], bT[e]]}}else{e=bT[bJ.status];bJ.then(e, e)}}return this};bD.url=((bz||bD.url)+"").replace(bq, "").replace(c, s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data, bD.traditional)}aW(aa, bD, bx, bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++ ===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(), bP=bD.url.replace(br, "$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type", bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since", b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match", b.etag[bC])}}bJ.setRequestHeader("Accept", bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK, bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS, bJ, bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1, error:1, complete:1}){bJ[bK](bD[bK])}bL=aW(r, bD, bx, bJ);if(!bL){bF(-1, "No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend", [bJ, bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")}, bD.timeout)}try{bA=1;bL.send(bH, bF)}catch(bM){if(bA<2){bF(-1, bM)}else{throw bM}}}return bJ}, param:function(e, bw){var bv=[], by=function(bz, bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e, function(){by(this.name, this.value)})}else{for(var bx in e){v(bx, e[bx], bw, by)}}return bv.join("&").replace(k, "+")}});function v(bw, by, bv, bx){if(b.isArray(by)){b.each(by, function(bA, bz){if(bv||ap.test(bw)){bx(bw, bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]", bz, bv, bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]", by[e], bv, bx)}}else{bx(bw, by)}}}b.extend({active:0, lastModified:{}, etag:{}});function bj(bD, bC, bz){var bv=bD.contents, bB=bD.dataTypes, bw=bD.responseFields, by, bA, bx, e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH, bz){if(bH.dataFilter){bz=bH.dataFilter(bz, bH.dataType)}var bD=bH.dataTypes, bG={}, bA, bE, bw=bD.length, bB, bC=bD[0], bx, by, bF, bv, e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["", "X", "Y"], function(bC, bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz, bA, bw.orig[bA]);b.removeData(bz, "fxshow"+bA, true);b.removeData(bz, "toggle"+bA, true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state, bB, 0, 1, bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx, {tick:function(){var bw, bv=b.timers, e=0;for(;e").appendTo(e), bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv, "display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i, ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0], bB;if(bI){return this.each(function(e){b.offset.setOffset(this, bI, e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument, bw=bH.documentElement;if(!bB||!b.contains(bw, by)){return bB?{top:bB.top, left:bB.left}:{top:0, left:0}}var bC=bH.body, bD=aK(bH), bA=bw.clientTop||bC.clientTop||0, bE=bw.clientLeft||bC.clientLeft||0, bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop, bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft, bG=bB.top+bv-bA, bx=bB.left+bz-bE;return{top:bG, left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this, bF, bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC, bw=bz.offsetParent, bv=bz, bE=bz.ownerDocument, bx=bE.documentElement, bA=bE.body, bB=bE.defaultView, e=bB?bB.getComputedStyle(bz, null):bz.currentStyle, bD=bz.offsetTop, by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz, null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop, bA.scrollTop);by+=Math.max(bx.scrollLeft, bA.scrollLeft)}return{top:bD, left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop, bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e, "marginTop"))||0;bv+=parseFloat(b.css(e, "marginLeft"))||0}return{top:bw, left:bv}}, setOffset:function(bx, bG, bA){var bB=b.css(bx, "position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx), bv=bz.offset(), e=b.css(bx, "top"), bE=b.css(bx, "left"), bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto", [e, bE])>-1, bD={}, bC={}, bw, by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx, bA, bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx, bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0], bv=this.offsetParent(), bx=this.offset(), e=ad.test(bv[0].nodeName)?{top:0, left:0}:bv.offset();bx.top-=parseFloat(b.css(bw, "marginTop"))||0;bx.left-=parseFloat(b.css(bw, "marginLeft"))||0;e.top+=parseFloat(b.css(bv[0], "borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0], "borderLeftWidth"))||0;return{top:bx.top-e.top, left:bx.left-e.left}}, offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e, "position")==="static")){e=e.offsetParent}return e})}});b.each(["Left", "Top"], function(bv, e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx, by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(), bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height", "Width"], function(bv, e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx, bw, "padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx, bw, by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this, bE, bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e], bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e], bA.body["scroll"+e], bA.documentElement["scroll"+e], bA.body["offset"+e], bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA, bw), by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw, typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery", [], function(){return b})}})(window);/*! * jQuery UI 1.8.18 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) @@ -29,7 +29,7 @@ * * http://docs.jquery.com/UI */ -(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*! +(function(a, d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui, {version:"1.8.18", keyCode:{ALT:18, BACKSPACE:8, CAPS_LOCK:20, COMMA:188, COMMAND:91, COMMAND_LEFT:91, COMMAND_RIGHT:93, CONTROL:17, DELETE:46, DOWN:40, END:35, ENTER:13, ESCAPE:27, HOME:36, INSERT:45, LEFT:37, MENU:93, NUMPAD_ADD:107, NUMPAD_DECIMAL:110, NUMPAD_DIVIDE:111, NUMPAD_ENTER:108, NUMPAD_MULTIPLY:106, NUMPAD_SUBTRACT:109, PAGE_DOWN:34, PAGE_UP:33, PERIOD:190, RIGHT:39, SHIFT:16, SPACE:32, TAB:9, UP:38, WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr, _focus:a.fn.focus, focus:function(e, f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}}, e)}):this._focus.apply(this, arguments)}, scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this, "position", 1))&&(/(auto|scroll)/).test(a.curCSS(this, "overflow", 1)+a.curCSS(this, "overflow-y", 1)+a.curCSS(this, "overflow-x", 1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this, "overflow", 1)+a.curCSS(this, "overflow-y", 1)+a.curCSS(this, "overflow-x", 1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e}, zIndex:function(h){if(h!==d){return this.css("zIndex", h)}if(this.length){var f=a(this[0]), e, g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"), 10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0}, disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection", function(e){e.preventDefault()})}, enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width", "Height"], function(g, e){var f=e==="Width"?["Left", "Right"]:["Top", "Bottom"], h=e.toLowerCase(), k={innerWidth:a.fn.innerWidth, innerHeight:a.fn.innerHeight, outerWidth:a.fn.outerWidth, outerHeight:a.fn.outerHeight};function j(m, l, i, n){a.each(f, function(){l-=parseFloat(a.curCSS(m, "padding"+this, true))||0;if(i){l-=parseFloat(a.curCSS(m, "border"+this+"Width", true))||0}if(n){l-=parseFloat(a.curCSS(m, "margin"+this, true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h, j(this, i)+"px")})};a.fn["outer"+e]=function(i, l){if(typeof i!=="number"){return k["outer"+e].call(this, i)}return this.each(function(){a(this).css(h, j(this, i, true, l)+"px")})}});function c(g, e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode, h=i.name, f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this, "visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"], {data:function(g, f, e){return !!a.data(g, e[3])}, focusable:function(e){return c(e, !isNaN(a.attr(e, "tabindex")))}, tabbable:function(g){var e=a.attr(g, "tabindex"), f=isNaN(e);return(f||e>=0)&&c(g, !f)}});a(function(){var e=document.body, f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style, {minHeight:"100px", height:"auto", padding:0, borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui, {plugin:{add:function(f, g, j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g, j[e]])}}, call:function(e, g, f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g}, isOverAxis:function(f, e, g){return(f>e)&&(f<(e+g))}, isOver:function(j, f, i, h, e, g){return a.ui.isOverAxis(j, i, e)&&a.ui.isOverAxis(f, h, g)}})})(jQuery);/*! * jQuery UI Widget 1.8.18 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) @@ -38,7 +38,7 @@ * * http://docs.jquery.com/UI/Widget */ -(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*! +(function(b, d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0, h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e, f){return this.each(function(){if(!f){if(!e||b.filter(e, [this]).length){b("*", this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this), e, f)})}}b.widget=function(f, h, e){var g=f.split(".")[0], j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k, f)};b[g]=b[g]||{};b[g][f]=function(k, l){if(arguments.length){this._createWidget(k, l)}};var i=new h();i.options=b.extend(true, {}, i.options);b[g][f].prototype=b.extend(true, i, {namespace:g, widgetName:f, widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f, widgetBaseClass:j}, e);b.widget.bridge(f, b[g][f])};b.widget.bridge=function(f, e){b.fn[f]=function(i){var g=typeof i==="string", h=Array.prototype.slice.call(arguments, 1), j=this;i=!g&&h.length?b.extend.apply(null, [true, i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this, f), l=k&&b.isFunction(k[i])?k[i].apply(k, h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this, f);if(k){k.option(i||{})._init()}else{b.data(this, f, new e(i, this))}})}return j}};b.Widget=function(e, f){if(arguments.length){this._createWidget(e, f)}};b.Widget.prototype={widgetName:"widget", widgetEventPrefix:"", options:{disabled:false}, _createWidget:function(f, g){b.data(g, this.widgetName, this);this.element=b(g);this.options=b.extend(true, {}, this.options, this._getCreateOptions(), f);var e=this;this.element.bind("remove."+this.widgetName, function(){e.destroy()});this._create();this._trigger("create");this._init()}, _getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]}, _create:function(){}, _init:function(){}, destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")}, widget:function(){return this.element}, option:function(f, g){var e=f;if(arguments.length===0){return b.extend({}, this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this}, _setOptions:function(f){var e=this;b.each(f, function(g, h){e._setOption(g, h)});return this}, _setOption:function(e, f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled", f)}return this}, enable:function(){return this._setOption("disabled", false)}, disable:function(){return this._setOption("disabled", true)}, _trigger:function(e, f, g){var j, i, h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f, g);return !(b.isFunction(h)&&h.call(this.element[0], f, g)===false||f.isDefaultPrevented())}}})(jQuery);/*! * jQuery UI Mouse 1.8.18 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) @@ -48,24 +48,24 @@ * http://docs.jquery.com/UI/Mouse * * Depends: - * jquery.ui.widget.js + * jquery.ui.widget.js */ -(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
    ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
    ');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*! +(function(b, c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse", {options:{cancel:":input, option", distance:1, delay:0}, _mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName, function(e){return d._mouseDown(e)}).bind("click."+this.widgetName, function(e){if(true===b.data(e.target, d.widgetName+".preventClickEvent")){b.removeData(e.target, d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false}, _mouseDestroy:function(){this.element.unbind("."+this.widgetName)}, _mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this, g=(f.which==1), d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true}, this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target, this.widgetName+".preventClickEvent")){b.removeData(f.target, this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName, this._mouseMoveDelegate).bind("mouseup."+this.widgetName, this._mouseUpDelegate);f.preventDefault();a=true;return true}, _mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent, d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted}, _mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName, this._mouseMoveDelegate).unbind("mouseup."+this.widgetName, this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target, this.widgetName+".preventClickEvent", true)}this._mouseStop(d)}return false}, _mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX), Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)}, _mouseDelayMet:function(d){return this.mouseDelayMet}, _mouseStart:function(d){}, _mouseDrag:function(d){}, _mouseStop:function(d){}, _mouseCapture:function(d){return true}})})(jQuery);(function(c, d){c.widget("ui.resizable", c.ui.mouse, {widgetEventPrefix:"resize", options:{alsoResize:false, animate:false, animateDuration:"slow", animateEasing:"swing", aspectRatio:false, autoHide:false, containment:false, ghost:false, grid:false, handles:"e, s, se", helper:false, maxHeight:null, maxWidth:null, minHeight:10, minWidth:10, zIndex:1000}, _create:function(){var f=this, k=this.options;this.element.addClass("ui-resizable");c.extend(this, {_aspectRatio:!!(k.aspectRatio), aspectRatio:k.aspectRatio, originalElement:this.element, _proportionallyResizeElements:[], _helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
    ').css({position:this.element.css("position"), width:this.element.outerWidth(), height:this.element.outerHeight(), top:this.element.css("top"), left:this.element.css("left")}));this.element=this.element.parent().data("resizable", this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"), marginTop:this.originalElement.css("marginTop"), marginRight:this.originalElement.css("marginRight"), marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0, marginTop:0, marginRight:0, marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize", "none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static", zoom:1, display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle", this.element).length?"e, s, se":{n:".ui-resizable-n", e:".ui-resizable-e", s:".ui-resizable-s", w:".ui-resizable-w", se:".ui-resizable-se", sw:".ui-resizable-sw", ne:".ui-resizable-ne", nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n, e, s, w, se, sw, ne, nw"}var l=this.handles.split(", ");this.handles={};for(var g=0;g');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n], this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n], this.element), p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding", /ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m, p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle", this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()}, function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()}, destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"), width:f.outerWidth(), height:f.outerHeight(), top:f.css("top"), left:f.css("left")})).remove()}this.originalElement.css("resize", this.originalResizeStyle);e(this.originalElement);return this}, _mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g}, _mouseStart:function(g){var j=this.options, f=this.element.position(), e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(), left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute", top:f.top, left:f.left})}this._renderProxy();var k=b(this.helper.css("left")), h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k, top:h};this.size=this._helper?{width:e.outerWidth(), height:e.outerHeight()}:{width:e.width(), height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(), height:e.outerHeight()}:{width:e.width(), height:e.height()};this.originalPosition={left:k, top:h};this.sizeDiff={width:e.outerWidth()-e.width(), height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX, top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor", i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start", g);return true}, _mouseDrag:function(e){var h=this.helper, g=this.options, m={}, q=this, j=this.originalMousePosition, n=this.axis;var r=(e.pageX-j.left)||0, p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this, [e, r, p]), k=c.browser.msie&&c.browser.version<7, f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l, e)}l=this._respectSize(l, e);this._propagate("resize", e);h.css({top:this.position.top+"px", left:this.position.left+"px", width:this.size.width+"px", height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize", e, this.ui());return false}, _mouseStop:function(h){this.resizing=false;var i=this.options, m=this;if(this._helper){var g=this._proportionallyResizeElements, e=g.length&&(/textarea/i).test(g[0].nodeName), f=e&&c.ui.hasScroll(g[0], "left")?0:m.sizeDiff.height, k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k), height:(m.helper.height()-f)}, j=(parseInt(m.element.css("left"), 10)+(m.position.left-m.originalPosition.left))||null, l=(parseInt(m.element.css("top"), 10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n, {top:l, left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor", "auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop", h);if(this._helper){this.helper.remove()}return false}, _updateVirtualBoundaries:function(g){var j=this.options, i, h, f, k, e;e={minWidth:a(j.minWidth)?j.minWidth:0, maxWidth:a(j.maxWidth)?j.maxWidth:Infinity, minHeight:a(j.minHeight)?j.minHeight:0, maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width), s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width, p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q), e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l}, _proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7, g=(e?1:0), h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h, height:this.element.outerHeight()+h, position:"absolute", left:this.elementOffset.left-g+"px", top:this.elementOffset.top-g+"px", zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}}, _change:{e:function(g, f, e){return{width:this.originalSize.width+f}}, w:function(h, f, e){var j=this.options, g=this.originalSize, i=this.originalPosition;return{left:i.left+f, width:g.width-f}}, n:function(h, f, e){var j=this.options, g=this.originalSize, i=this.originalPosition;return{top:i.top+e, height:g.height-e}}, s:function(g, f, e){return{height:this.originalSize.height+e}}, se:function(g, f, e){return c.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [g, f, e]))}, sw:function(g, f, e){return c.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [g, f, e]))}, ne:function(g, f, e){return c.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [g, f, e]))}, nw:function(g, f, e){return c.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [g, f, e]))}}, _propagate:function(f, e){c.ui.plugin.call(this, f, [e, this.ui()]);(f!="resize"&&this._trigger(f, e, this.ui()))}, plugins:{}, ui:function(){return{originalElement:this.originalElement, element:this.element, helper:this.helper, position:this.position, size:this.size, originalSize:this.originalSize, originalPosition:this.originalPosition}}});c.extend(c.ui.resizable, {version:"1.8.18"});c.ui.plugin.add("resizable", "alsoResize", {start:function(f, g){var e=c(this).data("resizable"), i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize", {width:parseInt(k.width(), 10), height:parseInt(k.height(), 10), left:parseInt(k.css("left"), 10), top:parseInt(k.css("top"), 10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize, function(j){h(j)})}}else{h(i.alsoResize)}}, resize:function(g, i){var f=c(this).data("resizable"), j=f.options, h=f.originalSize, l=f.originalPosition;var k={height:(f.size.height-h.height)||0, width:(f.size.width-h.width)||0, top:(f.position.top-l.top)||0, left:(f.position.left-l.left)||0}, e=function(m, n){c(m).each(function(){var q=c(this), r=c(this).data("resizable-alsoresize"), p={}, o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width", "height"]:["width", "height", "top", "left"];c.each(o, function(s, u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize, function(m, n){e(m, n)})}else{e(j.alsoResize)}}, stop:function(e, f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable", "animate", {stop:function(i, n){var p=c(this).data("resizable"), j=p.options;var h=p._proportionallyResizeElements, e=h.length&&(/textarea/i).test(h[0].nodeName), f=e&&c.ui.hasScroll(h[0], "left")?0:p.sizeDiff.height, l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l), height:(p.size.height-f)}, k=(parseInt(p.element.css("left"), 10)+(p.position.left-p.originalPosition.left))||null, m=(parseInt(p.element.css("top"), 10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g, m&&k?{top:m, left:k}:{}), {duration:j.animateDuration, easing:j.animateEasing, step:function(){var o={width:parseInt(p.element.css("width"), 10), height:parseInt(p.element.css("height"), 10), top:parseInt(p.element.css("top"), 10), left:parseInt(p.element.css("left"), 10)};if(h&&h.length){c(h[0]).css({width:o.width, height:o.height})}p._updateCache(o);p._propagate("resize", i)}})}});c.ui.plugin.add("resizable", "containment", {start:function(f, r){var t=c(this).data("resizable"), j=t.options, l=t.element;var g=j.containment, k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0, top:0};t.containerPosition={left:0, top:0};t.parentData={element:c(document), left:0, top:0, width:c(document).width(), height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k), i=[];c(["Top", "Right", "Left", "Bottom"]).each(function(p, o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]), width:(n.innerWidth()-i[1])};var q=t.containerOffset, e=t.containerSize.height, m=t.containerSize.width, h=(c.ui.hasScroll(k, "left")?k.scrollWidth:m), s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k, left:q.left, top:q.top, width:h, height:s}}}, resize:function(g, q){var t=c(this).data("resizable"), i=t.options, f=t.containerSize, p=t.containerOffset, m=t.size, n=t.position, r=t._aspectRatio||g.shiftKey, e={top:0, left:0}, h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width), s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0), j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}}, stop:function(f, n){var q=c(this).data("resizable"), g=q.options, l=q.position, m=q.containerOffset, e=q.containerPosition, i=q.containerElement;var j=c(q.helper), r=j.offset(), p=j.outerWidth()-q.sizeDiff.width, k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left, width:p, height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left, width:p, height:k})}}});c.ui.plugin.add("resizable", "ghost", {start:function(g, h){var e=c(this).data("resizable"), i=e.options, f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25, display:"block", position:"relative", height:f.height, width:f.width, margin:0, left:0, top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)}, resize:function(f, g){var e=c(this).data("resizable"), h=e.options;if(e.ghost){e.ghost.css({position:"relative", height:e.size.height, width:e.size.width})}}, stop:function(f, g){var e=c(this).data("resizable"), h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable", "grid", {resize:function(e, m){var p=c(this).data("resizable"), h=p.options, k=p.size, i=p.originalSize, j=p.originalPosition, n=p.axis, l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid, h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1), f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e, 10)||0};var a=function(e){return !isNaN(parseInt(e, 10))}})(jQuery);/*! * jQuery hashchange event - v1.3 - 7/21/2010 * http://benalman.com/projects/jquery-hashchange-plugin/ - * + * * Copyright (c) 2010 "Cowboy" Ben Alman * Dual licensed under the MIT and GPL licenses. * http://benalman.com/about/license/ */ -(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$(' diff --git a/Libraries/FCL/doc/html/navtree.css b/Libraries/FCL/doc/html/navtree.css index d1ce7ce99be..85750c19fd5 100644 --- a/Libraries/FCL/doc/html/navtree.css +++ b/Libraries/FCL/doc/html/navtree.css @@ -43,7 +43,7 @@ #nav-tree .label { margin:0px; padding:0px; - font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + font: 12px 'Lucida Grande', Geneva, Helvetica, Arial, sans-serif; } #nav-tree .label a { @@ -67,7 +67,7 @@ #nav-tree { padding: 0px 0px; - background-color: #FAFAFF; + background-color: #FAFAFF; font-size:14px; overflow:auto; } diff --git a/Libraries/FCL/doc/html/navtree.js b/Libraries/FCL/doc/html/navtree.js index e6d31b00d4a..afba52e608c 100644 --- a/Libraries/FCL/doc/html/navtree.js +++ b/Libraries/FCL/doc/html/navtree.js @@ -6,7 +6,7 @@ function getData(varName) { var i = varName.lastIndexOf('/'); var n = i>=0 ? varName.substring(i+1) : varName; - return eval(n.replace(/\-/g,'_')); + return eval(n.replace(/\-/g, '_')); } function stripPath(uri) @@ -18,13 +18,13 @@ function stripPath2(uri) { var i = uri.lastIndexOf('/'); var s = uri.substring(i+1); - var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + var m = uri.substring(0, i+1).match(/\/d\w\/d\w\w\/$/); return m ? uri.substring(i-6) : s; } function hashValue() { - return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); + return $(location).attr('hash').substring(1).replace(/[^\w\-]/g, ''); } function hashUrl() @@ -34,7 +34,7 @@ function hashUrl() function pathName() { - return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:, .;\(\)]/g, ''); } function localStorageSupported() @@ -51,14 +51,14 @@ function localStorageSupported() function storeLink(link) { if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { - window.localStorage.setItem('navpath',link); + window.localStorage.setItem('navpath', link); } } function deleteLink() { if (localStorageSupported()) { - window.localStorage.setItem('navpath',''); + window.localStorage.setItem('navpath', ''); } } @@ -71,7 +71,7 @@ function cachedLink() } } -function getScript(scriptName,func,show) +function getScript(scriptName, func, show) { var head = document.getElementsByTagName("head")[0]; var script = document.createElement('script'); @@ -87,10 +87,10 @@ function getScript(scriptName,func,show) } } } - head.appendChild(script); + head.appendChild(script); } -function createIndent(o,domNode,node,level) +function createIndent(o, domNode, node, level) { var level=-1; var n = node; @@ -125,7 +125,7 @@ function createIndent(o,domNode,node,level) var animationInProgress = false; -function gotoAnchor(anchor,aname,updateLocation) +function gotoAnchor(anchor, aname, updateLocation) { var pos, docContent = $('#doc-content'); var ancParent = $(anchor.parent()); @@ -146,7 +146,7 @@ function gotoAnchor(anchor,aname,updateLocation) animationInProgress=true; docContent.animate({ scrollTop: pos + docContent.scrollTop() - docContent.offset().top - },Math.max(50,Math.min(500,dist)),function(){ + }, Math.max(50, Math.min(500, dist)), function(){ if (updateLocation) window.location.href=aname; animationInProgress=false; }); @@ -172,7 +172,7 @@ function newNode(o, po, text, link, childrenData, lastNode) node.labelSpan = document.createElement("span"); node.labelSpan.className = "label"; - createIndent(o,node.itemDiv,node,0); + createIndent(o, node.itemDiv, node, 0); node.itemDiv.appendChild(node.labelSpan); node.li.appendChild(node.itemDiv); @@ -183,13 +183,13 @@ function newNode(o, po, text, link, childrenData, lastNode) a.appendChild(node.label); if (link) { var url; - if (link.substring(0,1)=='^') { + if (link.substring(0, 1)=='^') { url = link.substring(1); link = url; } else { url = node.relpath+link; } - a.className = stripPath(link.replace('#',':')); + a.className = stripPath(link.replace('#', ':')); if (link.indexOf('#')!=-1) { var aname = '#'+link.split('#')[1]; var srcPage = stripPath(pathName()); @@ -202,10 +202,10 @@ function newNode(o, po, text, link, childrenData, lastNode) $('.item').removeClass('selected'); $('.item').removeAttr('id'); $(a).parent().parent().addClass('selected'); - $(a).parent().parent().attr('id','selected'); + $(a).parent().parent().attr('id', 'selected'); } var anchor = $(aname); - gotoAnchor(anchor,aname,true); + gotoAnchor(anchor, aname, true); }; } else { a.href = url; @@ -242,7 +242,7 @@ function showRoot() (function (){ // retry until we can scroll to the selected item try { var navtree=$('#nav-tree'); - navtree.scrollTo('#selected',0,{offset:-windowHeight/2}); + navtree.scrollTo('#selected', 0, {offset:-windowHeight/2}); } catch (err) { setTimeout(arguments.callee, 0); } @@ -254,7 +254,7 @@ function expandNode(o, node, imm, showRoot) if (node.childrenData && !node.expanded) { if (typeof(node.childrenData)==='string') { var varName = node.childrenData; - getScript(node.relpath+varName,function(){ + getScript(node.relpath+varName, function(){ node.childrenData = getData(varName); expandNode(o, node, imm, showRoot); }, showRoot); @@ -273,7 +273,7 @@ function expandNode(o, node, imm, showRoot) } } -function glowEffect(n,duration) +function glowEffect(n, duration) { n.addClass('glow').delay(duration).queue(function(next){ $(this).removeClass('glow');next(); @@ -286,20 +286,20 @@ function highlightAnchor() var anchor = $(aname); if (anchor.parent().attr('class')=='memItemLeft'){ var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); - glowEffect(rows.children(),300); // member without details + glowEffect(rows.children(), 300); // member without details } else if (anchor.parent().attr('class')=='fieldname'){ - glowEffect(anchor.parent().parent(),1000); // enum value + glowEffect(anchor.parent().parent(), 1000); // enum value } else if (anchor.parent().attr('class')=='fieldtype'){ - glowEffect(anchor.parent().parent(),1000); // struct field + glowEffect(anchor.parent().parent(), 1000); // struct field } else if (anchor.parent().is(":header")) { - glowEffect(anchor.parent(),1000); // section header + glowEffect(anchor.parent(), 1000); // section header } else { - glowEffect(anchor.next(),1000); // normal member + glowEffect(anchor.next(), 1000); // normal member } - gotoAnchor(anchor,aname,false); + gotoAnchor(anchor, aname, false); } -function selectAndHighlight(hash,n) +function selectAndHighlight(hash, n) { var a; if (hash) { @@ -308,16 +308,16 @@ function selectAndHighlight(hash,n) } if (a && a.length) { a.parent().parent().addClass('selected'); - a.parent().parent().attr('id','selected'); + a.parent().parent().attr('id', 'selected'); highlightAnchor(); } else if (n) { $(n.itemDiv).addClass('selected'); - $(n.itemDiv).attr('id','selected'); + $(n.itemDiv).attr('id', 'selected'); } if ($('#nav-tree-contents .item:first').hasClass('selected')) { - $('#nav-sync').css('top','30px'); + $('#nav-sync').css('top', '30px'); } else { - $('#nav-sync').css('top','5px'); + $('#nav-sync').css('top', '5px'); } showRoot(); } @@ -327,10 +327,10 @@ function showNode(o, node, index, hash) if (node && node.childrenData) { if (typeof(node.childrenData)==='string') { var varName = node.childrenData; - getScript(node.relpath+varName,function(){ + getScript(node.relpath+varName, function(){ node.childrenData = getData(varName); - showNode(o,node,index,hash); - },true); + showNode(o, node, index, hash); + }, true); } else { if (!node.childrenVisited) { getNode(o, node); @@ -340,21 +340,21 @@ function showNode(o, node, index, hash) node.expanded = true; var n = node.children[o.breadcrumbs[index]]; if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,''); + if (parts.length>1) hash = '#'+parts[1].replace(/[^\w\-]/g, ''); else hash=''; } if (hash.match(/^#l\d+$/)) { var anchor=$('a[name='+hash.substring(1)+']'); - glowEffect(anchor.parent(),1000); // line number + glowEffect(anchor.parent(), 1000); // line number hash=''; // strip line number anchors } var url=root+hash; @@ -423,23 +423,23 @@ function navTo(o,root,hash,relpath) while (NAVTREEINDEX[i+1]<=url) i++; if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index if (navTreeSubIndices[i]) { - gotoNode(o,i,root,hash,relpath) + gotoNode(o, i, root, hash, relpath) } else { - getScript(relpath+'navtreeindex'+i,function(){ + getScript(relpath+'navtreeindex'+i, function(){ navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); if (navTreeSubIndices[i]) { - gotoNode(o,i,root,hash,relpath); + gotoNode(o, i, root, hash, relpath); } - },true); + }, true); } } -function showSyncOff(n,relpath) +function showSyncOff(n, relpath) { n.html(''); } -function showSyncOn(n,relpath) +function showSyncOn(n, relpath) { n.html(''); } @@ -449,16 +449,16 @@ function toggleSyncButton(relpath) var navSync = $('#nav-sync'); if (navSync.hasClass('sync')) { navSync.removeClass('sync'); - showSyncOff(navSync,relpath); + showSyncOff(navSync, relpath); storeLink(stripPath2(pathName())+hashUrl()); } else { navSync.addClass('sync'); - showSyncOn(navSync,relpath); + showSyncOn(navSync, relpath); deleteLink(); } } -function initNavTree(toroot,relpath) +function initNavTree(toroot, relpath) { var o = new Object(); o.toroot = toroot; @@ -480,16 +480,16 @@ function initNavTree(toroot,relpath) if (localStorageSupported()) { var navSync = $('#nav-sync'); if (cachedLink()) { - showSyncOff(navSync,relpath); + showSyncOff(navSync, relpath); navSync.removeClass('sync'); } else { - showSyncOn(navSync,relpath); + showSyncOn(navSync, relpath); } navSync.click(function(){ toggleSyncButton(relpath); }); } $(window).load(function(){ - navTo(o,toroot,hashUrl(),relpath); + navTo(o, toroot, hashUrl(), relpath); showRoot(); }); @@ -498,19 +498,19 @@ function initNavTree(toroot,relpath) var a; if ($(location).attr('hash')){ var clslink=stripPath(pathName())+':'+hashValue(); - a=$('.item a[class$="'+clslink.replace(/ @@ -58,12 +58,12 @@ -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/resize.js b/Libraries/FCL/doc/html/resize.js index 56e4a023c18..1b99c8e5f21 100644 --- a/Libraries/FCL/doc/html/resize.js +++ b/Libraries/FCL/doc/html/resize.js @@ -1,7 +1,7 @@ function initResizable() { var cookie_namespace = 'doxygen'; - var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight; + var sidenav, navtree, content, header, collapsed, collapsedWidth=0, barWidth=6, desktop_vp=768, titleHeight; function readCookie(cookie) { @@ -37,7 +37,7 @@ function initResizable() var windowWidth = $(window).width() + "px"; var sidenavWidth = $(sidenav).outerWidth(); content.css({marginLeft:parseInt(sidenavWidth)+"px"}); - writeCookie('width',sidenavWidth-barWidth, null); + writeCookie('width', sidenavWidth-barWidth, null); } function restoreWidth(navWidth) diff --git a/Libraries/FCL/doc/html/search/all_0.js b/Libraries/FCL/doc/html/search/all_0.js index 9ec6081ce45..71ea092c5af 100644 --- a/Libraries/FCL/doc/html/search/all_0.js +++ b/Libraries/FCL/doc/html/search/all_0.js @@ -1,8 +1,8 @@ var searchData= [ - ['_5ft_5fcurve',['_t_curve',['../group___u_c_l___e_c_d_s_a.html#struct__t__curve',1,'']]], - ['_5ft_5fdigit_5faffine_5fpoint',['_t_digit_affine_point',['../group___u_c_l___e_c_d_s_a.html#struct__t__digit__affine__point',1,'']]], - ['_5ft_5fecdsa_5fsignature',['_t_ecdsa_signature',['../group___u_c_l___e_c_d_s_a.html#struct__t__ecdsa__signature',1,'']]], - ['_5ft_5fjacobian_5fpoint',['_t_jacobian_point',['../group___u_c_l___e_c_d_s_a.html#struct__t__jacobian__point',1,'']]], - ['_5ft_5fu8_5faffine_5fpoint',['_t_u8_affine_point',['../group___u_c_l___e_c_d_s_a.html#struct__t__u8__affine__point',1,'']]] + ['_5ft_5fcurve', ['_t_curve', ['../group___u_c_l___e_c_d_s_a.html#struct__t__curve', 1, '']]], + ['_5ft_5fdigit_5faffine_5fpoint', ['_t_digit_affine_point', ['../group___u_c_l___e_c_d_s_a.html#struct__t__digit__affine__point', 1, '']]], + ['_5ft_5fecdsa_5fsignature', ['_t_ecdsa_signature', ['../group___u_c_l___e_c_d_s_a.html#struct__t__ecdsa__signature', 1, '']]], + ['_5ft_5fjacobian_5fpoint', ['_t_jacobian_point', ['../group___u_c_l___e_c_d_s_a.html#struct__t__jacobian__point', 1, '']]], + ['_5ft_5fu8_5faffine_5fpoint', ['_t_u8_affine_point', ['../group___u_c_l___e_c_d_s_a.html#struct__t__u8__affine__point', 1, '']]] ]; diff --git a/Libraries/FCL/doc/html/search/all_1.js b/Libraries/FCL/doc/html/search/all_1.js index 8fdd0bd1ee5..d16f1892aa7 100644 --- a/Libraries/FCL/doc/html/search/all_1.js +++ b/Libraries/FCL/doc/html/search/all_1.js @@ -1,8 +1,8 @@ var searchData= [ - ['a',['a',['../group___u_c_l___e_c_d_s_a.html#a88955062c39051a3125096467bc4ab29',1,'_t_curve']]], - ['aes',['AES',['../group___u_c_l___a_e_s.html',1,'']]], - ['aes_20cbc',['AES CBC',['../group___u_c_l___c_b_c___a_e_s.html',1,'']]], - ['aes_20cbc_5fmac',['AES CBC_MAC',['../group___u_c_l___c_b_c___m_a_c___a_e_s.html',1,'']]], - ['aes_20ecb',['AES ECB',['../group___u_c_l___e_c_b___a_e_s.html',1,'']]] + ['a', ['a', ['../group___u_c_l___e_c_d_s_a.html#a88955062c39051a3125096467bc4ab29', 1, '_t_curve']]], + ['aes', ['AES', ['../group___u_c_l___a_e_s.html', 1, '']]], + ['aes_20cbc', ['AES CBC', ['../group___u_c_l___c_b_c___a_e_s.html', 1, '']]], + ['aes_20cbc_5fmac', ['AES CBC_MAC', ['../group___u_c_l___c_b_c___m_a_c___a_e_s.html', 1, '']]], + ['aes_20ecb', ['AES ECB', ['../group___u_c_l___e_c_b___a_e_s.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/html/search/all_10.js b/Libraries/FCL/doc/html/search/all_10.js index e014ec296b3..f035d30f94e 100644 --- a/Libraries/FCL/doc/html/search/all_10.js +++ b/Libraries/FCL/doc/html/search/all_10.js @@ -1,5 +1,5 @@ var searchData= [ - ['y',['y',['../group___u_c_l___e_c_d_s_a.html#a7c48a39466ef1e0a5be106b297e920b5',1,'_t_jacobian_point::y()'],['../group___u_c_l___e_c_d_s_a.html#a6e7899d61e302b5db66be4db664372b0',1,'_t_u8_affine_point::y()'],['../group___u_c_l___e_c_d_s_a.html#a7c48a39466ef1e0a5be106b297e920b5',1,'_t_digit_affine_point::y()']]], - ['yg',['yg',['../group___u_c_l___e_c_d_s_a.html#aefd5cee3d48669caaf076f0c596ba644',1,'_t_curve']]] + ['y', ['y', ['../group___u_c_l___e_c_d_s_a.html#a7c48a39466ef1e0a5be106b297e920b5', 1, '_t_jacobian_point::y()'], ['../group___u_c_l___e_c_d_s_a.html#a6e7899d61e302b5db66be4db664372b0', 1, '_t_u8_affine_point::y()'], ['../group___u_c_l___e_c_d_s_a.html#a7c48a39466ef1e0a5be106b297e920b5', 1, '_t_digit_affine_point::y()']]], + ['yg', ['yg', ['../group___u_c_l___e_c_d_s_a.html#aefd5cee3d48669caaf076f0c596ba644', 1, '_t_curve']]] ]; diff --git a/Libraries/FCL/doc/html/search/all_11.js b/Libraries/FCL/doc/html/search/all_11.js index b53f0533e65..af88757d15f 100644 --- a/Libraries/FCL/doc/html/search/all_11.js +++ b/Libraries/FCL/doc/html/search/all_11.js @@ -1,4 +1,4 @@ var searchData= [ - ['z',['z',['../group___u_c_l___e_c_d_s_a.html#a48e8ffec6ab90e777406760e2dd11aa3',1,'_t_jacobian_point']]] + ['z', ['z', ['../group___u_c_l___e_c_d_s_a.html#a48e8ffec6ab90e777406760e2dd11aa3', 1, '_t_jacobian_point']]] ]; diff --git a/Libraries/FCL/doc/html/search/all_12.js b/Libraries/FCL/doc/html/search/all_12.js index f20d1ee927f..43a30732235 100644 --- a/Libraries/FCL/doc/html/search/all_12.js +++ b/Libraries/FCL/doc/html/search/all_12.js @@ -1,5 +1,5 @@ var searchData= [ - ['y',['y',['../struct__t__jacobian__point.html#a7c48a39466ef1e0a5be106b297e920b5',1,'_t_jacobian_point::y()'],['../struct__t__u8__affine__point.html#a6e7899d61e302b5db66be4db664372b0',1,'_t_u8_affine_point::y()'],['../struct__t__digit__affine__point.html#a7c48a39466ef1e0a5be106b297e920b5',1,'_t_digit_affine_point::y()']]], - ['yg',['yg',['../struct__t__curve.html#aefd5cee3d48669caaf076f0c596ba644',1,'_t_curve']]] + ['y', ['y', ['../struct__t__jacobian__point.html#a7c48a39466ef1e0a5be106b297e920b5', 1, '_t_jacobian_point::y()'], ['../struct__t__u8__affine__point.html#a6e7899d61e302b5db66be4db664372b0', 1, '_t_u8_affine_point::y()'], ['../struct__t__digit__affine__point.html#a7c48a39466ef1e0a5be106b297e920b5', 1, '_t_digit_affine_point::y()']]], + ['yg', ['yg', ['../struct__t__curve.html#aefd5cee3d48669caaf076f0c596ba644', 1, '_t_curve']]] ]; diff --git a/Libraries/FCL/doc/html/search/all_13.js b/Libraries/FCL/doc/html/search/all_13.js index b8cf629387f..be4aed32034 100644 --- a/Libraries/FCL/doc/html/search/all_13.js +++ b/Libraries/FCL/doc/html/search/all_13.js @@ -1,4 +1,4 @@ var searchData= [ - ['z',['z',['../struct__t__jacobian__point.html#a48e8ffec6ab90e777406760e2dd11aa3',1,'_t_jacobian_point']]] + ['z', ['z', ['../struct__t__jacobian__point.html#a48e8ffec6ab90e777406760e2dd11aa3', 1, '_t_jacobian_point']]] ]; diff --git a/Libraries/FCL/doc/html/search/all_2.js b/Libraries/FCL/doc/html/search/all_2.js index 4a9d4babc31..cfe01c97b1b 100644 --- a/Libraries/FCL/doc/html/search/all_2.js +++ b/Libraries/FCL/doc/html/search/all_2.js @@ -1,8 +1,8 @@ var searchData= [ - ['b',['b',['../group___u_c_l___e_c_d_s_a.html#a8b6702ad371684048f47db647567c59f',1,'_t_curve']]], - ['bp256r1',['bp256r1',['../group___u_c_l___e_c_d_s_a.html#gaa615f8af711d0a9df37aecfd9711fd8d',1,'bp256r1(): ecdsa_high.c'],['../group___u_c_l___e_c_d_s_a.html#gaa615f8af711d0a9df37aecfd9711fd8d',1,'bp256r1(): ecdsa_high.c']]], - ['bp384r1',['bp384r1',['../group___u_c_l___e_c_d_s_a.html#gae7c381dd9ae6323750f96cd8c6c6dfa0',1,'bp384r1(): ecdsa_high.c'],['../group___u_c_l___e_c_d_s_a.html#gae7c381dd9ae6323750f96cd8c6c6dfa0',1,'bp384r1(): ecdsa_high.c']]], - ['bp512r1',['bp512r1',['../group___u_c_l___e_c_d_s_a.html#ga8d8f97e8e9d9129d0b01e8ae7110b577',1,'bp512r1(): ecdsa_high.c'],['../group___u_c_l___e_c_d_s_a.html#ga8d8f97e8e9d9129d0b01e8ae7110b577',1,'bp512r1(): ecdsa_high.c']]], - ['buffer',['buffer',['../group___u_c_l___s_h_a256.html#a3aaaf77cfeea088172a742d19d1f9bcb',1,'ucl_sha256_ctx::buffer()'],['../group___u_c_l___s_i_a256.html#a3aaaf77cfeea088172a742d19d1f9bcb',1,'ucl_sia256_ctx::buffer()']]] + ['b', ['b', ['../group___u_c_l___e_c_d_s_a.html#a8b6702ad371684048f47db647567c59f', 1, '_t_curve']]], + ['bp256r1', ['bp256r1', ['../group___u_c_l___e_c_d_s_a.html#gaa615f8af711d0a9df37aecfd9711fd8d', 1, 'bp256r1(): ecdsa_high.c'], ['../group___u_c_l___e_c_d_s_a.html#gaa615f8af711d0a9df37aecfd9711fd8d', 1, 'bp256r1(): ecdsa_high.c']]], + ['bp384r1', ['bp384r1', ['../group___u_c_l___e_c_d_s_a.html#gae7c381dd9ae6323750f96cd8c6c6dfa0', 1, 'bp384r1(): ecdsa_high.c'], ['../group___u_c_l___e_c_d_s_a.html#gae7c381dd9ae6323750f96cd8c6c6dfa0', 1, 'bp384r1(): ecdsa_high.c']]], + ['bp512r1', ['bp512r1', ['../group___u_c_l___e_c_d_s_a.html#ga8d8f97e8e9d9129d0b01e8ae7110b577', 1, 'bp512r1(): ecdsa_high.c'], ['../group___u_c_l___e_c_d_s_a.html#ga8d8f97e8e9d9129d0b01e8ae7110b577', 1, 'bp512r1(): ecdsa_high.c']]], + ['buffer', ['buffer', ['../group___u_c_l___s_h_a256.html#a3aaaf77cfeea088172a742d19d1f9bcb', 1, 'ucl_sha256_ctx::buffer()'], ['../group___u_c_l___s_i_a256.html#a3aaaf77cfeea088172a742d19d1f9bcb', 1, 'ucl_sia256_ctx::buffer()']]] ]; diff --git a/Libraries/FCL/doc/html/search/all_3.js b/Libraries/FCL/doc/html/search/all_3.js index a15bc3ad9f3..ee7d2517198 100644 --- a/Libraries/FCL/doc/html/search/all_3.js +++ b/Libraries/FCL/doc/html/search/all_3.js @@ -1,7 +1,7 @@ var searchData= [ - ['count',['count',['../group___u_c_l___s_h_a256.html#a9d40863406b2429b1f43c9b90cff5cf5',1,'ucl_sha256_ctx::count()'],['../group___u_c_l___s_i_a256.html#a9d40863406b2429b1f43c9b90cff5cf5',1,'ucl_sia256_ctx::count()']]], - ['curve',['curve',['../group___u_c_l___e_c_d_s_a.html#ad61e4ff482e52b3da8c2f5e13dc3c73d',1,'_t_curve']]], - ['curve_5fbsize',['curve_bsize',['../group___u_c_l___e_c_d_s_a.html#a9bbec58f3c4e0242f4a35e5a074e8157',1,'_t_curve']]], - ['curve_5fwsize',['curve_wsize',['../group___u_c_l___e_c_d_s_a.html#a197249f7a6676b30ff0a587d2840d6bb',1,'_t_curve']]] + ['count', ['count', ['../group___u_c_l___s_h_a256.html#a9d40863406b2429b1f43c9b90cff5cf5', 1, 'ucl_sha256_ctx::count()'], ['../group___u_c_l___s_i_a256.html#a9d40863406b2429b1f43c9b90cff5cf5', 1, 'ucl_sia256_ctx::count()']]], + ['curve', ['curve', ['../group___u_c_l___e_c_d_s_a.html#ad61e4ff482e52b3da8c2f5e13dc3c73d', 1, '_t_curve']]], + ['curve_5fbsize', ['curve_bsize', ['../group___u_c_l___e_c_d_s_a.html#a9bbec58f3c4e0242f4a35e5a074e8157', 1, '_t_curve']]], + ['curve_5fwsize', ['curve_wsize', ['../group___u_c_l___e_c_d_s_a.html#a197249f7a6676b30ff0a587d2840d6bb', 1, '_t_curve']]] ]; diff --git a/Libraries/FCL/doc/html/search/all_4.js b/Libraries/FCL/doc/html/search/all_4.js index 7d0bb947134..3a803e36b26 100644 --- a/Libraries/FCL/doc/html/search/all_4.js +++ b/Libraries/FCL/doc/html/search/all_4.js @@ -1,6 +1,6 @@ var searchData= [ - ['defines',['Defines',['../group___u_c_l___d_e_f_i_n_e_s.html',1,'']]], - ['definitions',['Definitions',['../group___u_c_l___d_e_f_i_n_i_t_i_o_n_s.html',1,'']]], - ['definitions_20of_20returns',['Definitions of returns',['../group___u_c_l___r_e_t_u_r_n.html',1,'']]] + ['defines', ['Defines', ['../group___u_c_l___d_e_f_i_n_e_s.html', 1, '']]], + ['definitions', ['Definitions', ['../group___u_c_l___d_e_f_i_n_i_t_i_o_n_s.html', 1, '']]], + ['definitions_20of_20returns', ['Definitions of returns', ['../group___u_c_l___r_e_t_u_r_n.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/html/search/all_5.js b/Libraries/FCL/doc/html/search/all_5.js index cf1ebd617c7..71dc8063360 100644 --- a/Libraries/FCL/doc/html/search/all_5.js +++ b/Libraries/FCL/doc/html/search/all_5.js @@ -1,9 +1,9 @@ var searchData= [ - ['ecc_5fadd',['ecc_add',['../group___u_c_l___e_c_d_s_a.html#ga4f6107068fc0d727a6a3589522e56eb5',1,'ecc_add(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_point Q1, ucl_type_ecc_digit_affine_point Q2, ucl_type_curve *curve_params): ecdsa_generic_api.c'],['../group___u_c_l___e_c_d_s_a.html#ga4f6107068fc0d727a6a3589522e56eb5',1,'ecc_add(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_point Q1, ucl_type_ecc_digit_affine_point Q2, ucl_type_curve *curve_params): ecdsa_generic_api.c']]], - ['ecc_5fdouble',['ecc_double',['../group___u_c_l___e_c_d_s_a.html#gad710700899b809c5677bfe69efba6ef6',1,'ecc_double(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_point Q1, ucl_type_curve *curve_params): ecdsa_generic_api.c'],['../group___u_c_l___e_c_d_s_a.html#gad710700899b809c5677bfe69efba6ef6',1,'ecc_double(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_point Q1, ucl_type_curve *curve_params): ecdsa_generic_api.c']]], - ['ecc_5fmult_5fjacobian',['ecc_mult_jacobian',['../group___u_c_l___e_c_d_s_a.html#ga2cd6538583c4c83f176b9c57e24d0621',1,'ecc_mult_jacobian(ucl_type_ecc_digit_affine_point Q, u32 *m, ucl_type_ecc_digit_affine_point X1, ucl_type_curve *curve_params): ecdsa_generic_api.c'],['../group___u_c_l___e_c_d_s_a.html#ga2cd6538583c4c83f176b9c57e24d0621',1,'ecc_mult_jacobian(ucl_type_ecc_digit_affine_point Q, u32 *m, ucl_type_ecc_digit_affine_point X1, ucl_type_curve *curve_params): ecdsa_generic_api.c']]], - ['ecdsa_5fblock_5fsize',['ECDSA_BLOCK_SIZE',['../ecdsa__generic__api_8h.html#aebc3abfe61ebd7c6fce2c282888e7130',1,'ecdsa_generic_api.h']]], - ['ecdsa_5fgeneric_5fapi_2eh',['ecdsa_generic_api.h',['../ecdsa__generic__api_8h.html',1,'']]], - ['ecdsa',['ECDSA',['../group___u_c_l___e_c_d_s_a.html',1,'']]] + ['ecc_5fadd', ['ecc_add', ['../group___u_c_l___e_c_d_s_a.html#ga4f6107068fc0d727a6a3589522e56eb5', 1, 'ecc_add(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_point Q1, ucl_type_ecc_digit_affine_point Q2, ucl_type_curve *curve_params): ecdsa_generic_api.c'], ['../group___u_c_l___e_c_d_s_a.html#ga4f6107068fc0d727a6a3589522e56eb5', 1, 'ecc_add(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_point Q1, ucl_type_ecc_digit_affine_point Q2, ucl_type_curve *curve_params): ecdsa_generic_api.c']]], + ['ecc_5fdouble', ['ecc_double', ['../group___u_c_l___e_c_d_s_a.html#gad710700899b809c5677bfe69efba6ef6', 1, 'ecc_double(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_point Q1, ucl_type_curve *curve_params): ecdsa_generic_api.c'], ['../group___u_c_l___e_c_d_s_a.html#gad710700899b809c5677bfe69efba6ef6', 1, 'ecc_double(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_point Q1, ucl_type_curve *curve_params): ecdsa_generic_api.c']]], + ['ecc_5fmult_5fjacobian', ['ecc_mult_jacobian', ['../group___u_c_l___e_c_d_s_a.html#ga2cd6538583c4c83f176b9c57e24d0621', 1, 'ecc_mult_jacobian(ucl_type_ecc_digit_affine_point Q, u32 *m, ucl_type_ecc_digit_affine_point X1, ucl_type_curve *curve_params): ecdsa_generic_api.c'], ['../group___u_c_l___e_c_d_s_a.html#ga2cd6538583c4c83f176b9c57e24d0621', 1, 'ecc_mult_jacobian(ucl_type_ecc_digit_affine_point Q, u32 *m, ucl_type_ecc_digit_affine_point X1, ucl_type_curve *curve_params): ecdsa_generic_api.c']]], + ['ecdsa_5fblock_5fsize', ['ECDSA_BLOCK_SIZE', ['../ecdsa__generic__api_8h.html#aebc3abfe61ebd7c6fce2c282888e7130', 1, 'ecdsa_generic_api.h']]], + ['ecdsa_5fgeneric_5fapi_2eh', ['ecdsa_generic_api.h', ['../ecdsa__generic__api_8h.html', 1, '']]], + ['ecdsa', ['ECDSA', ['../group___u_c_l___e_c_d_s_a.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/html/search/all_6.js b/Libraries/FCL/doc/html/search/all_6.js index d69294eb747..d6b8dd189a6 100644 --- a/Libraries/FCL/doc/html/search/all_6.js +++ b/Libraries/FCL/doc/html/search/all_6.js @@ -1,5 +1,5 @@ var searchData= [ - ['index',['index',['../group___u_c_l___a_e_s.html#afd715dc311d1a73bd24f87a7624e1bac',1,'ucl_aes_ctx']]], - ['invp2',['invp2',['../group___u_c_l___e_c_d_s_a.html#af069f02c44aabbf48a58630e66a45881',1,'_t_curve']]] + ['index', ['index', ['../group___u_c_l___a_e_s.html#afd715dc311d1a73bd24f87a7624e1bac', 1, 'ucl_aes_ctx']]], + ['invp2', ['invp2', ['../group___u_c_l___e_c_d_s_a.html#af069f02c44aabbf48a58630e66a45881', 1, '_t_curve']]] ]; diff --git a/Libraries/FCL/doc/html/search/all_7.js b/Libraries/FCL/doc/html/search/all_7.js index 2bbaeb1d52a..4fb6f8d98ad 100644 --- a/Libraries/FCL/doc/html/search/all_7.js +++ b/Libraries/FCL/doc/html/search/all_7.js @@ -1,4 +1,4 @@ var searchData= [ - ['key',['key',['../group___u_c_l___a_e_s.html#a015c2d4ed3f52cb529029e30b4d879cf',1,'ucl_aes_ctx']]] + ['key', ['key', ['../group___u_c_l___a_e_s.html#a015c2d4ed3f52cb529029e30b4d879cf', 1, 'ucl_aes_ctx']]] ]; diff --git a/Libraries/FCL/doc/html/search/all_8.js b/Libraries/FCL/doc/html/search/all_8.js index 99ddd6670ba..8657517e981 100644 --- a/Libraries/FCL/doc/html/search/all_8.js +++ b/Libraries/FCL/doc/html/search/all_8.js @@ -1,5 +1,5 @@ var searchData= [ - ['memory',['memory',['../group___u_c_l___a_e_s.html#ad5c567f19814b34dc88ee16c772cf050',1,'ucl_aes_ctx']]], - ['mode',['mode',['../group___u_c_l___a_e_s.html#a1ea5d0cb93f22f7d0fdf804bd68c3326',1,'ucl_aes_ctx']]] + ['memory', ['memory', ['../group___u_c_l___a_e_s.html#ad5c567f19814b34dc88ee16c772cf050', 1, 'ucl_aes_ctx']]], + ['mode', ['mode', ['../group___u_c_l___a_e_s.html#a1ea5d0cb93f22f7d0fdf804bd68c3326', 1, 'ucl_aes_ctx']]] ]; diff --git a/Libraries/FCL/doc/html/search/all_9.js b/Libraries/FCL/doc/html/search/all_9.js index b7f6614769f..af74ce22f42 100644 --- a/Libraries/FCL/doc/html/search/all_9.js +++ b/Libraries/FCL/doc/html/search/all_9.js @@ -1,4 +1,4 @@ var searchData= [ - ['n',['n',['../group___u_c_l___e_c_d_s_a.html#a47b7adf4fa2a08459833020659e6a504',1,'_t_curve']]] + ['n', ['n', ['../group___u_c_l___e_c_d_s_a.html#a47b7adf4fa2a08459833020659e6a504', 1, '_t_curve']]] ]; diff --git a/Libraries/FCL/doc/html/search/all_a.js b/Libraries/FCL/doc/html/search/all_a.js index 86526383723..90138873527 100644 --- a/Libraries/FCL/doc/html/search/all_a.js +++ b/Libraries/FCL/doc/html/search/all_a.js @@ -1,4 +1,4 @@ var searchData= [ - ['origin_5fkey',['origin_key',['../group___u_c_l___a_e_s.html#a50952b9fd1daf9a4ff8aa6ead552c438',1,'ucl_aes_ctx']]] + ['origin_5fkey', ['origin_key', ['../group___u_c_l___a_e_s.html#a50952b9fd1daf9a4ff8aa6ead552c438', 1, 'ucl_aes_ctx']]] ]; diff --git a/Libraries/FCL/doc/html/search/all_b.js b/Libraries/FCL/doc/html/search/all_b.js index 90b298f3fbb..76ca1753e15 100644 --- a/Libraries/FCL/doc/html/search/all_b.js +++ b/Libraries/FCL/doc/html/search/all_b.js @@ -1,7 +1,7 @@ var searchData= [ - ['p',['p',['../group___u_c_l___e_c_d_s_a.html#ad19e9ad5fa75d3a5f3e691c3ed9627b5',1,'_t_curve']]], - ['psquare',['psquare',['../group___u_c_l___e_c_d_s_a.html#adb489f0d60e4689407b67e1b45cb1848',1,'_t_curve']]], - ['px',['px',['../group___u_c_l___e_c_d_s_a.html#affdf78baef4434da522f1b63632bd17e',1,'_t_curve']]], - ['py',['py',['../group___u_c_l___e_c_d_s_a.html#aed69d60ec1a2d98bd79d9d35386558eb',1,'_t_curve']]] + ['p', ['p', ['../group___u_c_l___e_c_d_s_a.html#ad19e9ad5fa75d3a5f3e691c3ed9627b5', 1, '_t_curve']]], + ['psquare', ['psquare', ['../group___u_c_l___e_c_d_s_a.html#adb489f0d60e4689407b67e1b45cb1848', 1, '_t_curve']]], + ['px', ['px', ['../group___u_c_l___e_c_d_s_a.html#affdf78baef4434da522f1b63632bd17e', 1, '_t_curve']]], + ['py', ['py', ['../group___u_c_l___e_c_d_s_a.html#aed69d60ec1a2d98bd79d9d35386558eb', 1, '_t_curve']]] ]; diff --git a/Libraries/FCL/doc/html/search/all_c.js b/Libraries/FCL/doc/html/search/all_c.js index 46efdfd4758..a3308c612d9 100644 --- a/Libraries/FCL/doc/html/search/all_c.js +++ b/Libraries/FCL/doc/html/search/all_c.js @@ -1,6 +1,6 @@ var searchData= [ - ['r',['r',['../group___u_c_l___e_c_d_s_a.html#ad94fd3eb6814b5963e6bc12f2af1fd80',1,'_t_ecdsa_signature']]], - ['rd_5fkey',['rd_key',['../group___u_c_l___a_e_s.html#a3da20808fe4a919eb249e35600ced93a',1,'ucl_aes_key']]], - ['rounds',['rounds',['../group___u_c_l___a_e_s.html#ab951ebd61b5fff7fb5c4212d7fc63254',1,'ucl_aes_key']]] + ['r', ['r', ['../group___u_c_l___e_c_d_s_a.html#ad94fd3eb6814b5963e6bc12f2af1fd80', 1, '_t_ecdsa_signature']]], + ['rd_5fkey', ['rd_key', ['../group___u_c_l___a_e_s.html#a3da20808fe4a919eb249e35600ced93a', 1, 'ucl_aes_key']]], + ['rounds', ['rounds', ['../group___u_c_l___a_e_s.html#ab951ebd61b5fff7fb5c4212d7fc63254', 1, 'ucl_aes_key']]] ]; diff --git a/Libraries/FCL/doc/html/search/all_d.js b/Libraries/FCL/doc/html/search/all_d.js index 7340b2700c0..ccfa812d935 100644 --- a/Libraries/FCL/doc/html/search/all_d.js +++ b/Libraries/FCL/doc/html/search/all_d.js @@ -1,18 +1,18 @@ var searchData= [ - ['s',['s',['../group___u_c_l___e_c_d_s_a.html#aa485375cd3a50ab010ae94f44b55ea01',1,'_t_ecdsa_signature']]], - ['secp192r1',['secp192r1',['../group___u_c_l___e_c_d_s_a.html#gafc3a9af37f1b3b13756c0bec744ae2db',1,'secp192r1(): ecdsa_high.c'],['../group___u_c_l___e_c_d_s_a.html#gafc3a9af37f1b3b13756c0bec744ae2db',1,'secp192r1(): ecdsa_high.c']]], - ['secp256r1',['secp256r1',['../group___u_c_l___e_c_d_s_a.html#ga5dc5443ed4f16fffd8979f7c83e5af52',1,'secp256r1(): ecdsa_high.c'],['../group___u_c_l___e_c_d_s_a.html#ga5dc5443ed4f16fffd8979f7c83e5af52',1,'secp256r1(): ecdsa_high.c']]], - ['secp384r1',['secp384r1',['../group___u_c_l___e_c_d_s_a.html#ga17e325d310f21b993e5216190adff6fa',1,'secp384r1(): ecdsa_high.c'],['../group___u_c_l___e_c_d_s_a.html#ga17e325d310f21b993e5216190adff6fa',1,'secp384r1(): ecdsa_high.c']]], - ['secp521r1',['secp521r1',['../group___u_c_l___e_c_d_s_a.html#ga04ba5d10999f0be7ba6b0c0dacb29a3e',1,'secp521r1(): ecdsa_high.c'],['../group___u_c_l___e_c_d_s_a.html#ga04ba5d10999f0be7ba6b0c0dacb29a3e',1,'secp521r1(): ecdsa_high.c']]], - ['sha256_5fstone',['sha256_stone',['../group___u_c_l___s_h_a256.html#ga5cec03b1051fb913a25408a1a67a69b8',1,'sha256.h']]], - ['sha3_5fcontext_5f',['sha3_context_',['../ucl__sha3_8h.html#structsha3__context__',1,'']]], - ['sha3_5fcontext_5f_2e_5f_5funnamed_5f_5f',['sha3_context_.__unnamed__',['../ucl__sha3_8h.html#unionsha3__context___8____unnamed____',1,'']]], - ['sha3_5fctx',['sha3_ctx',['../group___u_c_l___s_h_a3.html#structsha3__ctx',1,'sha3_ctx'],['../group___u_c_l___s_h_a3.html#ga5f766586bfef5602471c1138c4e12414',1,'sha3_ctx(): ucl_sha3.h']]], - ['state',['state',['../group___u_c_l___s_h_a256.html#a7e2cf91d535966783b7d74bd0e891de9',1,'ucl_sha256_ctx::state()'],['../group___u_c_l___s_i_a256.html#a7e2cf91d535966783b7d74bd0e891de9',1,'ucl_sia256_ctx::state()']]], - ['sha256',['SHA256',['../group___u_c_l___s_h_a256.html',1,'']]], - ['sha3',['SHA3',['../group___u_c_l___s_h_a3.html',1,'']]], - ['sha384',['SHA384',['../group___u_c_l___s_h_a384.html',1,'']]], - ['sha512',['SHA512',['../group___u_c_l___s_h_a512.html',1,'']]], - ['sia256',['SIA256',['../group___u_c_l___s_i_a256.html',1,'']]] + ['s', ['s', ['../group___u_c_l___e_c_d_s_a.html#aa485375cd3a50ab010ae94f44b55ea01', 1, '_t_ecdsa_signature']]], + ['secp192r1', ['secp192r1', ['../group___u_c_l___e_c_d_s_a.html#gafc3a9af37f1b3b13756c0bec744ae2db', 1, 'secp192r1(): ecdsa_high.c'], ['../group___u_c_l___e_c_d_s_a.html#gafc3a9af37f1b3b13756c0bec744ae2db', 1, 'secp192r1(): ecdsa_high.c']]], + ['secp256r1', ['secp256r1', ['../group___u_c_l___e_c_d_s_a.html#ga5dc5443ed4f16fffd8979f7c83e5af52', 1, 'secp256r1(): ecdsa_high.c'], ['../group___u_c_l___e_c_d_s_a.html#ga5dc5443ed4f16fffd8979f7c83e5af52', 1, 'secp256r1(): ecdsa_high.c']]], + ['secp384r1', ['secp384r1', ['../group___u_c_l___e_c_d_s_a.html#ga17e325d310f21b993e5216190adff6fa', 1, 'secp384r1(): ecdsa_high.c'], ['../group___u_c_l___e_c_d_s_a.html#ga17e325d310f21b993e5216190adff6fa', 1, 'secp384r1(): ecdsa_high.c']]], + ['secp521r1', ['secp521r1', ['../group___u_c_l___e_c_d_s_a.html#ga04ba5d10999f0be7ba6b0c0dacb29a3e', 1, 'secp521r1(): ecdsa_high.c'], ['../group___u_c_l___e_c_d_s_a.html#ga04ba5d10999f0be7ba6b0c0dacb29a3e', 1, 'secp521r1(): ecdsa_high.c']]], + ['sha256_5fstone', ['sha256_stone', ['../group___u_c_l___s_h_a256.html#ga5cec03b1051fb913a25408a1a67a69b8', 1, 'sha256.h']]], + ['sha3_5fcontext_5f', ['sha3_context_', ['../ucl__sha3_8h.html#structsha3__context__', 1, '']]], + ['sha3_5fcontext_5f_2e_5f_5funnamed_5f_5f', ['sha3_context_.__unnamed__', ['../ucl__sha3_8h.html#unionsha3__context___8____unnamed____', 1, '']]], + ['sha3_5fctx', ['sha3_ctx', ['../group___u_c_l___s_h_a3.html#structsha3__ctx', 1, 'sha3_ctx'], ['../group___u_c_l___s_h_a3.html#ga5f766586bfef5602471c1138c4e12414', 1, 'sha3_ctx(): ucl_sha3.h']]], + ['state', ['state', ['../group___u_c_l___s_h_a256.html#a7e2cf91d535966783b7d74bd0e891de9', 1, 'ucl_sha256_ctx::state()'], ['../group___u_c_l___s_i_a256.html#a7e2cf91d535966783b7d74bd0e891de9', 1, 'ucl_sia256_ctx::state()']]], + ['sha256', ['SHA256', ['../group___u_c_l___s_h_a256.html', 1, '']]], + ['sha3', ['SHA3', ['../group___u_c_l___s_h_a3.html', 1, '']]], + ['sha384', ['SHA384', ['../group___u_c_l___s_h_a384.html', 1, '']]], + ['sha512', ['SHA512', ['../group___u_c_l___s_h_a512.html', 1, '']]], + ['sia256', ['SIA256', ['../group___u_c_l___s_i_a256.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/html/search/all_e.js b/Libraries/FCL/doc/html/search/all_e.js index 9ebadeb3ed6..05485641997 100644 --- a/Libraries/FCL/doc/html/search/all_e.js +++ b/Libraries/FCL/doc/html/search/all_e.js @@ -1,128 +1,128 @@ var searchData= [ - ['ucl_5faes',['ucl_aes',['../group___u_c_l___a_e_s.html#gaca29dee32202c46c6cf538d87fee1774',1,'ucl_aes(u8 *dst, u8 *src, u8 *key, u32 keylen, int mode): ucl_aes.c'],['../group___u_c_l___a_e_s.html#gaca29dee32202c46c6cf538d87fee1774',1,'ucl_aes(u8 *dst, u8 *src, u8 *key, u32 keylen, int mode): ucl_aes.c']]], - ['ucl_5faes_2eh',['ucl_aes.h',['../ucl__aes_8h.html',1,'']]], - ['ucl_5faes_5fblocksize',['UCL_AES_BLOCKSIZE',['../group___u_c_l___a_e_s.html#ga5e685d938501540d687d1f0178942c7a',1,'ucl_aes.h']]], - ['ucl_5faes_5fcbc',['ucl_aes_cbc',['../group___u_c_l___c_b_c___a_e_s.html#ga268461124bf0e0102f14e5c064184e06',1,'ucl_aes_cbc(u8 *dst, u8 *src, u32 len, u8 *key, u32 keylen, u8 *IV, int mode): ucl_aes_cbc.c'],['../group___u_c_l___c_b_c___a_e_s.html#ga268461124bf0e0102f14e5c064184e06',1,'ucl_aes_cbc(u8 *dst, u8 *src, u32 len, u8 *key, u32 keylen, u8 *IV, int mode): ucl_aes_cbc.c']]], - ['ucl_5faes_5fcbc_2eh',['ucl_aes_cbc.h',['../ucl__aes__cbc_8h.html',1,'']]], - ['ucl_5faes_5fcbc_5fcore',['ucl_aes_cbc_core',['../group___u_c_l___c_b_c___a_e_s.html#ga657edde9f5ef7592530feef5489e5c88',1,'ucl_aes_cbc_core(u8 *dst, ucl_aes_ctx_t *ctx, u8 *src, u32 len): ucl_aes_cbc.c'],['../group___u_c_l___c_b_c___a_e_s.html#ga657edde9f5ef7592530feef5489e5c88',1,'ucl_aes_cbc_core(u8 *dst, ucl_aes_ctx_t *ctx, u8 *src, u32 len): ucl_aes_cbc.c']]], - ['ucl_5faes_5fcbc_5fcore_5fcontext',['ucl_aes_cbc_core_context',['../group___u_c_l___c_b_c___a_e_s.html#ga7b2a1fe6b5daac0396a5bdbca4008d9b',1,'ucl_aes_cbc.h']]], - ['ucl_5faes_5fcbc_5finit',['ucl_aes_cbc_init',['../group___u_c_l___c_b_c___a_e_s.html#ga82c276c9fdc7109848e125730dc10ba1',1,'ucl_aes_cbc_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen, u8 *IV, int mode): ucl_aes_cbc.c'],['../group___u_c_l___c_b_c___a_e_s.html#ga82c276c9fdc7109848e125730dc10ba1',1,'ucl_aes_cbc_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen, u8 *IV, int mode): ucl_aes_cbc.c']]], - ['ucl_5faes_5fcbc_5fmac',['ucl_aes_cbc_mac',['../group___u_c_l___c_b_c___m_a_c___a_e_s.html#ga54454aeade80c750a2124bdc7c977e09',1,'ucl_aes_cbc_mac(u8 *tmac, u8 tmac_byteLen, u8 *src, u32 len, u8 *key, u32 keylen): ucl_aes_cbc_mac.c'],['../group___u_c_l___c_b_c___m_a_c___a_e_s.html#ga54454aeade80c750a2124bdc7c977e09',1,'ucl_aes_cbc_mac(u8 *tmac, u8 tmac_byteLen, u8 *src, u32 len, u8 *key, u32 keylen): ucl_aes_cbc_mac.c']]], - ['ucl_5faes_5fcbc_5fmac_2eh',['ucl_aes_cbc_mac.h',['../ucl__aes__cbc__mac_8h.html',1,'']]], - ['ucl_5faes_5fcbc_5fmac_5fcore',['ucl_aes_cbc_mac_core',['../group___u_c_l___c_b_c___m_a_c___a_e_s.html#gaffbd37974cae88d13a2d273bb705895f',1,'ucl_aes_cbc_mac_core(ucl_aes_ctx_t *ctx, u8 *src, u32 len): ucl_aes_cbc_mac.c'],['../group___u_c_l___c_b_c___m_a_c___a_e_s.html#gaffbd37974cae88d13a2d273bb705895f',1,'ucl_aes_cbc_mac_core(ucl_aes_ctx_t *ctx, u8 *src, u32 len): ucl_aes_cbc_mac.c']]], - ['ucl_5faes_5fcbc_5fmac_5ffinish',['ucl_aes_cbc_mac_finish',['../ucl__aes__cbc__mac_8h.html#a031d1443c3f8b50e15f07cd567ff02ff',1,'ucl_aes_cbc_mac.c']]], - ['ucl_5faes_5fcbc_5fmac_5finit',['ucl_aes_cbc_mac_init',['../group___u_c_l___c_b_c___m_a_c___a_e_s.html#gab4d690c0e96f9269c9690d29b073b39b',1,'ucl_aes_cbc_mac_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen): ucl_aes_cbc_mac.c'],['../group___u_c_l___c_b_c___m_a_c___a_e_s.html#gab4d690c0e96f9269c9690d29b073b39b',1,'ucl_aes_cbc_mac_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen): ucl_aes_cbc_mac.c']]], - ['ucl_5faes_5fctx',['ucl_aes_ctx',['../group___u_c_l___a_e_s.html#structucl__aes__ctx',1,'']]], - ['ucl_5faes_5fctx_5ft',['ucl_aes_ctx_t',['../group___u_c_l___a_e_s.html#gab49854e959226d949142ab560efa6562',1,'ucl_aes.h']]], - ['ucl_5faes_5fecb',['ucl_aes_ecb',['../group___u_c_l___e_c_b___a_e_s.html#gad9fe1f7dec60092620c1c56d68df2114',1,'ucl_aes_ecb(u8 *dst, u8 *src, u32 len, u8 *key, u32 keylen, int mode): ucl_aes_ecb.c'],['../group___u_c_l___e_c_b___a_e_s.html#gad9fe1f7dec60092620c1c56d68df2114',1,'ucl_aes_ecb(u8 *dst, u8 *src, u32 len, u8 *key, u32 keylen, int mode): ucl_aes_ecb.c']]], - ['ucl_5faes_5fecb_2eh',['ucl_aes_ecb.h',['../ucl__aes__ecb_8h.html',1,'']]], - ['ucl_5faes_5fecb_5fcore',['ucl_aes_ecb_core',['../group___u_c_l___e_c_b___a_e_s.html#gabbcb6dc16e7894dce3b91b36ca9711a6',1,'ucl_aes_ecb_core(u8 *dst, ucl_aes_ctx_t *ctx, u8 *src, u32 len): ucl_aes_ecb.c'],['../group___u_c_l___e_c_b___a_e_s.html#gabbcb6dc16e7894dce3b91b36ca9711a6',1,'ucl_aes_ecb_core(u8 *dst, ucl_aes_ctx_t *ctx, u8 *src, u32 len): ucl_aes_ecb.c']]], - ['ucl_5faes_5fecb_5fcore_5fcontext',['ucl_aes_ecb_core_context',['../group___u_c_l___e_c_b___a_e_s.html#gaf86a70d9ba434fe118194c935cdbd07e',1,'ucl_aes_ecb.h']]], - ['ucl_5faes_5fecb_5ffinish',['ucl_aes_ecb_finish',['../group___u_c_l___e_c_b___a_e_s.html#gac92b0fb4dae5ad23a44fdb6eb93a06ad',1,'ucl_aes_ecb_finish(ucl_aes_ctx_t *ctx): ucl_aes_ecb.c'],['../group___u_c_l___e_c_b___a_e_s.html#gac92b0fb4dae5ad23a44fdb6eb93a06ad',1,'ucl_aes_ecb_finish(ucl_aes_ctx_t *ctx): ucl_aes_ecb.c']]], - ['ucl_5faes_5fecb_5finit',['ucl_aes_ecb_init',['../group___u_c_l___e_c_b___a_e_s.html#gac32c7351243e9e6e697fd165ded87676',1,'ucl_aes_ecb_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen, int mode): ucl_aes_ecb.c'],['../group___u_c_l___e_c_b___a_e_s.html#gac32c7351243e9e6e697fd165ded87676',1,'ucl_aes_ecb_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen, int mode): ucl_aes_ecb.c']]], - ['ucl_5faes_5fkey',['ucl_aes_key',['../group___u_c_l___a_e_s.html#structucl__aes__key',1,'']]], - ['ucl_5faes_5fkey_5ft',['ucl_aes_key_t',['../group___u_c_l___a_e_s.html#ga00eb543c76b8f53bfd6c6cc7e3938531',1,'ucl_aes.h']]], - ['ucl_5faes_5fkeylen_5f128',['UCL_AES_KEYLEN_128',['../group___u_c_l___a_e_s.html#ga09c845d71146b51b5340c442b0b2f727',1,'ucl_aes.h']]], - ['ucl_5faes_5fkeylen_5f192',['UCL_AES_KEYLEN_192',['../group___u_c_l___a_e_s.html#gac5053cbf798f08366096d1a8fe9a2deb',1,'ucl_aes.h']]], - ['ucl_5faes_5fkeylen_5f256',['UCL_AES_KEYLEN_256',['../group___u_c_l___a_e_s.html#ga3a653f838c8d2099e42bb0ce6682f113',1,'ucl_aes.h']]], - ['ucl_5faes_5fmaxnr',['UCL_AES_MAXNR',['../group___u_c_l___a_e_s.html#ga94efba7ac0d902798e5a1ff718acefca',1,'ucl_aes.h']]], - ['ucl_5fcarry',['UCL_CARRY',['../group___u_c_l___r_e_t_u_r_n.html#ga0dce5f26cc3acf0bcca51853edc2b10f',1,'ucl_retdefs.h']]], - ['ucl_5fdivision_5fby_5fzero',['UCL_DIVISION_BY_ZERO',['../group___u_c_l___r_e_t_u_r_n.html#gafc7aaea99d505ed3f41233839c2cb931',1,'ucl_retdefs.h']]], - ['ucl_5fecc_5finvalid_5fkey',['UCL_ECC_INVALID_KEY',['../group___u_c_l___r_e_t_u_r_n.html#gae119e5730135c867480f836a9c784583',1,'ucl_retdefs.h']]], - ['ucl_5fecdsa_5fsignature',['ucl_ecdsa_signature',['../group___u_c_l___e_c_d_s_a.html#gace8124cbf9731b7c288ed4cae4d1b820',1,'ucl_ecdsa_signature(ucl_type_ecdsa_signature signature, u8 *d, int(*ucl_hash)(u8 *, u8 *, u32), u8 *input, u32 inputlength, ucl_type_curve *curve_params, u32 configuration): ecdsa_high.c'],['../group___u_c_l___e_c_d_s_a.html#gace8124cbf9731b7c288ed4cae4d1b820',1,'ucl_ecdsa_signature(ucl_type_ecdsa_signature signature, u8 *d, int(*ucl_hash)(u8 *, u8 *, u32), u8 *input, u32 inputlength, ucl_type_curve *curve_params, u32 configuration): ecdsa_high.c']]], - ['ucl_5fecdsa_5fverification',['ucl_ecdsa_verification',['../group___u_c_l___e_c_d_s_a.html#gac187a283b120b205429ecbec6a751bfa',1,'ucl_ecdsa_verification(ucl_type_ecc_u8_affine_point Q, ucl_type_ecdsa_signature signature, int(*ucl_hash)(u8 *, u8 *, u32), u8 *input, u32 inputlength, ucl_type_curve *curve_params, u32 configuration): ecdsa_high.c'],['../group___u_c_l___e_c_d_s_a.html#gac187a283b120b205429ecbec6a751bfa',1,'ucl_ecdsa_verification(ucl_type_ecc_u8_affine_point Q, ucl_type_ecdsa_signature signature, int(*ucl_hash)(u8 *, u8 *, u32), u8 *input, u32 inputlength, ucl_type_curve *curve_params, u32 configuration): ecdsa_high.c']]], - ['ucl_5ferror',['UCL_ERROR',['../group___u_c_l___r_e_t_u_r_n.html#gafd05d0634dc32843163713aaed20563a',1,'ucl_retdefs.h']]], - ['ucl_5ffalse',['UCL_FALSE',['../group___u_c_l___r_e_t_u_r_n.html#gad3a862f5f0e7cc34da71225a3438530e',1,'ucl_retdefs.h']]], - ['ucl_5ffunction_5fdisabled',['UCL_FUNCTION_DISABLED',['../group___u_c_l___r_e_t_u_r_n.html#ga9027ff13a3693edb80f434637854b404',1,'ucl_retdefs.h']]], - ['ucl_5finteger_5fnot_5fodd',['UCL_INTEGER_NOT_ODD',['../group___u_c_l___r_e_t_u_r_n.html#ga363dbaa89915c7ec570e0746dd6db266',1,'ucl_retdefs.h']]], - ['ucl_5finvalid_5farg',['UCL_INVALID_ARG',['../group___u_c_l___r_e_t_u_r_n.html#ga5e4b3a2e5cbcf09c2486f2e9d793a47b',1,'ucl_retdefs.h']]], - ['ucl_5finvalid_5fcipher',['UCL_INVALID_CIPHER',['../group___u_c_l___r_e_t_u_r_n.html#ga4b7d4436f37b1e54815006bde457cb63',1,'ucl_retdefs.h']]], - ['ucl_5finvalid_5fhash',['UCL_INVALID_HASH',['../group___u_c_l___r_e_t_u_r_n.html#ga6d7e5e9335ae078f64082b7f5b2ccb82',1,'ucl_retdefs.h']]], - ['ucl_5finvalid_5finput',['UCL_INVALID_INPUT',['../group___u_c_l___r_e_t_u_r_n.html#ga0ce984d38effddf33eb42be5ff3d87cf',1,'ucl_retdefs.h']]], - ['ucl_5finvalid_5fmode',['UCL_INVALID_MODE',['../group___u_c_l___r_e_t_u_r_n.html#ga41639862646f715bfb747cfe7398e705',1,'ucl_retdefs.h']]], - ['ucl_5finvalid_5foutput',['UCL_INVALID_OUTPUT',['../group___u_c_l___r_e_t_u_r_n.html#ga3ed78d658471831fff1612d8d0affb88',1,'ucl_retdefs.h']]], - ['ucl_5finvalid_5fprecision',['UCL_INVALID_PRECISION',['../group___u_c_l___r_e_t_u_r_n.html#ga479c5977db40ae908b259d1cce536799',1,'ucl_retdefs.h']]], - ['ucl_5finvalid_5frsacrtaltkey',['UCL_INVALID_RSACRTALTKEY',['../group___u_c_l___r_e_t_u_r_n.html#ga3c5a146ccf18ee15393bb322f3e042f1',1,'ucl_retdefs.h']]], - ['ucl_5finvalid_5frsacrtkey',['UCL_INVALID_RSACRTKEY',['../group___u_c_l___r_e_t_u_r_n.html#ga5a8beb9fe66b842483769e5a6b6dc670',1,'ucl_retdefs.h']]], - ['ucl_5finvalid_5frsaprivkey',['UCL_INVALID_RSAPRIVKEY',['../group___u_c_l___r_e_t_u_r_n.html#gae81f80c201b44b56e74b9598386addb5',1,'ucl_retdefs.h']]], - ['ucl_5finvalid_5frsapubkey',['UCL_INVALID_RSAPUBKEY',['../group___u_c_l___r_e_t_u_r_n.html#gaa1a3bbddfcb4ad0e43e1f6cf15cde9ab',1,'ucl_retdefs.h']]], - ['ucl_5finvalid_5fsign',['UCL_INVALID_SIGN',['../group___u_c_l___r_e_t_u_r_n.html#gad3450e5a68b37eef1ce2d44e36d390b5',1,'ucl_retdefs.h']]], - ['ucl_5fno_5ftrng_5finterface',['UCL_NO_TRNG_INTERFACE',['../group___u_c_l___r_e_t_u_r_n.html#ga668c018da9085eb011e87324b5c544bd',1,'ucl_retdefs.h']]], - ['ucl_5fno_5fuaes_5finterface',['UCL_NO_UAES_INTERFACE',['../group___u_c_l___r_e_t_u_r_n.html#ga53588dab763f3da734c38514d2936f1d',1,'ucl_retdefs.h']]], - ['ucl_5fnop',['UCL_NOP',['../group___u_c_l___r_e_t_u_r_n.html#ga6ffb73da20c781dcb7f3004102c93aec',1,'ucl_retdefs.h']]], - ['ucl_5fnot_5fimplemented',['UCL_NOT_IMPLEMENTED',['../group___u_c_l___r_e_t_u_r_n.html#ga9a88a169ed70729e2b529a2ddfdad426',1,'ucl_retdefs.h']]], - ['ucl_5fnot_5finit',['UCL_NOT_INIT',['../group___u_c_l___r_e_t_u_r_n.html#ga8a9136da1288e350a5ec6eed18678631',1,'ucl_retdefs.h']]], - ['ucl_5fok',['UCL_OK',['../group___u_c_l___r_e_t_u_r_n.html#gaf4aeb5212f5aa1b3a12b3dea7eb1785d',1,'ucl_retdefs.h']]], - ['ucl_5foverflow',['UCL_OVERFLOW',['../group___u_c_l___r_e_t_u_r_n.html#gae4f4dea3ec4f9172974dc1158ba71b38',1,'ucl_retdefs.h']]], - ['ucl_5fpkcs1_5finvalid_5fsignature',['UCL_PKCS1_INVALID_SIGNATURE',['../group___u_c_l___r_e_t_u_r_n.html#gad99461b3bf6574c766b074bc99f1c501',1,'ucl_retdefs.h']]], - ['ucl_5fretdefs_2eh',['ucl_retdefs.h',['../ucl__retdefs_8h.html',1,'']]], - ['ucl_5frng_5ferror',['UCL_RNG_ERROR',['../group___u_c_l___r_e_t_u_r_n.html#gaf2ca12b46ed9910d0fd6c70684139269',1,'ucl_retdefs.h']]], - ['ucl_5frngtimeout',['UCL_RNGTIMEOUT',['../group___u_c_l___r_e_t_u_r_n.html#gab2e9fd4ffe6baddb05940f713925987d',1,'ucl_retdefs.h']]], - ['ucl_5frsa_5finvalid_5fexponant',['UCL_RSA_INVALID_EXPONANT',['../group___u_c_l___r_e_t_u_r_n.html#ga7d4404cb6bde42e7db505a2d5a743e44',1,'ucl_retdefs.h']]], - ['ucl_5frsa_5finvalid_5finput',['UCL_RSA_INVALID_INPUT',['../group___u_c_l___r_e_t_u_r_n.html#ga414889da044b1fb5b75bddbbcaa5c1db',1,'ucl_retdefs.h']]], - ['ucl_5frsacrt_5ferror',['UCL_RSACRT_ERROR',['../group___u_c_l___r_e_t_u_r_n.html#ga4dc44a3e019d63cdc495c3bd16db6896',1,'ucl_retdefs.h']]], - ['ucl_5frsapkcs1_5fdecrypterr',['UCL_RSAPKCS1_DECRYPTERR',['../group___u_c_l___r_e_t_u_r_n.html#ga25d316534793eaa2df377427d259ac84',1,'ucl_retdefs.h']]], - ['ucl_5fsha256',['UCL_SHA256',['../group___u_c_l___s_h_a256.html#gab6ec8de620f9a15ec4c53d60464763d1',1,'UCL_SHA256(): ucl_sha256.h'],['../group___u_c_l___s_h_a256.html#gafa8e11a759d3858139a7db28b537dcc9',1,'ucl_sha256(u8 *hash, u8 *data, u32 data_byteLen): ucl_sha256.h']]], - ['ucl_5fsha256_2eh',['ucl_sha256.h',['../ucl__sha256_8h.html',1,'']]], - ['ucl_5fsha256_5fblocksize',['UCL_SHA256_BLOCKSIZE',['../group___u_c_l___s_h_a256.html#gaec576f8375b96f1db752b280ce6949af',1,'ucl_sha256.h']]], - ['ucl_5fsha256_5fcore',['ucl_sha256_core',['../group___u_c_l___s_h_a256.html#ga494da449128e998294c2b5905511c163',1,'ucl_sha256.h']]], - ['ucl_5fsha256_5fctx',['ucl_sha256_ctx',['../group___u_c_l___s_h_a256.html#structucl__sha256__ctx',1,'']]], - ['ucl_5fsha256_5fctx_5ft',['ucl_sha256_ctx_t',['../group___u_c_l___s_h_a256.html#gace18734c81234bf40e163aae1f483ce0',1,'ucl_sha256.h']]], - ['ucl_5fsha256_5ffinish',['ucl_sha256_finish',['../group___u_c_l___s_h_a256.html#gaf1200b92fbe165e52194e8577d7ee85c',1,'ucl_sha256.h']]], - ['ucl_5fsha256_5fhashw32size',['UCL_SHA256_HASHW32SIZE',['../group___u_c_l___s_h_a256.html#gada30486af12f4e700193c549fdb0b93d',1,'ucl_sha256.h']]], - ['ucl_5fsha256_5finit',['ucl_sha256_init',['../group___u_c_l___s_h_a256.html#ga5e9587be893fe9e2b752de35a273fe15',1,'ucl_sha256.h']]], - ['ucl_5fsha3_2eh',['ucl_sha3.h',['../ucl__sha3_8h.html',1,'']]], - ['ucl_5fsha384',['ucl_sha384',['../group___u_c_l___s_h_a384.html#ga630a98bbdb55234b5ca378f2a8c9e164',1,'ucl_sha384(u8 *hash, u8 *data, u32 data_byteLen): ucl_sha384.h'],['../group___u_c_l___s_h_a384.html#gaec38275b5e1e9a88bf7564efa2e4e784',1,'UCL_SHA384(): ucl_sha384.h']]], - ['ucl_5fsha384_2eh',['ucl_sha384.h',['../ucl__sha384_8h.html',1,'']]], - ['ucl_5fsha384_5fblocksize',['UCL_SHA384_BLOCKSIZE',['../group___u_c_l___s_h_a384.html#ga9747ca77faa8145ff0edb5df5ad277d0',1,'ucl_sha384.h']]], - ['ucl_5fsha384_5fcore',['ucl_sha384_core',['../group___u_c_l___s_h_a384.html#gaf0b18f108e3d4a187d01b37b3f220611',1,'ucl_sha384.h']]], - ['ucl_5fsha384_5fctx_5ft',['ucl_sha384_ctx_t',['../group___u_c_l___s_h_a384.html#ga5c067da1ec333aadb9c3077d09360e2f',1,'ucl_sha384.h']]], - ['ucl_5fsha384_5ffinish',['ucl_sha384_finish',['../group___u_c_l___s_h_a384.html#ga87fbdf4cc01f052611fb77fd3f80ea57',1,'ucl_sha384.h']]], - ['ucl_5fsha384_5fhashsize',['UCL_SHA384_HASHSIZE',['../group___u_c_l___s_h_a384.html#ga22894402b76aefa75e458457fd3e9751',1,'ucl_sha384.h']]], - ['ucl_5fsha384_5finit',['ucl_sha384_init',['../group___u_c_l___s_h_a384.html#gaa907d9876ac35e7eb8665dc360c07086',1,'ucl_sha384.h']]], - ['ucl_5fsha3_5f224',['ucl_sha3_224',['../group___u_c_l___s_h_a3.html#ga91decb6429959db936f5d31358bac92d',1,'ucl_sha3.h']]], - ['ucl_5fsha3_5f224_5finit',['ucl_sha3_224_init',['../group___u_c_l___s_h_a3.html#ga358ee08ff7de1d17b033e0ec2351fada',1,'ucl_sha3.h']]], - ['ucl_5fsha3_5f256',['ucl_sha3_256',['../group___u_c_l___s_h_a3.html#ga57ef75422f5cffd9516b5a9edd59ad85',1,'ucl_sha3.h']]], - ['ucl_5fsha3_5f256_5finit',['ucl_sha3_256_init',['../group___u_c_l___s_h_a3.html#gabb0a1b344e954de28fb5c0a562706f07',1,'ucl_sha3.h']]], - ['ucl_5fsha3_5f384',['ucl_sha3_384',['../group___u_c_l___s_h_a3.html#ga53dc3bf85e3ebc3168d7004927b52642',1,'ucl_sha3.h']]], - ['ucl_5fsha3_5f384_5finit',['ucl_sha3_384_init',['../group___u_c_l___s_h_a3.html#ga1bea25526b65e2c8bc646846f8d219ff',1,'ucl_sha3.h']]], - ['ucl_5fsha3_5f512',['ucl_sha3_512',['../group___u_c_l___s_h_a3.html#gac99c4c96792df0753ef2ba34729c9cdf',1,'ucl_sha3.h']]], - ['ucl_5fsha3_5f512_5finit',['ucl_sha3_512_init',['../group___u_c_l___s_h_a3.html#ga7f6a3112d532a603dafebf08d758a515',1,'ucl_sha3.h']]], - ['ucl_5fsha3_5fcore',['ucl_sha3_core',['../group___u_c_l___s_h_a3.html#ga3ce42b7e2f7fcd7f97191ea960d7f4a1',1,'ucl_sha3.h']]], - ['ucl_5fsha3_5ffinish',['ucl_sha3_finish',['../group___u_c_l___s_h_a3.html#gaa931f4b000207f2d533c9e84a4184e56',1,'ucl_sha3.h']]], - ['ucl_5fsha512',['UCL_SHA512',['../group___u_c_l___s_h_a512.html#ga5c44138784a2c7db1adf78b433804292',1,'UCL_SHA512(): ucl_sha512.h'],['../group___u_c_l___s_h_a512.html#gabb3457cd8bca9dec7c0b1df798c89697',1,'ucl_sha512(u8 *hash, u8 *data, u32 data_byteLen): ucl_sha512.h']]], - ['ucl_5fsha512_2eh',['ucl_sha512.h',['../ucl__sha512_8h.html',1,'']]], - ['ucl_5fsha512_5fblocksize',['UCL_SHA512_BLOCKSIZE',['../group___u_c_l___s_h_a512.html#ga750e386266c4b137168664e53e3baebd',1,'ucl_sha512.h']]], - ['ucl_5fsha512_5fcore',['ucl_sha512_core',['../group___u_c_l___s_h_a512.html#ga7c152d2906d1be49beb27ac6260fc081',1,'ucl_sha512.h']]], - ['ucl_5fsha512_5fctx',['ucl_sha512_ctx',['../group___u_c_l___s_h_a512.html#structucl__sha512__ctx',1,'']]], - ['ucl_5fsha512_5fctx_5ft',['ucl_sha512_ctx_t',['../group___u_c_l___s_h_a512.html#ga5b0566974e6cba33aee12f5aebc12117',1,'ucl_sha512.h']]], - ['ucl_5fsha512_5ffinish',['ucl_sha512_finish',['../group___u_c_l___s_h_a512.html#gacc631a408fe8618a75a37051cacc3c56',1,'ucl_sha512.h']]], - ['ucl_5fsha512_5fhashw32size',['UCL_SHA512_HASHW32SIZE',['../group___u_c_l___s_h_a512.html#ga0215ae73b86b99bcddc9b3315f280f3d',1,'ucl_sha512.h']]], - ['ucl_5fsha512_5finit',['ucl_sha512_init',['../group___u_c_l___s_h_a512.html#gab1a52948b4c1a1de69c9f6db572aa553',1,'ucl_sha512.h']]], - ['ucl_5fsia256',['ucl_sia256',['../group___u_c_l___s_i_a256.html#gad50391bbde94fe6c9f9bdf151f294ac5',1,'ucl_sia256(u8 *hash, u8 *data, u32 data_byteLen): ucl_sia256.h'],['../group___u_c_l___s_i_a256.html#gaea9532ac144a90f3ee34ae129ed68282',1,'UCL_SIA256(): ucl_sia256.h']]], - ['ucl_5fsia256_2eh',['ucl_sia256.h',['../ucl__sia256_8h.html',1,'']]], - ['ucl_5fsia256_5fblocksize',['UCL_SIA256_BLOCKSIZE',['../group___u_c_l___s_i_a256.html#ga34283058845b7379a0d481372e2ad4d9',1,'ucl_sia256.h']]], - ['ucl_5fsia256_5fcore',['ucl_sia256_core',['../group___u_c_l___s_i_a256.html#ga1a9ce20b83ba89514be822203d40f910',1,'ucl_sia256.h']]], - ['ucl_5fsia256_5fctx',['ucl_sia256_ctx',['../group___u_c_l___s_i_a256.html#structucl__sia256__ctx',1,'']]], - ['ucl_5fsia256_5fctx_5ft',['ucl_sia256_ctx_t',['../group___u_c_l___s_i_a256.html#ga17e23ec55cac2194659d2b08c2a3f4ca',1,'ucl_sia256.h']]], - ['ucl_5fsia256_5ffinish',['ucl_sia256_finish',['../group___u_c_l___s_i_a256.html#ga6cfa7bc32424e676a7d665470e832242',1,'ucl_sia256.h']]], - ['ucl_5fsia256_5fhashw32size',['UCL_SIA256_HASHW32SIZE',['../group___u_c_l___s_i_a256.html#gafaca6ff0632649a744923a29c7d197f1',1,'ucl_sia256.h']]], - ['ucl_5fsia256_5finit',['ucl_sia256_init',['../group___u_c_l___s_i_a256.html#ga2037616824d3d32416aa642c30499576',1,'ucl_sia256.h']]], - ['ucl_5fstack_5fdefault',['UCL_STACK_DEFAULT',['../group___u_c_l___r_e_t_u_r_n.html#gaa1cd90433b369b79056ecaaf7061f6ad',1,'ucl_retdefs.h']]], - ['ucl_5fstack_5ferror',['UCL_STACK_ERROR',['../group___u_c_l___r_e_t_u_r_n.html#ga7e7f411c20b460de9d77ac3612f21112',1,'ucl_retdefs.h']]], - ['ucl_5fstack_5finvalid_5ffree',['UCL_STACK_INVALID_FREE',['../group___u_c_l___r_e_t_u_r_n.html#gaed949439b5c3cd443b511320c649d43e',1,'ucl_retdefs.h']]], - ['ucl_5fstack_5fnot_5finit',['UCL_STACK_NOT_INIT',['../group___u_c_l___r_e_t_u_r_n.html#ga2346c721ea6b4512d78a6ab6111f86a2',1,'ucl_retdefs.h']]], - ['ucl_5fstack_5foverflow',['UCL_STACK_OVERFLOW',['../group___u_c_l___r_e_t_u_r_n.html#ga67bcb682a8d0dfd2bcc2f8f632757901',1,'ucl_retdefs.h']]], - ['ucl_5ftrng_5fcorrupted',['UCL_TRNG_CORRUPTED',['../group___u_c_l___r_e_t_u_r_n.html#gaa0a103590fcf2d1ab7435c0a065ab7c0',1,'ucl_retdefs.h']]], - ['ucl_5ftrng_5ferror',['UCL_TRNG_ERROR',['../group___u_c_l___r_e_t_u_r_n.html#gabfb30f7a53ff4e919deefe774bfd3e1f',1,'ucl_retdefs.h']]], - ['ucl_5ftrue',['UCL_TRUE',['../group___u_c_l___r_e_t_u_r_n.html#ga4498f15eb17d0532d8c3d1db72502f09',1,'ucl_retdefs.h']]], - ['ucl_5ftype_5fcurve',['ucl_type_curve',['../group___u_c_l___e_c_d_s_a.html#gafefd0c9e096ca1a9148fe513be73af23',1,'ecdsa_generic_api.h']]], - ['ucl_5ftype_5fecc_5fdigit_5faffine_5fpoint',['ucl_type_ecc_digit_affine_point',['../group___u_c_l___e_c_d_s_a.html#ga08934efc0b48378804e00430ff11f4a7',1,'ecdsa_generic_api.h']]], - ['ucl_5ftype_5fecc_5fjacobian_5fpoint',['ucl_type_ecc_jacobian_point',['../group___u_c_l___e_c_d_s_a.html#gaa417ba00b36868b82a7cbe3edb943ffe',1,'ecdsa_generic_api.h']]], - ['ucl_5ftype_5fecc_5fu8_5faffine_5fpoint',['ucl_type_ecc_u8_affine_point',['../group___u_c_l___e_c_d_s_a.html#ga567c0790d0088f9a22a8cbfd41e859b2',1,'ecdsa_generic_api.h']]], - ['ucl_5ftype_5fecdsa_5fsignature',['ucl_type_ecdsa_signature',['../group___u_c_l___e_c_d_s_a.html#ga699c157c3a5957466adf196159126388',1,'ecdsa_generic_api.h']]], - ['ucl_5fuaes_5fcorrupted',['UCL_UAES_CORRUPTED',['../group___u_c_l___r_e_t_u_r_n.html#gaba7ba8db070222df831530fc3e812776',1,'ucl_retdefs.h']]], - ['ucl_5fuaes_5ferror',['UCL_UAES_ERROR',['../group___u_c_l___r_e_t_u_r_n.html#ga2bc1728bb7048231ec416e9b5abeaa11',1,'ucl_retdefs.h']]], - ['ucl_5fwarning',['UCL_WARNING',['../group___u_c_l___r_e_t_u_r_n.html#ga7ad179c2a68343f3c8275ae412688a6d',1,'ucl_retdefs.h']]] + ['ucl_5faes', ['ucl_aes', ['../group___u_c_l___a_e_s.html#gaca29dee32202c46c6cf538d87fee1774', 1, 'ucl_aes(u8 *dst, u8 *src, u8 *key, u32 keylen, int mode): ucl_aes.c'], ['../group___u_c_l___a_e_s.html#gaca29dee32202c46c6cf538d87fee1774', 1, 'ucl_aes(u8 *dst, u8 *src, u8 *key, u32 keylen, int mode): ucl_aes.c']]], + ['ucl_5faes_2eh', ['ucl_aes.h', ['../ucl__aes_8h.html', 1, '']]], + ['ucl_5faes_5fblocksize', ['UCL_AES_BLOCKSIZE', ['../group___u_c_l___a_e_s.html#ga5e685d938501540d687d1f0178942c7a', 1, 'ucl_aes.h']]], + ['ucl_5faes_5fcbc', ['ucl_aes_cbc', ['../group___u_c_l___c_b_c___a_e_s.html#ga268461124bf0e0102f14e5c064184e06', 1, 'ucl_aes_cbc(u8 *dst, u8 *src, u32 len, u8 *key, u32 keylen, u8 *IV, int mode): ucl_aes_cbc.c'], ['../group___u_c_l___c_b_c___a_e_s.html#ga268461124bf0e0102f14e5c064184e06', 1, 'ucl_aes_cbc(u8 *dst, u8 *src, u32 len, u8 *key, u32 keylen, u8 *IV, int mode): ucl_aes_cbc.c']]], + ['ucl_5faes_5fcbc_2eh', ['ucl_aes_cbc.h', ['../ucl__aes__cbc_8h.html', 1, '']]], + ['ucl_5faes_5fcbc_5fcore', ['ucl_aes_cbc_core', ['../group___u_c_l___c_b_c___a_e_s.html#ga657edde9f5ef7592530feef5489e5c88', 1, 'ucl_aes_cbc_core(u8 *dst, ucl_aes_ctx_t *ctx, u8 *src, u32 len): ucl_aes_cbc.c'], ['../group___u_c_l___c_b_c___a_e_s.html#ga657edde9f5ef7592530feef5489e5c88', 1, 'ucl_aes_cbc_core(u8 *dst, ucl_aes_ctx_t *ctx, u8 *src, u32 len): ucl_aes_cbc.c']]], + ['ucl_5faes_5fcbc_5fcore_5fcontext', ['ucl_aes_cbc_core_context', ['../group___u_c_l___c_b_c___a_e_s.html#ga7b2a1fe6b5daac0396a5bdbca4008d9b', 1, 'ucl_aes_cbc.h']]], + ['ucl_5faes_5fcbc_5finit', ['ucl_aes_cbc_init', ['../group___u_c_l___c_b_c___a_e_s.html#ga82c276c9fdc7109848e125730dc10ba1', 1, 'ucl_aes_cbc_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen, u8 *IV, int mode): ucl_aes_cbc.c'], ['../group___u_c_l___c_b_c___a_e_s.html#ga82c276c9fdc7109848e125730dc10ba1', 1, 'ucl_aes_cbc_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen, u8 *IV, int mode): ucl_aes_cbc.c']]], + ['ucl_5faes_5fcbc_5fmac', ['ucl_aes_cbc_mac', ['../group___u_c_l___c_b_c___m_a_c___a_e_s.html#ga54454aeade80c750a2124bdc7c977e09', 1, 'ucl_aes_cbc_mac(u8 *tmac, u8 tmac_byteLen, u8 *src, u32 len, u8 *key, u32 keylen): ucl_aes_cbc_mac.c'], ['../group___u_c_l___c_b_c___m_a_c___a_e_s.html#ga54454aeade80c750a2124bdc7c977e09', 1, 'ucl_aes_cbc_mac(u8 *tmac, u8 tmac_byteLen, u8 *src, u32 len, u8 *key, u32 keylen): ucl_aes_cbc_mac.c']]], + ['ucl_5faes_5fcbc_5fmac_2eh', ['ucl_aes_cbc_mac.h', ['../ucl__aes__cbc__mac_8h.html', 1, '']]], + ['ucl_5faes_5fcbc_5fmac_5fcore', ['ucl_aes_cbc_mac_core', ['../group___u_c_l___c_b_c___m_a_c___a_e_s.html#gaffbd37974cae88d13a2d273bb705895f', 1, 'ucl_aes_cbc_mac_core(ucl_aes_ctx_t *ctx, u8 *src, u32 len): ucl_aes_cbc_mac.c'], ['../group___u_c_l___c_b_c___m_a_c___a_e_s.html#gaffbd37974cae88d13a2d273bb705895f', 1, 'ucl_aes_cbc_mac_core(ucl_aes_ctx_t *ctx, u8 *src, u32 len): ucl_aes_cbc_mac.c']]], + ['ucl_5faes_5fcbc_5fmac_5ffinish', ['ucl_aes_cbc_mac_finish', ['../ucl__aes__cbc__mac_8h.html#a031d1443c3f8b50e15f07cd567ff02ff', 1, 'ucl_aes_cbc_mac.c']]], + ['ucl_5faes_5fcbc_5fmac_5finit', ['ucl_aes_cbc_mac_init', ['../group___u_c_l___c_b_c___m_a_c___a_e_s.html#gab4d690c0e96f9269c9690d29b073b39b', 1, 'ucl_aes_cbc_mac_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen): ucl_aes_cbc_mac.c'], ['../group___u_c_l___c_b_c___m_a_c___a_e_s.html#gab4d690c0e96f9269c9690d29b073b39b', 1, 'ucl_aes_cbc_mac_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen): ucl_aes_cbc_mac.c']]], + ['ucl_5faes_5fctx', ['ucl_aes_ctx', ['../group___u_c_l___a_e_s.html#structucl__aes__ctx', 1, '']]], + ['ucl_5faes_5fctx_5ft', ['ucl_aes_ctx_t', ['../group___u_c_l___a_e_s.html#gab49854e959226d949142ab560efa6562', 1, 'ucl_aes.h']]], + ['ucl_5faes_5fecb', ['ucl_aes_ecb', ['../group___u_c_l___e_c_b___a_e_s.html#gad9fe1f7dec60092620c1c56d68df2114', 1, 'ucl_aes_ecb(u8 *dst, u8 *src, u32 len, u8 *key, u32 keylen, int mode): ucl_aes_ecb.c'], ['../group___u_c_l___e_c_b___a_e_s.html#gad9fe1f7dec60092620c1c56d68df2114', 1, 'ucl_aes_ecb(u8 *dst, u8 *src, u32 len, u8 *key, u32 keylen, int mode): ucl_aes_ecb.c']]], + ['ucl_5faes_5fecb_2eh', ['ucl_aes_ecb.h', ['../ucl__aes__ecb_8h.html', 1, '']]], + ['ucl_5faes_5fecb_5fcore', ['ucl_aes_ecb_core', ['../group___u_c_l___e_c_b___a_e_s.html#gabbcb6dc16e7894dce3b91b36ca9711a6', 1, 'ucl_aes_ecb_core(u8 *dst, ucl_aes_ctx_t *ctx, u8 *src, u32 len): ucl_aes_ecb.c'], ['../group___u_c_l___e_c_b___a_e_s.html#gabbcb6dc16e7894dce3b91b36ca9711a6', 1, 'ucl_aes_ecb_core(u8 *dst, ucl_aes_ctx_t *ctx, u8 *src, u32 len): ucl_aes_ecb.c']]], + ['ucl_5faes_5fecb_5fcore_5fcontext', ['ucl_aes_ecb_core_context', ['../group___u_c_l___e_c_b___a_e_s.html#gaf86a70d9ba434fe118194c935cdbd07e', 1, 'ucl_aes_ecb.h']]], + ['ucl_5faes_5fecb_5ffinish', ['ucl_aes_ecb_finish', ['../group___u_c_l___e_c_b___a_e_s.html#gac92b0fb4dae5ad23a44fdb6eb93a06ad', 1, 'ucl_aes_ecb_finish(ucl_aes_ctx_t *ctx): ucl_aes_ecb.c'], ['../group___u_c_l___e_c_b___a_e_s.html#gac92b0fb4dae5ad23a44fdb6eb93a06ad', 1, 'ucl_aes_ecb_finish(ucl_aes_ctx_t *ctx): ucl_aes_ecb.c']]], + ['ucl_5faes_5fecb_5finit', ['ucl_aes_ecb_init', ['../group___u_c_l___e_c_b___a_e_s.html#gac32c7351243e9e6e697fd165ded87676', 1, 'ucl_aes_ecb_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen, int mode): ucl_aes_ecb.c'], ['../group___u_c_l___e_c_b___a_e_s.html#gac32c7351243e9e6e697fd165ded87676', 1, 'ucl_aes_ecb_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen, int mode): ucl_aes_ecb.c']]], + ['ucl_5faes_5fkey', ['ucl_aes_key', ['../group___u_c_l___a_e_s.html#structucl__aes__key', 1, '']]], + ['ucl_5faes_5fkey_5ft', ['ucl_aes_key_t', ['../group___u_c_l___a_e_s.html#ga00eb543c76b8f53bfd6c6cc7e3938531', 1, 'ucl_aes.h']]], + ['ucl_5faes_5fkeylen_5f128', ['UCL_AES_KEYLEN_128', ['../group___u_c_l___a_e_s.html#ga09c845d71146b51b5340c442b0b2f727', 1, 'ucl_aes.h']]], + ['ucl_5faes_5fkeylen_5f192', ['UCL_AES_KEYLEN_192', ['../group___u_c_l___a_e_s.html#gac5053cbf798f08366096d1a8fe9a2deb', 1, 'ucl_aes.h']]], + ['ucl_5faes_5fkeylen_5f256', ['UCL_AES_KEYLEN_256', ['../group___u_c_l___a_e_s.html#ga3a653f838c8d2099e42bb0ce6682f113', 1, 'ucl_aes.h']]], + ['ucl_5faes_5fmaxnr', ['UCL_AES_MAXNR', ['../group___u_c_l___a_e_s.html#ga94efba7ac0d902798e5a1ff718acefca', 1, 'ucl_aes.h']]], + ['ucl_5fcarry', ['UCL_CARRY', ['../group___u_c_l___r_e_t_u_r_n.html#ga0dce5f26cc3acf0bcca51853edc2b10f', 1, 'ucl_retdefs.h']]], + ['ucl_5fdivision_5fby_5fzero', ['UCL_DIVISION_BY_ZERO', ['../group___u_c_l___r_e_t_u_r_n.html#gafc7aaea99d505ed3f41233839c2cb931', 1, 'ucl_retdefs.h']]], + ['ucl_5fecc_5finvalid_5fkey', ['UCL_ECC_INVALID_KEY', ['../group___u_c_l___r_e_t_u_r_n.html#gae119e5730135c867480f836a9c784583', 1, 'ucl_retdefs.h']]], + ['ucl_5fecdsa_5fsignature', ['ucl_ecdsa_signature', ['../group___u_c_l___e_c_d_s_a.html#gace8124cbf9731b7c288ed4cae4d1b820', 1, 'ucl_ecdsa_signature(ucl_type_ecdsa_signature signature, u8 *d, int(*ucl_hash)(u8 *, u8 *, u32), u8 *input, u32 inputlength, ucl_type_curve *curve_params, u32 configuration): ecdsa_high.c'], ['../group___u_c_l___e_c_d_s_a.html#gace8124cbf9731b7c288ed4cae4d1b820', 1, 'ucl_ecdsa_signature(ucl_type_ecdsa_signature signature, u8 *d, int(*ucl_hash)(u8 *, u8 *, u32), u8 *input, u32 inputlength, ucl_type_curve *curve_params, u32 configuration): ecdsa_high.c']]], + ['ucl_5fecdsa_5fverification', ['ucl_ecdsa_verification', ['../group___u_c_l___e_c_d_s_a.html#gac187a283b120b205429ecbec6a751bfa', 1, 'ucl_ecdsa_verification(ucl_type_ecc_u8_affine_point Q, ucl_type_ecdsa_signature signature, int(*ucl_hash)(u8 *, u8 *, u32), u8 *input, u32 inputlength, ucl_type_curve *curve_params, u32 configuration): ecdsa_high.c'], ['../group___u_c_l___e_c_d_s_a.html#gac187a283b120b205429ecbec6a751bfa', 1, 'ucl_ecdsa_verification(ucl_type_ecc_u8_affine_point Q, ucl_type_ecdsa_signature signature, int(*ucl_hash)(u8 *, u8 *, u32), u8 *input, u32 inputlength, ucl_type_curve *curve_params, u32 configuration): ecdsa_high.c']]], + ['ucl_5ferror', ['UCL_ERROR', ['../group___u_c_l___r_e_t_u_r_n.html#gafd05d0634dc32843163713aaed20563a', 1, 'ucl_retdefs.h']]], + ['ucl_5ffalse', ['UCL_FALSE', ['../group___u_c_l___r_e_t_u_r_n.html#gad3a862f5f0e7cc34da71225a3438530e', 1, 'ucl_retdefs.h']]], + ['ucl_5ffunction_5fdisabled', ['UCL_FUNCTION_DISABLED', ['../group___u_c_l___r_e_t_u_r_n.html#ga9027ff13a3693edb80f434637854b404', 1, 'ucl_retdefs.h']]], + ['ucl_5finteger_5fnot_5fodd', ['UCL_INTEGER_NOT_ODD', ['../group___u_c_l___r_e_t_u_r_n.html#ga363dbaa89915c7ec570e0746dd6db266', 1, 'ucl_retdefs.h']]], + ['ucl_5finvalid_5farg', ['UCL_INVALID_ARG', ['../group___u_c_l___r_e_t_u_r_n.html#ga5e4b3a2e5cbcf09c2486f2e9d793a47b', 1, 'ucl_retdefs.h']]], + ['ucl_5finvalid_5fcipher', ['UCL_INVALID_CIPHER', ['../group___u_c_l___r_e_t_u_r_n.html#ga4b7d4436f37b1e54815006bde457cb63', 1, 'ucl_retdefs.h']]], + ['ucl_5finvalid_5fhash', ['UCL_INVALID_HASH', ['../group___u_c_l___r_e_t_u_r_n.html#ga6d7e5e9335ae078f64082b7f5b2ccb82', 1, 'ucl_retdefs.h']]], + ['ucl_5finvalid_5finput', ['UCL_INVALID_INPUT', ['../group___u_c_l___r_e_t_u_r_n.html#ga0ce984d38effddf33eb42be5ff3d87cf', 1, 'ucl_retdefs.h']]], + ['ucl_5finvalid_5fmode', ['UCL_INVALID_MODE', ['../group___u_c_l___r_e_t_u_r_n.html#ga41639862646f715bfb747cfe7398e705', 1, 'ucl_retdefs.h']]], + ['ucl_5finvalid_5foutput', ['UCL_INVALID_OUTPUT', ['../group___u_c_l___r_e_t_u_r_n.html#ga3ed78d658471831fff1612d8d0affb88', 1, 'ucl_retdefs.h']]], + ['ucl_5finvalid_5fprecision', ['UCL_INVALID_PRECISION', ['../group___u_c_l___r_e_t_u_r_n.html#ga479c5977db40ae908b259d1cce536799', 1, 'ucl_retdefs.h']]], + ['ucl_5finvalid_5frsacrtaltkey', ['UCL_INVALID_RSACRTALTKEY', ['../group___u_c_l___r_e_t_u_r_n.html#ga3c5a146ccf18ee15393bb322f3e042f1', 1, 'ucl_retdefs.h']]], + ['ucl_5finvalid_5frsacrtkey', ['UCL_INVALID_RSACRTKEY', ['../group___u_c_l___r_e_t_u_r_n.html#ga5a8beb9fe66b842483769e5a6b6dc670', 1, 'ucl_retdefs.h']]], + ['ucl_5finvalid_5frsaprivkey', ['UCL_INVALID_RSAPRIVKEY', ['../group___u_c_l___r_e_t_u_r_n.html#gae81f80c201b44b56e74b9598386addb5', 1, 'ucl_retdefs.h']]], + ['ucl_5finvalid_5frsapubkey', ['UCL_INVALID_RSAPUBKEY', ['../group___u_c_l___r_e_t_u_r_n.html#gaa1a3bbddfcb4ad0e43e1f6cf15cde9ab', 1, 'ucl_retdefs.h']]], + ['ucl_5finvalid_5fsign', ['UCL_INVALID_SIGN', ['../group___u_c_l___r_e_t_u_r_n.html#gad3450e5a68b37eef1ce2d44e36d390b5', 1, 'ucl_retdefs.h']]], + ['ucl_5fno_5ftrng_5finterface', ['UCL_NO_TRNG_INTERFACE', ['../group___u_c_l___r_e_t_u_r_n.html#ga668c018da9085eb011e87324b5c544bd', 1, 'ucl_retdefs.h']]], + ['ucl_5fno_5fuaes_5finterface', ['UCL_NO_UAES_INTERFACE', ['../group___u_c_l___r_e_t_u_r_n.html#ga53588dab763f3da734c38514d2936f1d', 1, 'ucl_retdefs.h']]], + ['ucl_5fnop', ['UCL_NOP', ['../group___u_c_l___r_e_t_u_r_n.html#ga6ffb73da20c781dcb7f3004102c93aec', 1, 'ucl_retdefs.h']]], + ['ucl_5fnot_5fimplemented', ['UCL_NOT_IMPLEMENTED', ['../group___u_c_l___r_e_t_u_r_n.html#ga9a88a169ed70729e2b529a2ddfdad426', 1, 'ucl_retdefs.h']]], + ['ucl_5fnot_5finit', ['UCL_NOT_INIT', ['../group___u_c_l___r_e_t_u_r_n.html#ga8a9136da1288e350a5ec6eed18678631', 1, 'ucl_retdefs.h']]], + ['ucl_5fok', ['UCL_OK', ['../group___u_c_l___r_e_t_u_r_n.html#gaf4aeb5212f5aa1b3a12b3dea7eb1785d', 1, 'ucl_retdefs.h']]], + ['ucl_5foverflow', ['UCL_OVERFLOW', ['../group___u_c_l___r_e_t_u_r_n.html#gae4f4dea3ec4f9172974dc1158ba71b38', 1, 'ucl_retdefs.h']]], + ['ucl_5fpkcs1_5finvalid_5fsignature', ['UCL_PKCS1_INVALID_SIGNATURE', ['../group___u_c_l___r_e_t_u_r_n.html#gad99461b3bf6574c766b074bc99f1c501', 1, 'ucl_retdefs.h']]], + ['ucl_5fretdefs_2eh', ['ucl_retdefs.h', ['../ucl__retdefs_8h.html', 1, '']]], + ['ucl_5frng_5ferror', ['UCL_RNG_ERROR', ['../group___u_c_l___r_e_t_u_r_n.html#gaf2ca12b46ed9910d0fd6c70684139269', 1, 'ucl_retdefs.h']]], + ['ucl_5frngtimeout', ['UCL_RNGTIMEOUT', ['../group___u_c_l___r_e_t_u_r_n.html#gab2e9fd4ffe6baddb05940f713925987d', 1, 'ucl_retdefs.h']]], + ['ucl_5frsa_5finvalid_5fexponant', ['UCL_RSA_INVALID_EXPONANT', ['../group___u_c_l___r_e_t_u_r_n.html#ga7d4404cb6bde42e7db505a2d5a743e44', 1, 'ucl_retdefs.h']]], + ['ucl_5frsa_5finvalid_5finput', ['UCL_RSA_INVALID_INPUT', ['../group___u_c_l___r_e_t_u_r_n.html#ga414889da044b1fb5b75bddbbcaa5c1db', 1, 'ucl_retdefs.h']]], + ['ucl_5frsacrt_5ferror', ['UCL_RSACRT_ERROR', ['../group___u_c_l___r_e_t_u_r_n.html#ga4dc44a3e019d63cdc495c3bd16db6896', 1, 'ucl_retdefs.h']]], + ['ucl_5frsapkcs1_5fdecrypterr', ['UCL_RSAPKCS1_DECRYPTERR', ['../group___u_c_l___r_e_t_u_r_n.html#ga25d316534793eaa2df377427d259ac84', 1, 'ucl_retdefs.h']]], + ['ucl_5fsha256', ['UCL_SHA256', ['../group___u_c_l___s_h_a256.html#gab6ec8de620f9a15ec4c53d60464763d1', 1, 'UCL_SHA256(): ucl_sha256.h'], ['../group___u_c_l___s_h_a256.html#gafa8e11a759d3858139a7db28b537dcc9', 1, 'ucl_sha256(u8 *hash, u8 *data, u32 data_byteLen): ucl_sha256.h']]], + ['ucl_5fsha256_2eh', ['ucl_sha256.h', ['../ucl__sha256_8h.html', 1, '']]], + ['ucl_5fsha256_5fblocksize', ['UCL_SHA256_BLOCKSIZE', ['../group___u_c_l___s_h_a256.html#gaec576f8375b96f1db752b280ce6949af', 1, 'ucl_sha256.h']]], + ['ucl_5fsha256_5fcore', ['ucl_sha256_core', ['../group___u_c_l___s_h_a256.html#ga494da449128e998294c2b5905511c163', 1, 'ucl_sha256.h']]], + ['ucl_5fsha256_5fctx', ['ucl_sha256_ctx', ['../group___u_c_l___s_h_a256.html#structucl__sha256__ctx', 1, '']]], + ['ucl_5fsha256_5fctx_5ft', ['ucl_sha256_ctx_t', ['../group___u_c_l___s_h_a256.html#gace18734c81234bf40e163aae1f483ce0', 1, 'ucl_sha256.h']]], + ['ucl_5fsha256_5ffinish', ['ucl_sha256_finish', ['../group___u_c_l___s_h_a256.html#gaf1200b92fbe165e52194e8577d7ee85c', 1, 'ucl_sha256.h']]], + ['ucl_5fsha256_5fhashw32size', ['UCL_SHA256_HASHW32SIZE', ['../group___u_c_l___s_h_a256.html#gada30486af12f4e700193c549fdb0b93d', 1, 'ucl_sha256.h']]], + ['ucl_5fsha256_5finit', ['ucl_sha256_init', ['../group___u_c_l___s_h_a256.html#ga5e9587be893fe9e2b752de35a273fe15', 1, 'ucl_sha256.h']]], + ['ucl_5fsha3_2eh', ['ucl_sha3.h', ['../ucl__sha3_8h.html', 1, '']]], + ['ucl_5fsha384', ['ucl_sha384', ['../group___u_c_l___s_h_a384.html#ga630a98bbdb55234b5ca378f2a8c9e164', 1, 'ucl_sha384(u8 *hash, u8 *data, u32 data_byteLen): ucl_sha384.h'], ['../group___u_c_l___s_h_a384.html#gaec38275b5e1e9a88bf7564efa2e4e784', 1, 'UCL_SHA384(): ucl_sha384.h']]], + ['ucl_5fsha384_2eh', ['ucl_sha384.h', ['../ucl__sha384_8h.html', 1, '']]], + ['ucl_5fsha384_5fblocksize', ['UCL_SHA384_BLOCKSIZE', ['../group___u_c_l___s_h_a384.html#ga9747ca77faa8145ff0edb5df5ad277d0', 1, 'ucl_sha384.h']]], + ['ucl_5fsha384_5fcore', ['ucl_sha384_core', ['../group___u_c_l___s_h_a384.html#gaf0b18f108e3d4a187d01b37b3f220611', 1, 'ucl_sha384.h']]], + ['ucl_5fsha384_5fctx_5ft', ['ucl_sha384_ctx_t', ['../group___u_c_l___s_h_a384.html#ga5c067da1ec333aadb9c3077d09360e2f', 1, 'ucl_sha384.h']]], + ['ucl_5fsha384_5ffinish', ['ucl_sha384_finish', ['../group___u_c_l___s_h_a384.html#ga87fbdf4cc01f052611fb77fd3f80ea57', 1, 'ucl_sha384.h']]], + ['ucl_5fsha384_5fhashsize', ['UCL_SHA384_HASHSIZE', ['../group___u_c_l___s_h_a384.html#ga22894402b76aefa75e458457fd3e9751', 1, 'ucl_sha384.h']]], + ['ucl_5fsha384_5finit', ['ucl_sha384_init', ['../group___u_c_l___s_h_a384.html#gaa907d9876ac35e7eb8665dc360c07086', 1, 'ucl_sha384.h']]], + ['ucl_5fsha3_5f224', ['ucl_sha3_224', ['../group___u_c_l___s_h_a3.html#ga91decb6429959db936f5d31358bac92d', 1, 'ucl_sha3.h']]], + ['ucl_5fsha3_5f224_5finit', ['ucl_sha3_224_init', ['../group___u_c_l___s_h_a3.html#ga358ee08ff7de1d17b033e0ec2351fada', 1, 'ucl_sha3.h']]], + ['ucl_5fsha3_5f256', ['ucl_sha3_256', ['../group___u_c_l___s_h_a3.html#ga57ef75422f5cffd9516b5a9edd59ad85', 1, 'ucl_sha3.h']]], + ['ucl_5fsha3_5f256_5finit', ['ucl_sha3_256_init', ['../group___u_c_l___s_h_a3.html#gabb0a1b344e954de28fb5c0a562706f07', 1, 'ucl_sha3.h']]], + ['ucl_5fsha3_5f384', ['ucl_sha3_384', ['../group___u_c_l___s_h_a3.html#ga53dc3bf85e3ebc3168d7004927b52642', 1, 'ucl_sha3.h']]], + ['ucl_5fsha3_5f384_5finit', ['ucl_sha3_384_init', ['../group___u_c_l___s_h_a3.html#ga1bea25526b65e2c8bc646846f8d219ff', 1, 'ucl_sha3.h']]], + ['ucl_5fsha3_5f512', ['ucl_sha3_512', ['../group___u_c_l___s_h_a3.html#gac99c4c96792df0753ef2ba34729c9cdf', 1, 'ucl_sha3.h']]], + ['ucl_5fsha3_5f512_5finit', ['ucl_sha3_512_init', ['../group___u_c_l___s_h_a3.html#ga7f6a3112d532a603dafebf08d758a515', 1, 'ucl_sha3.h']]], + ['ucl_5fsha3_5fcore', ['ucl_sha3_core', ['../group___u_c_l___s_h_a3.html#ga3ce42b7e2f7fcd7f97191ea960d7f4a1', 1, 'ucl_sha3.h']]], + ['ucl_5fsha3_5ffinish', ['ucl_sha3_finish', ['../group___u_c_l___s_h_a3.html#gaa931f4b000207f2d533c9e84a4184e56', 1, 'ucl_sha3.h']]], + ['ucl_5fsha512', ['UCL_SHA512', ['../group___u_c_l___s_h_a512.html#ga5c44138784a2c7db1adf78b433804292', 1, 'UCL_SHA512(): ucl_sha512.h'], ['../group___u_c_l___s_h_a512.html#gabb3457cd8bca9dec7c0b1df798c89697', 1, 'ucl_sha512(u8 *hash, u8 *data, u32 data_byteLen): ucl_sha512.h']]], + ['ucl_5fsha512_2eh', ['ucl_sha512.h', ['../ucl__sha512_8h.html', 1, '']]], + ['ucl_5fsha512_5fblocksize', ['UCL_SHA512_BLOCKSIZE', ['../group___u_c_l___s_h_a512.html#ga750e386266c4b137168664e53e3baebd', 1, 'ucl_sha512.h']]], + ['ucl_5fsha512_5fcore', ['ucl_sha512_core', ['../group___u_c_l___s_h_a512.html#ga7c152d2906d1be49beb27ac6260fc081', 1, 'ucl_sha512.h']]], + ['ucl_5fsha512_5fctx', ['ucl_sha512_ctx', ['../group___u_c_l___s_h_a512.html#structucl__sha512__ctx', 1, '']]], + ['ucl_5fsha512_5fctx_5ft', ['ucl_sha512_ctx_t', ['../group___u_c_l___s_h_a512.html#ga5b0566974e6cba33aee12f5aebc12117', 1, 'ucl_sha512.h']]], + ['ucl_5fsha512_5ffinish', ['ucl_sha512_finish', ['../group___u_c_l___s_h_a512.html#gacc631a408fe8618a75a37051cacc3c56', 1, 'ucl_sha512.h']]], + ['ucl_5fsha512_5fhashw32size', ['UCL_SHA512_HASHW32SIZE', ['../group___u_c_l___s_h_a512.html#ga0215ae73b86b99bcddc9b3315f280f3d', 1, 'ucl_sha512.h']]], + ['ucl_5fsha512_5finit', ['ucl_sha512_init', ['../group___u_c_l___s_h_a512.html#gab1a52948b4c1a1de69c9f6db572aa553', 1, 'ucl_sha512.h']]], + ['ucl_5fsia256', ['ucl_sia256', ['../group___u_c_l___s_i_a256.html#gad50391bbde94fe6c9f9bdf151f294ac5', 1, 'ucl_sia256(u8 *hash, u8 *data, u32 data_byteLen): ucl_sia256.h'], ['../group___u_c_l___s_i_a256.html#gaea9532ac144a90f3ee34ae129ed68282', 1, 'UCL_SIA256(): ucl_sia256.h']]], + ['ucl_5fsia256_2eh', ['ucl_sia256.h', ['../ucl__sia256_8h.html', 1, '']]], + ['ucl_5fsia256_5fblocksize', ['UCL_SIA256_BLOCKSIZE', ['../group___u_c_l___s_i_a256.html#ga34283058845b7379a0d481372e2ad4d9', 1, 'ucl_sia256.h']]], + ['ucl_5fsia256_5fcore', ['ucl_sia256_core', ['../group___u_c_l___s_i_a256.html#ga1a9ce20b83ba89514be822203d40f910', 1, 'ucl_sia256.h']]], + ['ucl_5fsia256_5fctx', ['ucl_sia256_ctx', ['../group___u_c_l___s_i_a256.html#structucl__sia256__ctx', 1, '']]], + ['ucl_5fsia256_5fctx_5ft', ['ucl_sia256_ctx_t', ['../group___u_c_l___s_i_a256.html#ga17e23ec55cac2194659d2b08c2a3f4ca', 1, 'ucl_sia256.h']]], + ['ucl_5fsia256_5ffinish', ['ucl_sia256_finish', ['../group___u_c_l___s_i_a256.html#ga6cfa7bc32424e676a7d665470e832242', 1, 'ucl_sia256.h']]], + ['ucl_5fsia256_5fhashw32size', ['UCL_SIA256_HASHW32SIZE', ['../group___u_c_l___s_i_a256.html#gafaca6ff0632649a744923a29c7d197f1', 1, 'ucl_sia256.h']]], + ['ucl_5fsia256_5finit', ['ucl_sia256_init', ['../group___u_c_l___s_i_a256.html#ga2037616824d3d32416aa642c30499576', 1, 'ucl_sia256.h']]], + ['ucl_5fstack_5fdefault', ['UCL_STACK_DEFAULT', ['../group___u_c_l___r_e_t_u_r_n.html#gaa1cd90433b369b79056ecaaf7061f6ad', 1, 'ucl_retdefs.h']]], + ['ucl_5fstack_5ferror', ['UCL_STACK_ERROR', ['../group___u_c_l___r_e_t_u_r_n.html#ga7e7f411c20b460de9d77ac3612f21112', 1, 'ucl_retdefs.h']]], + ['ucl_5fstack_5finvalid_5ffree', ['UCL_STACK_INVALID_FREE', ['../group___u_c_l___r_e_t_u_r_n.html#gaed949439b5c3cd443b511320c649d43e', 1, 'ucl_retdefs.h']]], + ['ucl_5fstack_5fnot_5finit', ['UCL_STACK_NOT_INIT', ['../group___u_c_l___r_e_t_u_r_n.html#ga2346c721ea6b4512d78a6ab6111f86a2', 1, 'ucl_retdefs.h']]], + ['ucl_5fstack_5foverflow', ['UCL_STACK_OVERFLOW', ['../group___u_c_l___r_e_t_u_r_n.html#ga67bcb682a8d0dfd2bcc2f8f632757901', 1, 'ucl_retdefs.h']]], + ['ucl_5ftrng_5fcorrupted', ['UCL_TRNG_CORRUPTED', ['../group___u_c_l___r_e_t_u_r_n.html#gaa0a103590fcf2d1ab7435c0a065ab7c0', 1, 'ucl_retdefs.h']]], + ['ucl_5ftrng_5ferror', ['UCL_TRNG_ERROR', ['../group___u_c_l___r_e_t_u_r_n.html#gabfb30f7a53ff4e919deefe774bfd3e1f', 1, 'ucl_retdefs.h']]], + ['ucl_5ftrue', ['UCL_TRUE', ['../group___u_c_l___r_e_t_u_r_n.html#ga4498f15eb17d0532d8c3d1db72502f09', 1, 'ucl_retdefs.h']]], + ['ucl_5ftype_5fcurve', ['ucl_type_curve', ['../group___u_c_l___e_c_d_s_a.html#gafefd0c9e096ca1a9148fe513be73af23', 1, 'ecdsa_generic_api.h']]], + ['ucl_5ftype_5fecc_5fdigit_5faffine_5fpoint', ['ucl_type_ecc_digit_affine_point', ['../group___u_c_l___e_c_d_s_a.html#ga08934efc0b48378804e00430ff11f4a7', 1, 'ecdsa_generic_api.h']]], + ['ucl_5ftype_5fecc_5fjacobian_5fpoint', ['ucl_type_ecc_jacobian_point', ['../group___u_c_l___e_c_d_s_a.html#gaa417ba00b36868b82a7cbe3edb943ffe', 1, 'ecdsa_generic_api.h']]], + ['ucl_5ftype_5fecc_5fu8_5faffine_5fpoint', ['ucl_type_ecc_u8_affine_point', ['../group___u_c_l___e_c_d_s_a.html#ga567c0790d0088f9a22a8cbfd41e859b2', 1, 'ecdsa_generic_api.h']]], + ['ucl_5ftype_5fecdsa_5fsignature', ['ucl_type_ecdsa_signature', ['../group___u_c_l___e_c_d_s_a.html#ga699c157c3a5957466adf196159126388', 1, 'ecdsa_generic_api.h']]], + ['ucl_5fuaes_5fcorrupted', ['UCL_UAES_CORRUPTED', ['../group___u_c_l___r_e_t_u_r_n.html#gaba7ba8db070222df831530fc3e812776', 1, 'ucl_retdefs.h']]], + ['ucl_5fuaes_5ferror', ['UCL_UAES_ERROR', ['../group___u_c_l___r_e_t_u_r_n.html#ga2bc1728bb7048231ec416e9b5abeaa11', 1, 'ucl_retdefs.h']]], + ['ucl_5fwarning', ['UCL_WARNING', ['../group___u_c_l___r_e_t_u_r_n.html#ga7ad179c2a68343f3c8275ae412688a6d', 1, 'ucl_retdefs.h']]] ]; diff --git a/Libraries/FCL/doc/html/search/all_f.js b/Libraries/FCL/doc/html/search/all_f.js index bdbb91d3dfd..5f52c5d4c5a 100644 --- a/Libraries/FCL/doc/html/search/all_f.js +++ b/Libraries/FCL/doc/html/search/all_f.js @@ -1,5 +1,5 @@ var searchData= [ - ['x',['x',['../group___u_c_l___e_c_d_s_a.html#afb22ef172fe0d1819b8a567bc4f9d0a8',1,'_t_jacobian_point::x()'],['../group___u_c_l___e_c_d_s_a.html#a491ceb5dc35f494dc4f3404d310efdce',1,'_t_u8_affine_point::x()'],['../group___u_c_l___e_c_d_s_a.html#afb22ef172fe0d1819b8a567bc4f9d0a8',1,'_t_digit_affine_point::x()']]], - ['xg',['xg',['../group___u_c_l___e_c_d_s_a.html#ac386d0e2f79d9a0298b32b5f401a4215',1,'_t_curve']]] + ['x', ['x', ['../group___u_c_l___e_c_d_s_a.html#afb22ef172fe0d1819b8a567bc4f9d0a8', 1, '_t_jacobian_point::x()'], ['../group___u_c_l___e_c_d_s_a.html#a491ceb5dc35f494dc4f3404d310efdce', 1, '_t_u8_affine_point::x()'], ['../group___u_c_l___e_c_d_s_a.html#afb22ef172fe0d1819b8a567bc4f9d0a8', 1, '_t_digit_affine_point::x()']]], + ['xg', ['xg', ['../group___u_c_l___e_c_d_s_a.html#ac386d0e2f79d9a0298b32b5f401a4215', 1, '_t_curve']]] ]; diff --git a/Libraries/FCL/doc/html/search/classes_0.js b/Libraries/FCL/doc/html/search/classes_0.js index 9ec6081ce45..71ea092c5af 100644 --- a/Libraries/FCL/doc/html/search/classes_0.js +++ b/Libraries/FCL/doc/html/search/classes_0.js @@ -1,8 +1,8 @@ var searchData= [ - ['_5ft_5fcurve',['_t_curve',['../group___u_c_l___e_c_d_s_a.html#struct__t__curve',1,'']]], - ['_5ft_5fdigit_5faffine_5fpoint',['_t_digit_affine_point',['../group___u_c_l___e_c_d_s_a.html#struct__t__digit__affine__point',1,'']]], - ['_5ft_5fecdsa_5fsignature',['_t_ecdsa_signature',['../group___u_c_l___e_c_d_s_a.html#struct__t__ecdsa__signature',1,'']]], - ['_5ft_5fjacobian_5fpoint',['_t_jacobian_point',['../group___u_c_l___e_c_d_s_a.html#struct__t__jacobian__point',1,'']]], - ['_5ft_5fu8_5faffine_5fpoint',['_t_u8_affine_point',['../group___u_c_l___e_c_d_s_a.html#struct__t__u8__affine__point',1,'']]] + ['_5ft_5fcurve', ['_t_curve', ['../group___u_c_l___e_c_d_s_a.html#struct__t__curve', 1, '']]], + ['_5ft_5fdigit_5faffine_5fpoint', ['_t_digit_affine_point', ['../group___u_c_l___e_c_d_s_a.html#struct__t__digit__affine__point', 1, '']]], + ['_5ft_5fecdsa_5fsignature', ['_t_ecdsa_signature', ['../group___u_c_l___e_c_d_s_a.html#struct__t__ecdsa__signature', 1, '']]], + ['_5ft_5fjacobian_5fpoint', ['_t_jacobian_point', ['../group___u_c_l___e_c_d_s_a.html#struct__t__jacobian__point', 1, '']]], + ['_5ft_5fu8_5faffine_5fpoint', ['_t_u8_affine_point', ['../group___u_c_l___e_c_d_s_a.html#struct__t__u8__affine__point', 1, '']]] ]; diff --git a/Libraries/FCL/doc/html/search/classes_1.js b/Libraries/FCL/doc/html/search/classes_1.js index 75e24498ca5..1836ff228b5 100644 --- a/Libraries/FCL/doc/html/search/classes_1.js +++ b/Libraries/FCL/doc/html/search/classes_1.js @@ -1,6 +1,6 @@ var searchData= [ - ['sha3_5fcontext_5f',['sha3_context_',['../ucl__sha3_8h.html#structsha3__context__',1,'']]], - ['sha3_5fcontext_5f_2e_5f_5funnamed_5f_5f',['sha3_context_.__unnamed__',['../ucl__sha3_8h.html#unionsha3__context___8____unnamed____',1,'']]], - ['sha3_5fctx',['sha3_ctx',['../group___u_c_l___s_h_a3.html#structsha3__ctx',1,'']]] + ['sha3_5fcontext_5f', ['sha3_context_', ['../ucl__sha3_8h.html#structsha3__context__', 1, '']]], + ['sha3_5fcontext_5f_2e_5f_5funnamed_5f_5f', ['sha3_context_.__unnamed__', ['../ucl__sha3_8h.html#unionsha3__context___8____unnamed____', 1, '']]], + ['sha3_5fctx', ['sha3_ctx', ['../group___u_c_l___s_h_a3.html#structsha3__ctx', 1, '']]] ]; diff --git a/Libraries/FCL/doc/html/search/files_0.js b/Libraries/FCL/doc/html/search/files_0.js index 6fae58f055b..4aa94903918 100644 --- a/Libraries/FCL/doc/html/search/files_0.js +++ b/Libraries/FCL/doc/html/search/files_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['ecdsa_5fgeneric_5fapi_2eh',['ecdsa_generic_api.h',['../ecdsa__generic__api_8h.html',1,'']]] + ['ecdsa_5fgeneric_5fapi_2eh', ['ecdsa_generic_api.h', ['../ecdsa__generic__api_8h.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/html/search/functions_0.js b/Libraries/FCL/doc/html/search/functions_0.js index fc0bb96a1ae..0f65cfb1b26 100644 --- a/Libraries/FCL/doc/html/search/functions_0.js +++ b/Libraries/FCL/doc/html/search/functions_0.js @@ -1,6 +1,6 @@ var searchData= [ - ['ecc_5fadd',['ecc_add',['../group___u_c_l___e_c_d_s_a.html#ga4f6107068fc0d727a6a3589522e56eb5',1,'ecc_add(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_point Q1, ucl_type_ecc_digit_affine_point Q2, ucl_type_curve *curve_params): ecdsa_generic_api.c'],['../group___u_c_l___e_c_d_s_a.html#ga4f6107068fc0d727a6a3589522e56eb5',1,'ecc_add(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_point Q1, ucl_type_ecc_digit_affine_point Q2, ucl_type_curve *curve_params): ecdsa_generic_api.c']]], - ['ecc_5fdouble',['ecc_double',['../group___u_c_l___e_c_d_s_a.html#gad710700899b809c5677bfe69efba6ef6',1,'ecc_double(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_point Q1, ucl_type_curve *curve_params): ecdsa_generic_api.c'],['../group___u_c_l___e_c_d_s_a.html#gad710700899b809c5677bfe69efba6ef6',1,'ecc_double(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_point Q1, ucl_type_curve *curve_params): ecdsa_generic_api.c']]], - ['ecc_5fmult_5fjacobian',['ecc_mult_jacobian',['../group___u_c_l___e_c_d_s_a.html#ga2cd6538583c4c83f176b9c57e24d0621',1,'ecc_mult_jacobian(ucl_type_ecc_digit_affine_point Q, u32 *m, ucl_type_ecc_digit_affine_point X1, ucl_type_curve *curve_params): ecdsa_generic_api.c'],['../group___u_c_l___e_c_d_s_a.html#ga2cd6538583c4c83f176b9c57e24d0621',1,'ecc_mult_jacobian(ucl_type_ecc_digit_affine_point Q, u32 *m, ucl_type_ecc_digit_affine_point X1, ucl_type_curve *curve_params): ecdsa_generic_api.c']]] + ['ecc_5fadd', ['ecc_add', ['../group___u_c_l___e_c_d_s_a.html#ga4f6107068fc0d727a6a3589522e56eb5', 1, 'ecc_add(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_point Q1, ucl_type_ecc_digit_affine_point Q2, ucl_type_curve *curve_params): ecdsa_generic_api.c'], ['../group___u_c_l___e_c_d_s_a.html#ga4f6107068fc0d727a6a3589522e56eb5', 1, 'ecc_add(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_point Q1, ucl_type_ecc_digit_affine_point Q2, ucl_type_curve *curve_params): ecdsa_generic_api.c']]], + ['ecc_5fdouble', ['ecc_double', ['../group___u_c_l___e_c_d_s_a.html#gad710700899b809c5677bfe69efba6ef6', 1, 'ecc_double(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_point Q1, ucl_type_curve *curve_params): ecdsa_generic_api.c'], ['../group___u_c_l___e_c_d_s_a.html#gad710700899b809c5677bfe69efba6ef6', 1, 'ecc_double(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_point Q1, ucl_type_curve *curve_params): ecdsa_generic_api.c']]], + ['ecc_5fmult_5fjacobian', ['ecc_mult_jacobian', ['../group___u_c_l___e_c_d_s_a.html#ga2cd6538583c4c83f176b9c57e24d0621', 1, 'ecc_mult_jacobian(ucl_type_ecc_digit_affine_point Q, u32 *m, ucl_type_ecc_digit_affine_point X1, ucl_type_curve *curve_params): ecdsa_generic_api.c'], ['../group___u_c_l___e_c_d_s_a.html#ga2cd6538583c4c83f176b9c57e24d0621', 1, 'ecc_mult_jacobian(ucl_type_ecc_digit_affine_point Q, u32 *m, ucl_type_ecc_digit_affine_point X1, ucl_type_curve *curve_params): ecdsa_generic_api.c']]] ]; diff --git a/Libraries/FCL/doc/html/search/groups_0.js b/Libraries/FCL/doc/html/search/groups_0.js index 42459024d5c..56dc0c574b0 100644 --- a/Libraries/FCL/doc/html/search/groups_0.js +++ b/Libraries/FCL/doc/html/search/groups_0.js @@ -1,7 +1,7 @@ var searchData= [ - ['aes',['AES',['../group___u_c_l___a_e_s.html',1,'']]], - ['aes_20cbc',['AES CBC',['../group___u_c_l___c_b_c___a_e_s.html',1,'']]], - ['aes_20cbc_5fmac',['AES CBC_MAC',['../group___u_c_l___c_b_c___m_a_c___a_e_s.html',1,'']]], - ['aes_20ecb',['AES ECB',['../group___u_c_l___e_c_b___a_e_s.html',1,'']]] + ['aes', ['AES', ['../group___u_c_l___a_e_s.html', 1, '']]], + ['aes_20cbc', ['AES CBC', ['../group___u_c_l___c_b_c___a_e_s.html', 1, '']]], + ['aes_20cbc_5fmac', ['AES CBC_MAC', ['../group___u_c_l___c_b_c___m_a_c___a_e_s.html', 1, '']]], + ['aes_20ecb', ['AES ECB', ['../group___u_c_l___e_c_b___a_e_s.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/html/search/groups_1.js b/Libraries/FCL/doc/html/search/groups_1.js index 7d0bb947134..3a803e36b26 100644 --- a/Libraries/FCL/doc/html/search/groups_1.js +++ b/Libraries/FCL/doc/html/search/groups_1.js @@ -1,6 +1,6 @@ var searchData= [ - ['defines',['Defines',['../group___u_c_l___d_e_f_i_n_e_s.html',1,'']]], - ['definitions',['Definitions',['../group___u_c_l___d_e_f_i_n_i_t_i_o_n_s.html',1,'']]], - ['definitions_20of_20returns',['Definitions of returns',['../group___u_c_l___r_e_t_u_r_n.html',1,'']]] + ['defines', ['Defines', ['../group___u_c_l___d_e_f_i_n_e_s.html', 1, '']]], + ['definitions', ['Definitions', ['../group___u_c_l___d_e_f_i_n_i_t_i_o_n_s.html', 1, '']]], + ['definitions_20of_20returns', ['Definitions of returns', ['../group___u_c_l___r_e_t_u_r_n.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/html/search/groups_2.js b/Libraries/FCL/doc/html/search/groups_2.js index 9b086ca44e7..1dd3ac37aba 100644 --- a/Libraries/FCL/doc/html/search/groups_2.js +++ b/Libraries/FCL/doc/html/search/groups_2.js @@ -1,4 +1,4 @@ var searchData= [ - ['ecdsa',['ECDSA',['../group___u_c_l___e_c_d_s_a.html',1,'']]] + ['ecdsa', ['ECDSA', ['../group___u_c_l___e_c_d_s_a.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/html/search/groups_3.js b/Libraries/FCL/doc/html/search/groups_3.js index 56459c2a9e2..583553ab57d 100644 --- a/Libraries/FCL/doc/html/search/groups_3.js +++ b/Libraries/FCL/doc/html/search/groups_3.js @@ -1,8 +1,8 @@ var searchData= [ - ['sha256',['SHA256',['../group___u_c_l___s_h_a256.html',1,'']]], - ['sha3',['SHA3',['../group___u_c_l___s_h_a3.html',1,'']]], - ['sha384',['SHA384',['../group___u_c_l___s_h_a384.html',1,'']]], - ['sha512',['SHA512',['../group___u_c_l___s_h_a512.html',1,'']]], - ['sia256',['SIA256',['../group___u_c_l___s_i_a256.html',1,'']]] + ['sha256', ['SHA256', ['../group___u_c_l___s_h_a256.html', 1, '']]], + ['sha3', ['SHA3', ['../group___u_c_l___s_h_a3.html', 1, '']]], + ['sha384', ['SHA384', ['../group___u_c_l___s_h_a384.html', 1, '']]], + ['sha512', ['SHA512', ['../group___u_c_l___s_h_a512.html', 1, '']]], + ['sia256', ['SIA256', ['../group___u_c_l___s_i_a256.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/html/search/groups_4.js b/Libraries/FCL/doc/html/search/groups_4.js index c343dfb8db7..84618e72b3c 100644 --- a/Libraries/FCL/doc/html/search/groups_4.js +++ b/Libraries/FCL/doc/html/search/groups_4.js @@ -1,4 +1,4 @@ var searchData= [ - ['global_20management_20functions',['Global management functions',['../group__ssbx___main.html',1,'']]] + ['global_20management_20functions', ['Global management functions', ['../group__ssbx___main.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/html/search/groups_5.js b/Libraries/FCL/doc/html/search/groups_5.js index 72dbb31c554..f0bf6d2ea12 100644 --- a/Libraries/FCL/doc/html/search/groups_5.js +++ b/Libraries/FCL/doc/html/search/groups_5.js @@ -1,4 +1,4 @@ var searchData= [ - ['i_2fo_20api',['I/O API',['../group__ssbx___i_o.html',1,'']]] + ['i_2fo_20api', ['I/O API', ['../group__ssbx___i_o.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/html/search/groups_6.js b/Libraries/FCL/doc/html/search/groups_6.js index f990322fed1..1863e374cbe 100644 --- a/Libraries/FCL/doc/html/search/groups_6.js +++ b/Libraries/FCL/doc/html/search/groups_6.js @@ -1,4 +1,4 @@ var searchData= [ - ['key_20manager',['Key Manager',['../group__ssbx___key_management.html',1,'']]] + ['key_20manager', ['Key Manager', ['../group__ssbx___key_management.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/html/search/groups_7.js b/Libraries/FCL/doc/html/search/groups_7.js index 2abd77f4a2b..bbd432ad361 100644 --- a/Libraries/FCL/doc/html/search/groups_7.js +++ b/Libraries/FCL/doc/html/search/groups_7.js @@ -1,5 +1,5 @@ var searchData= [ - ['magnetic_20stripe',['Magnetic Stripe',['../group__pcibx___m_s_r.html',1,'']]], - ['memory_20manager',['Memory Manager',['../group__ssbx___mem.html',1,'']]] + ['magnetic_20stripe', ['Magnetic Stripe', ['../group__pcibx___m_s_r.html', 1, '']]], + ['memory_20manager', ['Memory Manager', ['../group__ssbx___mem.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/html/search/groups_8.js b/Libraries/FCL/doc/html/search/groups_8.js index 496e93aed62..c33145f83d3 100644 --- a/Libraries/FCL/doc/html/search/groups_8.js +++ b/Libraries/FCL/doc/html/search/groups_8.js @@ -1,4 +1,4 @@ var searchData= [ - ['operating_20system_2c_20drivers_2c_20c_20library_2c_20other_20libraries_2e_2e_2e',['Operating system, drivers, C library, other libraries...',['../group__os.html',1,'']]] + ['operating_20system_2c_20drivers_2c_20c_20library_2c_20other_20libraries_2e_2e_2e', ['Operating system, drivers, C library, other libraries...', ['../group__os.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/html/search/groups_9.js b/Libraries/FCL/doc/html/search/groups_9.js index 9d0d5acde07..a29e866911c 100644 --- a/Libraries/FCL/doc/html/search/groups_9.js +++ b/Libraries/FCL/doc/html/search/groups_9.js @@ -1,5 +1,5 @@ var searchData= [ - ['pci_20security_20services_2c_20security_20functions_20dedicated_20to_20pci_20pts_20poi_20security',['PCI Security Services, Security functions dedicated to PCI PTS POI security',['../group__pcibx.html',1,'']]], - ['pin_20handling',['PIN handling',['../group__pcibx___p_i_n.html',1,'']]] + ['pci_20security_20services_2c_20security_20functions_20dedicated_20to_20pci_20pts_20poi_20security', ['PCI Security Services, Security functions dedicated to PCI PTS POI security', ['../group__pcibx.html', 1, '']]], + ['pin_20handling', ['PIN handling', ['../group__pcibx___p_i_n.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/html/search/groups_a.js b/Libraries/FCL/doc/html/search/groups_a.js index 2fc39fcdb9d..1efbecb01a3 100644 --- a/Libraries/FCL/doc/html/search/groups_a.js +++ b/Libraries/FCL/doc/html/search/groups_a.js @@ -1,5 +1,5 @@ var searchData= [ - ['secure_20sandbox_20services_20_28generic_20security_20functions_29',['Secure Sandbox services (Generic Security functions)',['../group__ssbx.html',1,'']]], - ['sia256',['SIA256',['../group___u_c_l___s_i_a256.html',1,'']]] + ['secure_20sandbox_20services_20_28generic_20security_20functions_29', ['Secure Sandbox services (Generic Security functions)', ['../group__ssbx.html', 1, '']]], + ['sia256', ['SIA256', ['../group___u_c_l___s_i_a256.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/html/search/groups_b.js b/Libraries/FCL/doc/html/search/groups_b.js index 8dc5677a9bd..4c6627135ae 100644 --- a/Libraries/FCL/doc/html/search/groups_b.js +++ b/Libraries/FCL/doc/html/search/groups_b.js @@ -1,4 +1,4 @@ var searchData= [ - ['types_20definitions',['types definitions',['../group___u_c_l___t_y_p_e_s.html',1,'']]] + ['types_20definitions', ['types definitions', ['../group___u_c_l___t_y_p_e_s.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/html/search/groups_c.js b/Libraries/FCL/doc/html/search/groups_c.js index 9233a981285..4e323e854f2 100644 --- a/Libraries/FCL/doc/html/search/groups_c.js +++ b/Libraries/FCL/doc/html/search/groups_c.js @@ -1,4 +1,4 @@ var searchData= [ - ['uvisor_20api',['uVisor API',['../group__hypervisor.html',1,'']]] + ['uvisor_20api', ['uVisor API', ['../group__hypervisor.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/html/search/pages_0.js b/Libraries/FCL/doc/html/search/pages_0.js index 3534537bf74..1681df791e7 100644 --- a/Libraries/FCL/doc/html/search/pages_0.js +++ b/Libraries/FCL/doc/html/search/pages_0.js @@ -1,5 +1,5 @@ var searchData= [ - ['references',['References',['../_r_e_f_e_r_e_n_c_e_s.html',1,'']]], - ['release_20notes',['Release Notes',['../_r_e_l_e_a_s_e__n_o_t_e_s.html',1,'']]] + ['references', ['References', ['../_r_e_f_e_r_e_n_c_e_s.html', 1, '']]], + ['release_20notes', ['Release Notes', ['../_r_e_l_e_a_s_e__n_o_t_e_s.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/html/search/pages_1.js b/Libraries/FCL/doc/html/search/pages_1.js index 3f560514777..79be04d3ed4 100644 --- a/Libraries/FCL/doc/html/search/pages_1.js +++ b/Libraries/FCL/doc/html/search/pages_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['security_20guidelines',['Security Guidelines',['../_p_c_i_g_u_i_d_a_n_c_e.html',1,'']]] + ['security_20guidelines', ['Security Guidelines', ['../_p_c_i_g_u_i_d_a_n_c_e.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/html/search/search.css b/Libraries/FCL/doc/html/search/search.css index 08288b2791b..a4f38eaf6e2 100644 --- a/Libraries/FCL/doc/html/search/search.css +++ b/Libraries/FCL/doc/html/search/search.css @@ -129,7 +129,7 @@ span.SelectionMark { a.SelectItem { display: block; outline-style: none; - color: #000000; + color: #000000; text-decoration: none; padding-left: 6px; padding-right: 12px; @@ -137,7 +137,7 @@ a.SelectItem { a.SelectItem:focus, a.SelectItem:active { - color: #000000; + color: #000000; outline-style: none; text-decoration: none; } @@ -171,7 +171,7 @@ iframe#MSearchResults { #SRIndex { - clear:both; + clear:both; padding-bottom: 15px; } @@ -190,7 +190,7 @@ body.SRPage { } .SRChildren { - padding-left: 3ex; padding-bottom: .5em + padding-left: 3ex; padding-bottom: .5em } .SRPage .SRChildren { @@ -198,7 +198,7 @@ body.SRPage { } .SRSymbol { - font-weight: bold; + font-weight: bold; color: #3E817B; font-family: Arial, Verdana, sans-serif; text-decoration: none; @@ -207,7 +207,7 @@ body.SRPage { a.SRScope { display: block; - color: #3E817B; + color: #3E817B; font-family: Arial, Verdana, sans-serif; text-decoration: none; outline: none; diff --git a/Libraries/FCL/doc/html/search/search.js b/Libraries/FCL/doc/html/search/search.js index dedce3bf093..ce6a7e117cc 100644 --- a/Libraries/FCL/doc/html/search/search.js +++ b/Libraries/FCL/doc/html/search/search.js @@ -230,7 +230,7 @@ function SearchBox(name, resultsPath, inFrame, label) this.SelectItemSet = function(id) { - var i,j=0; + var i, j=0; var win=this.DOMSearchSelectWindow(); for (i=0;i
    -
    @@ -95,7 +95,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/struct__t__digit__affine__point.html b/Libraries/FCL/doc/html/struct__t__digit__affine__point.html index ea9e083fc16..c1d1bcc9eea 100644 --- a/Libraries/FCL/doc/html/struct__t__digit__affine__point.html +++ b/Libraries/FCL/doc/html/struct__t__digit__affine__point.html @@ -41,7 +41,7 @@
    -
    @@ -95,7 +95,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/struct__t__ecdsa__signature.html b/Libraries/FCL/doc/html/struct__t__ecdsa__signature.html index ccdc9dc3f83..0121bf4353d 100644 --- a/Libraries/FCL/doc/html/struct__t__ecdsa__signature.html +++ b/Libraries/FCL/doc/html/struct__t__ecdsa__signature.html @@ -41,7 +41,7 @@
    -
    @@ -95,7 +95,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/struct__t__jacobian__point.html b/Libraries/FCL/doc/html/struct__t__jacobian__point.html index 684cd759005..27b06b9a0eb 100644 --- a/Libraries/FCL/doc/html/struct__t__jacobian__point.html +++ b/Libraries/FCL/doc/html/struct__t__jacobian__point.html @@ -41,7 +41,7 @@
    -
    @@ -95,7 +95,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/struct__t__u8__affine__point.html b/Libraries/FCL/doc/html/struct__t__u8__affine__point.html index 8f7a6b577cb..3036da0f49f 100644 --- a/Libraries/FCL/doc/html/struct__t__u8__affine__point.html +++ b/Libraries/FCL/doc/html/struct__t__u8__affine__point.html @@ -23,7 +23,7 @@ -
    +
    @@ -41,7 +41,7 @@ -
    @@ -95,7 +95,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/tabs.css b/Libraries/FCL/doc/html/tabs.css index a28614b8e3d..aabd2fd92f4 100644 --- a/Libraries/FCL/doc/html/tabs.css +++ b/Libraries/FCL/doc/html/tabs.css @@ -1 +1 @@ -.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#doc-content{overflow:auto;display:block;padding:0;margin:0;-webkit-overflow-scrolling:touch}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file +.sm{position:relative;z-index:9999}.sm, .sm ul, .sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}.sm-rtl, .sm-rtl ul, .sm-rtl li{direction:rtl;text-align:right}.sm>li>h1, .sm>li>h2, .sm>li>h3, .sm>li>h4, .sm>li>h5, .sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li, .sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm, .sm *, .sm *:before, .sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#doc-content{overflow:auto;display:block;padding:0;margin:0;-webkit-overflow-scrolling:touch}.sm-dox{background-image:url("tab_b.png")}.sm-dox a, .sm-dox a:focus, .sm-dox a:hover, .sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande", "Geneva", "Helvetica", Arial, sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255, 255, 255, 0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255, 255, 255, 0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a, .sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a, .sm-dox>li:last-child>*:not(ul) a, .sm-dox>li:last-child>ul, .sm-dox>li:last-child>ul>li:last-child>a, .sm-dox>li:last-child>ul>li:last-child>*:not(ul) a, .sm-dox>li:last-child>ul>li:last-child>ul, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted, .sm-dox>li:last-child>*:not(ul) a.highlighted, .sm-dox>li:last-child>ul>li:last-child>a.highlighted, .sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162, 162, 162, 0.1)}.sm-dox ul a, .sm-dox ul a:focus, .sm-dox ul a:hover, .sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a, .sm-dox ul ul a:hover, .sm-dox ul ul a:focus, .sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a, .sm-dox ul ul ul a:hover, .sm-dox ul ul ul a:focus, .sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a, .sm-dox ul ul ul ul a:hover, .sm-dox ul ul ul ul a:focus, .sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a, .sm-dox ul ul ul ul ul a:hover, .sm-dox ul ul ul ul ul a:focus, .sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li, .sm-dox.sm-rtl ul li, .sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a, .sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a, .sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a, .sm-dox a:focus, .sm-dox a:active, .sm-dox a:hover, .sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before, .sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0, 0, 0, 0.2);-webkit-box-shadow:0 5px 9px rgba(0, 0, 0, 0.2);box-shadow:0 5px 9px rgba(0, 0, 0, 0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a, .sm-dox ul a:hover, .sm-dox ul a:focus, .sm-dox ul a:active, .sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up, .sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover, .sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow, .sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow, .sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover, .sm-dox.sm-vertical a:focus, .sm-dox.sm-vertical a:active, .sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before, .sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover, .sm-dox.sm-vertical ul a:focus, .sm-dox.sm-vertical ul a:active, .sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file diff --git a/Libraries/FCL/doc/html/ucl__retdefs_8h.html b/Libraries/FCL/doc/html/ucl__retdefs_8h.html index 6de332c31f2..8d973093eab 100644 --- a/Libraries/FCL/doc/html/ucl__retdefs_8h.html +++ b/Libraries/FCL/doc/html/ucl__retdefs_8h.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@ -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/ucl__sia256_8h.html b/Libraries/FCL/doc/html/ucl__sia256_8h.html index 12ba3b8f366..c2c1ee0180a 100644 --- a/Libraries/FCL/doc/html/ucl__sia256_8h.html +++ b/Libraries/FCL/doc/html/ucl__sia256_8h.html @@ -40,13 +40,13 @@ @@ -58,12 +58,12 @@
    -
    @@ -75,7 +75,7 @@
    -
    diff --git a/Libraries/FCL/doc/html/ucl__types_8h.html b/Libraries/FCL/doc/html/ucl__types_8h.html index 8bf76ad6014..6ed670cc979 100644 --- a/Libraries/FCL/doc/html/ucl__types_8h.html +++ b/Libraries/FCL/doc/html/ucl__types_8h.html @@ -41,7 +41,7 @@
    -
    @@ -95,7 +95,7 @@
    -
    diff --git a/Libraries/FCL/doc/latex/Makefile b/Libraries/FCL/doc/latex/Makefile index 8cc3866f4a0..c4ee0484a3a 100644 --- a/Libraries/FCL/doc/latex/Makefile +++ b/Libraries/FCL/doc/latex/Makefile @@ -3,19 +3,19 @@ all: refman.pdf pdf: refman.pdf refman.pdf: clean refman.tex - pdflatex refman - makeindex refman.idx - pdflatex refman - latex_count=8 ; \ - while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ - do \ - echo "Rerunning latex...." ;\ - pdflatex refman ;\ - latex_count=`expr $$latex_count - 1` ;\ - done - makeindex refman.idx - pdflatex refman + pdflatex refman + makeindex refman.idx + pdflatex refman + latex_count=8 ; \ + while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ + do \ + echo "Rerunning latex...." ;\ + pdflatex refman ;\ + latex_count=`expr $$latex_count - 1` ;\ + done + makeindex refman.idx + pdflatex refman clean: - rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf + rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf diff --git a/Libraries/FCL/doc/latex/_p_c_i_g_u_i_d_a_n_c_e.tex b/Libraries/FCL/doc/latex/_p_c_i_g_u_i_d_a_n_c_e.tex index 3824c8ff1c7..d773f0cc489 100644 --- a/Libraries/FCL/doc/latex/_p_c_i_g_u_i_d_a_n_c_e.tex +++ b/Libraries/FCL/doc/latex/_p_c_i_g_u_i_d_a_n_c_e.tex @@ -124,7 +124,7 @@ \begin{DoxyEnumerate} \item create a new folder box\+\_\+\+N\+A\+ME in ./sources (or in a sub folder located under ./sources). -\item create a file sourcefile.\+cpp containing\+: +\item create a file sourcefile.\+cpp containing\+: \begin{DoxyCode} \textcolor{preprocessor}{ #include "uvisor-lib/uvisor-lib.h"} \textcolor{preprocessor}{ #include "mbed.h"} @@ -161,7 +161,7 @@ \item in the above, replace S\+I\+G\+N\+I\+N\+G\+\_\+\+K\+E\+Y\+\_\+\+X\+X\+X\+XX by the appropriate signing key identifier (one of S\+I\+G\+N\+I\+N\+G\+\_\+\+K\+E\+Y\+\_\+\+FW, S\+I\+G\+N\+I\+N\+G\+\_\+\+K\+E\+Y\+\_\+\+T\+R\+U\+S\+T\+ED, S\+I\+G\+N\+I\+N\+G\+\_\+\+K\+E\+Y\+\_\+\+O\+T\+H\+ER) \item extend the file ./mbed-\/os/target/\+T\+A\+R\+G\+E\+T\+\_\+\+Maxim/common/max325xx.ld.\+inc -\item below the marker \char`\"{}\+S\+E\+C\+U\+R\+E B\+O\+X\+E\+S\char`\"{}, add this set of definitions\+: +\item below the marker \char`\"{}\+S\+E\+C\+U\+R\+E B\+O\+X\+E\+S\char`\"{}, add this set of definitions\+: \begin{DoxyCode} .text.box\_NAME\_cfg : \{ @@ -185,9 +185,9 @@ \_\_end\_box\_NAME = LOADADDR(.data.box\_NAME\_datainit)+SIZEOF(.data.box\_NAME\_datainit); \end{DoxyCode} -\item Modify the top Makefile\+: in the target {\ttfamily \%.elf.\+signed\+: \%.elf Makefile}, add an additional line\+: +\item Modify the top Makefile\+: in the target {\ttfamily \%.elf.\+signed\+: \%.elf Makefile}, add an additional line\+: \begin{DoxyCode} -$(call signmodule,box\_NAME,$(SIGNINGKEY\_XXX\_PEM),$(TEMPDIR)$\{ @@ -59,12 +59,12 @@
    -
    @@ -76,7 +76,7 @@
    -
    @@ -219,7 +219,7 @@

  • in the above, replace SIGNING_KEY_XXXXX by the appropriate signing key identifier (one of SIGNING_KEY_FW, SIGNING_KEY_TRUSTED, SIGNING_KEY_OTHER)
  • extend the file ./mbed-os/target/TARGET_Maxim/common/max325xx.ld.inc
  • below the marker "SECURE BOXES", add this set of definitions:
    .text.box_NAME_cfg :
    {
    *path/to/box_NAME*(.keep.addmodules*)
    }> FLASH_MOD
    .text.box_NAME_code :
    {
    __start_box_NAME = .;
    *path/to/box_NAME*(.text* .rodata*)
    FILL(0xab)
    . = ALIGN(4);
    } > FLASH_MOD
    .data.box_NAME_datainit :
    {
    KEEP(*path/to/box_NAME*(.data*))
    FILL(0xab)
    . = ALIGN(4);
    } > RAM AT > FLASH_MOD = 0xcc
    __start_box_NAME_data_src = LOADADDR(.data.box_NAME_datainit);
    __start_box_NAME_data_dest = ADDR(.data.box_NAME_datainit);
    __end_box_NAME = LOADADDR(.data.box_NAME_datainit)+SIZEOF(.data.box_NAME_datainit);
  • -
  • Modify the top Makefile: in the target %.elf.signed: %.elf Makefile, add an additional line:
    $(call signmodule,box_NAME,$(SIGNINGKEY_XXX_PEM),$(TEMPDIR)${<F}.temp)
    Replace SIGNINGKEY_XXX_PEM by the appropriate file name that contains the private signing key.
  • +
  • Modify the top Makefile: in the target %.elf.signed: %.elf Makefile, add an additional line:
    $(call signmodule, box_NAME, $(SIGNINGKEY_XXX_PEM), $(TEMPDIR)${<F}.temp)
    Replace SIGNINGKEY_XXX_PEM by the appropriate file name that contains the private signing key.
  • Firmware signature

    @@ -258,7 +258,7 @@

    Developer guidance on how to correctly configure and review Deeptrust implementations to ensure that they are correctly isolating non-security code:

    Before using a signing key to approve a box for being added to the software or firmware, the developer must ensure that:

    • the check_acl function correctly limits the ACLs of boxes
    • -
    • even if allowed by check_acl for the selected signing key,
    • +
    • even if allowed by check_acl for the selected signing key,
    • the code must be manually reviewed and tested to make sure that:
      • their sensitive data is kept in secure memory and not leaked in the public memory (use the private heap of the box)
      • the access control to their services offered via RPC is correctly implemented and tested
      • @@ -280,7 +280,7 @@

        Minimal configuration

        The provided solution ensures the minimal software configuration through the use of GCC's options:

        • -fdata-sections -ffunction-sections for compiling
        • -
        • -Wl,–gc-section for linking
        • +
        • -Wl, –gc-section for linking

        The above options eliminates dead code. Hence, by definition, only the strictly useful code is embedded in the final binary.

        diff --git a/Libraries/FCL/doc/output/html/_r_e_f_e_r_e_n_c_e_s.html b/Libraries/FCL/doc/output/html/_r_e_f_e_r_e_n_c_e_s.html index 49756e59bf8..d5bacc7f93d 100644 --- a/Libraries/FCL/doc/output/html/_r_e_f_e_r_e_n_c_e_s.html +++ b/Libraries/FCL/doc/output/html/_r_e_f_e_r_e_n_c_e_s.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@

    -
    @@ -76,7 +76,7 @@
    -
    diff --git a/Libraries/FCL/doc/output/html/_r_e_l_e_a_s_e__n_o_t_e_s.html b/Libraries/FCL/doc/output/html/_r_e_l_e_a_s_e__n_o_t_e_s.html index 9f69b0954e1..9ee3112af35 100644 --- a/Libraries/FCL/doc/output/html/_r_e_l_e_a_s_e__n_o_t_e_s.html +++ b/Libraries/FCL/doc/output/html/_r_e_l_e_a_s_e__n_o_t_e_s.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@
    -
    @@ -76,7 +76,7 @@
    -
    diff --git a/Libraries/FCL/doc/output/html/annotated.html b/Libraries/FCL/doc/output/html/annotated.html index 1ca6e7d4c9b..f00e712e458 100644 --- a/Libraries/FCL/doc/output/html/annotated.html +++ b/Libraries/FCL/doc/output/html/annotated.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@
    -
    @@ -76,7 +76,7 @@
    -
    diff --git a/Libraries/FCL/doc/output/html/classes.html b/Libraries/FCL/doc/output/html/classes.html index eb3bf2996c8..55888334365 100644 --- a/Libraries/FCL/doc/output/html/classes.html +++ b/Libraries/FCL/doc/output/html/classes.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@
    -
    @@ -76,7 +76,7 @@
    -
    diff --git a/Libraries/FCL/doc/output/html/dir_bfccd401955b95cf8c75461437045ac0.html b/Libraries/FCL/doc/output/html/dir_bfccd401955b95cf8c75461437045ac0.html index 95e4fe1c101..3066f161de2 100644 --- a/Libraries/FCL/doc/output/html/dir_bfccd401955b95cf8c75461437045ac0.html +++ b/Libraries/FCL/doc/output/html/dir_bfccd401955b95cf8c75461437045ac0.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@
    -
    @@ -76,7 +76,7 @@
    -
    diff --git a/Libraries/FCL/doc/output/html/doxygen.css b/Libraries/FCL/doc/output/html/doxygen.css index 033dbf13c73..0afda5dc57c 100644 --- a/Libraries/FCL/doc/output/html/doxygen.css +++ b/Libraries/FCL/doc/output/html/doxygen.css @@ -1,85 +1,85 @@ /* The standard CSS for doxygen 1.8.12 */ body, table, div, p, dl { - font: 400 14px/22px Roboto,sans-serif; + font: 400 14px/22px Roboto, sans-serif; } /* @group Heading Levels */ h1.groupheader { - font-size: 150%; + font-size: 150%; } .title { - font: 400 14px/28px Roboto,sans-serif; - font-size: 150%; - font-weight: bold; - margin: 10px 2px; + font: 400 14px/28px Roboto, sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; } h2.groupheader { - border-bottom: 1px solid #7EC0BB; - color: #316561; - font-size: 150%; - font-weight: normal; - margin-top: 1.75em; - padding-top: 8px; - padding-bottom: 4px; - width: 100%; + border-bottom: 1px solid #7EC0BB; + color: #316561; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; } h3.groupheader { - font-size: 100%; + font-size: 100%; } h1, h2, h3, h4, h5, h6 { - -webkit-transition: text-shadow 0.5s linear; - -moz-transition: text-shadow 0.5s linear; - -ms-transition: text-shadow 0.5s linear; - -o-transition: text-shadow 0.5s linear; - transition: text-shadow 0.5s linear; - margin-right: 15px; + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; } h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { - text-shadow: 0 0 15px cyan; + text-shadow: 0 0 15px cyan; } dt { - font-weight: bold; + font-weight: bold; } div.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; } p.startli, p.startdd { - margin-top: 2px; + margin-top: 2px; } p.starttd { - margin-top: 0px; + margin-top: 0px; } p.endli { - margin-bottom: 0px; + margin-bottom: 0px; } p.enddd { - margin-bottom: 4px; + margin-bottom: 4px; } p.endtd { - margin-bottom: 2px; + margin-bottom: 2px; } /* @end */ caption { - font-weight: bold; + font-weight: bold; } span.legend { @@ -93,45 +93,45 @@ h3.version { } div.qindex, div.navtab{ - background-color: #E9F4F3; - border: 1px solid #9BCFCA; - text-align: center; + background-color: #E9F4F3; + border: 1px solid #9BCFCA; + text-align: center; } div.qindex, div.navpath { - width: 100%; - line-height: 140%; + width: 100%; + line-height: 140%; } div.navtab { - margin-right: 15px; + margin-right: 15px; } /* @group Link Styling */ a { - color: #397671; - font-weight: normal; - text-decoration: none; + color: #397671; + font-weight: normal; + text-decoration: none; } .contents a:visited { - color: #438C85; + color: #438C85; } a:hover { - text-decoration: underline; + text-decoration: underline; } a.qindex { - font-weight: bold; + font-weight: bold; } a.qindexHL { - font-weight: bold; - background-color: #93CBC6; - color: #ffffff; - border: 1px double #7CC0BA; + font-weight: bold; + background-color: #93CBC6; + color: #ffffff; + border: 1px double #7CC0BA; } .contents a.qindexHL:visited { @@ -139,24 +139,24 @@ a.qindexHL { } a.el { - font-weight: bold; + font-weight: bold; } a.elRef { } a.code, a.code:visited, a.line, a.line:visited { - color: #4665A2; + color: #4665A2; } a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { - color: #4665A2; + color: #4665A2; } /* @end */ dl.el { - margin-left: -1cm; + margin-left: -1cm; } pre.fragment { @@ -175,35 +175,35 @@ pre.fragment { div.fragment { padding: 0px; margin: 4px 8px 4px 2px; - background-color: #FBFDFD; - border: 1px solid #BFE0DD; + background-color: #FBFDFD; + border: 1px solid #BFE0DD; } div.line { - font-family: monospace, fixed; + font-family: monospace, fixed; font-size: 13px; - min-height: 13px; - line-height: 1.0; - text-wrap: unrestricted; - white-space: -moz-pre-wrap; /* Moz */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - white-space: pre-wrap; /* CSS3 */ - word-wrap: break-word; /* IE 5.5+ */ - text-indent: -53px; - padding-left: 53px; - padding-bottom: 0px; - margin: 0px; - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; } div.line:after { @@ -212,51 +212,51 @@ div.line:after { } div.line.glow { - background-color: cyan; - box-shadow: 0 0 10px cyan; + background-color: cyan; + box-shadow: 0 0 10px cyan; } span.lineno { - padding-right: 4px; - text-align: right; - border-right: 2px solid #0F0; - background-color: #E8E8E8; + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; white-space: pre; } span.lineno a { - background-color: #D8D8D8; + background-color: #D8D8D8; } span.lineno a:hover { - background-color: #C8C8C8; + background-color: #C8C8C8; } .lineno { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } div.ah, span.ah { - background-color: black; - font-weight: bold; - color: #ffffff; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; - box-shadow: 2px 2px 3px #999; - -webkit-box-shadow: 2px 2px 3px #999; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000), color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); } div.classindex ul { @@ -269,126 +269,126 @@ div.classindex span.ai { } div.groupHeader { - margin-left: 16px; - margin-top: 12px; - font-weight: bold; + margin-left: 16px; + margin-top: 12px; + font-weight: bold; } div.groupText { - margin-left: 16px; - font-style: italic; + margin-left: 16px; + font-style: italic; } body { - background-color: white; - color: black; + background-color: white; + color: black; margin: 0; } div.contents { - margin-top: 10px; - margin-left: 12px; - margin-right: 8px; + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; } td.indexkey { - background-color: #E9F4F3; - font-weight: bold; - border: 1px solid #BFE0DD; - margin: 2px 0px 2px 0; - padding: 2px 10px; + background-color: #E9F4F3; + font-weight: bold; + border: 1px solid #BFE0DD; + margin: 2px 0px 2px 0; + padding: 2px 10px; white-space: nowrap; vertical-align: top; } td.indexvalue { - background-color: #E9F4F3; - border: 1px solid #BFE0DD; - padding: 2px 10px; - margin: 2px 0px; + background-color: #E9F4F3; + border: 1px solid #BFE0DD; + padding: 2px 10px; + margin: 2px 0px; } tr.memlist { - background-color: #ECF5F5; + background-color: #ECF5F5; } p.formulaDsp { - text-align: center; + text-align: center; } img.formulaDsp { - + } img.formulaInl { - vertical-align: middle; + vertical-align: middle; } div.center { - text-align: center; + text-align: center; margin-top: 0px; margin-bottom: 0px; padding: 0px; } div.center img { - border: 0px; + border: 0px; } address.footer { - text-align: right; - padding-right: 12px; + text-align: right; + padding-right: 12px; } img.footer { - border: 0px; - vertical-align: middle; + border: 0px; + vertical-align: middle; } /* @group Code Colorization */ span.keyword { - color: #008000 + color: #008000 } span.keywordtype { - color: #604020 + color: #604020 } span.keywordflow { - color: #e08000 + color: #e08000 } span.comment { - color: #800000 + color: #800000 } span.preprocessor { - color: #806020 + color: #806020 } span.stringliteral { - color: #002080 + color: #002080 } span.charliteral { - color: #008080 + color: #008080 } -span.vhdldigit { - color: #ff00ff +span.vhdldigit { + color: #ff00ff } -span.vhdlchar { - color: #000000 +span.vhdlchar { + color: #000000 } -span.vhdlkeyword { - color: #700070 +span.vhdlkeyword { + color: #700070 } -span.vhdllogic { - color: #ff0000 +span.vhdllogic { + color: #ff0000 } blockquote { @@ -402,85 +402,85 @@ blockquote { /* .search { - color: #003399; - font-weight: bold; + color: #003399; + font-weight: bold; } form.search { - margin-bottom: 0px; - margin-top: 0px; + margin-bottom: 0px; + margin-top: 0px; } input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; } */ td.tiny { - font-size: 75%; + font-size: 75%; } .dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid #9BCFCA; + padding: 4px; + border-collapse: collapse; + border: 1px solid #9BCFCA; } th.dirtab { - background: #E9F4F3; - font-weight: bold; + background: #E9F4F3; + font-weight: bold; } hr { - height: 0px; - border: none; - border-top: 1px solid #47948D; + height: 0px; + border: none; + border-top: 1px solid #47948D; } hr.footer { - height: 1px; + height: 1px; } /* @group Member Descriptions */ table.memberdecls { - border-spacing: 0px; - padding: 0px; + border-spacing: 0px; + padding: 0px; } .memberdecls td, .fieldtable tr { - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; } .memberdecls td.glow, .fieldtable tr.glow { - background-color: cyan; - box-shadow: 0 0 15px cyan; + background-color: cyan; + box-shadow: 0 0 15px cyan; } .mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F8FCFB; - border: none; - margin: 4px; - padding: 1px 0 0 8px; + background-color: #F8FCFB; + border: none; + margin: 4px; + padding: 1px 0 0 8px; } .mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: #555; + padding: 0px 8px 4px 8px; + color: #555; } .memSeparator { @@ -495,13 +495,13 @@ table.memberdecls { } .memItemRight { - width: 100%; + width: 100%; } .memTemplParams { - color: #438C85; + color: #438C85; white-space: nowrap; - font-size: 80%; + font-size: 80%; } /* @end */ @@ -511,19 +511,19 @@ table.memberdecls { /* Styles for detailed member documentation */ .memtitle { - padding: 8px; - border-top: 1px solid #A0D1CD; - border-left: 1px solid #A0D1CD; - border-right: 1px solid #A0D1CD; - border-top-right-radius: 4px; - border-top-left-radius: 4px; - margin-bottom: -1px; - background-image: url('nav_f.png'); - background-repeat: repeat-x; - background-color: #DFEFEE; - line-height: 1.25; - font-weight: 300; - float:left; + padding: 8px; + border-top: 1px solid #A0D1CD; + border-left: 1px solid #A0D1CD; + border-right: 1px solid #A0D1CD; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #DFEFEE; + line-height: 1.25; + font-weight: 300; + float:left; } .permalink @@ -534,29 +534,29 @@ table.memberdecls { } .memtemplate { - font-size: 80%; - color: #438C85; - font-weight: normal; - margin-left: 9px; + font-size: 80%; + color: #438C85; + font-weight: normal; + margin-left: 9px; } .memnav { - background-color: #E9F4F3; - border: 1px solid #9BCFCA; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; + background-color: #E9F4F3; + border: 1px solid #9BCFCA; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; } .mempage { - width: 100%; + width: 100%; } .memitem { - padding: 0; - margin-bottom: 10px; - margin-right: 5px; + padding: 0; + margin-bottom: 10px; + margin-right: 5px; -webkit-transition: box-shadow 0.5s linear; -moz-transition: box-shadow 0.5s linear; -ms-transition: box-shadow 0.5s linear; @@ -576,7 +576,7 @@ table.memberdecls { } .memname td { - vertical-align: bottom; + vertical-align: bottom; } .memproto, dl.reflist dt { @@ -601,14 +601,14 @@ table.memberdecls { } .overload { - font-family: "courier new",courier,monospace; - font-size: 65%; + font-family: "courier new", courier, monospace; + font-size: 65%; } .memdoc, dl.reflist dd { - border-bottom: 1px solid #A0D1CD; - border-left: 1px solid #A0D1CD; - border-right: 1px solid #A0D1CD; + border-bottom: 1px solid #A0D1CD; + border-left: 1px solid #A0D1CD; + border-right: 1px solid #A0D1CD; padding: 6px 10px 2px 10px; background-color: #FBFDFD; border-top-width: 0; @@ -639,19 +639,19 @@ dl.reflist dd { } .paramkey { - text-align: right; + text-align: right; } .paramtype { - white-space: nowrap; + white-space: nowrap; } .paramname { - color: #602020; - white-space: nowrap; + color: #602020; + white-space: nowrap; } .paramname em { - font-style: normal; + font-style: normal; } .paramname code { line-height: 14px; @@ -660,36 +660,36 @@ dl.reflist dd { .params, .retval, .exception, .tparams { margin-left: 0px; padding-left: 0px; -} +} .params .paramname, .retval .paramname { font-weight: bold; vertical-align: top; } - + .params .paramtype { font-style: italic; vertical-align: top; -} - +} + .params .paramdir { - font-family: "courier new",courier,monospace; + font-family: "courier new", courier, monospace; vertical-align: top; } table.mlabels { - border-spacing: 0px; + border-spacing: 0px; } td.mlabels-left { - width: 100%; - padding: 0px; + width: 100%; + padding: 0px; } td.mlabels-right { - vertical-align: bottom; - padding: 0px; - white-space: nowrap; + vertical-align: bottom; + padding: 0px; + white-space: nowrap; } span.mlabels { @@ -702,14 +702,14 @@ span.mlabel { border-left:1px solid #4DA19A; border-right:1px solid #BFE0DD; border-bottom:1px solid #BFE0DD; - text-shadow: none; - color: white; - margin-right: 4px; - padding: 2px 3px; - border-radius: 3px; - font-size: 7pt; - white-space: nowrap; - vertical-align: middle; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; } @@ -732,13 +732,13 @@ div.directory { .directory td { margin: 0px; padding: 0px; - vertical-align: top; + vertical-align: top; } .directory td.entry { white-space: nowrap; padding-right: 6px; - padding-top: 3px; + padding-top: 3px; } .directory td.entry a { @@ -752,18 +752,18 @@ div.directory { .directory td.desc { width: 100%; padding-left: 6px; - padding-right: 6px; - padding-top: 3px; - border-left: 1px solid rgba(0,0,0,0.05); + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0, 0, 0, 0.05); } .directory tr.even { - padding-left: 6px; - background-color: #F6FAFA; + padding-left: 6px; + background-color: #F6FAFA; } .directory img { - vertical-align: -30%; + vertical-align: -30%; } .directory .levels { @@ -777,7 +777,7 @@ div.directory { cursor: pointer; padding-left: 2px; padding-right: 2px; - color: #397671; + color: #397671; } .arrow { @@ -849,47 +849,47 @@ div.directory { } table.directory { - font: 400 14px Roboto,sans-serif; + font: 400 14px Roboto, sans-serif; } /* @end */ div.dynheader { margin-top: 8px; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } address { - font-style: normal; - color: #254E4A; + font-style: normal; + color: #254E4A; } table.doxtable caption { - caption-side: top; + caption-side: top; } table.doxtable { - border-collapse:collapse; + border-collapse:collapse; margin-top: 4px; margin-bottom: 4px; } table.doxtable td, table.doxtable th { - border: 1px solid #285350; - padding: 3px 7px 2px; + border: 1px solid #285350; + padding: 3px 7px 2px; } table.doxtable th { - background-color: #336A65; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; + background-color: #336A65; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; } table.fieldtable { @@ -927,8 +927,8 @@ table.fieldtable { .fieldtable td.fielddoc p:first-child { margin-top: 0px; -} - +} + .fieldtable td.fielddoc p:last-child { margin-bottom: 2px; } @@ -958,57 +958,57 @@ table.fieldtable { .tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: url('tab_b.png'); - z-index: 101; - overflow: hidden; - font-size: 13px; + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; } .navpath ul { - font-size: 11px; - background-image:url('tab_b.png'); - background-repeat:repeat-x; - background-position: 0 -5px; - height:30px; - line-height:30px; - color:#80C2BC; - border:solid 1px #BCDEDC; - overflow:hidden; - margin:0px; - padding:0px; + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#80C2BC; + border:solid 1px #BCDEDC; + overflow:hidden; + margin:0px; + padding:0px; } .navpath li { - list-style-type:none; - float:left; - padding-left:10px; - padding-right:15px; - background-image:url('bc_s.png'); - background-repeat:no-repeat; - background-position:right; - color:#316762; + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#316762; } .navpath li.navelem a { - height:32px; - display:block; - text-decoration: none; - outline: none; - color: #234A46; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #234A46; + font-family: 'Lucida Grande', Geneva, Helvetica, Arial, sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; } .navpath li.navelem a:hover { - color:#5DB1AA; + color:#5DB1AA; } .navpath li.footer @@ -1027,16 +1027,16 @@ table.fieldtable { div.summary { - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; -} + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} div.summary a { - white-space: nowrap; + white-space: nowrap; } table.classindex @@ -1047,34 +1047,34 @@ table.classindex margin-right: 3%; width: 94%; border: 0; - border-spacing: 0; + border-spacing: 0; padding: 0; } div.ingroups { - font-size: 8pt; - width: 50%; - text-align: left; + font-size: 8pt; + width: 50%; + text-align: left; } div.ingroups a { - white-space: nowrap; + white-space: nowrap; } div.header { background-image:url('nav_h.png'); background-repeat:repeat-x; - background-color: #F8FCFB; - margin: 0px; - border-bottom: 1px solid #BFE0DD; + background-color: #F8FCFB; + margin: 0px; + border-bottom: 1px solid #BFE0DD; } div.headertitle { - padding: 5px 5px 5px 10px; + padding: 5px 5px 5px 10px; } dl @@ -1085,8 +1085,8 @@ dl /* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ dl.section { - margin-left: 0px; - padding-left: 0px; + margin-left: 0px; + padding-left: 0px; } dl.note @@ -1146,22 +1146,22 @@ dl.bug } dl.section dd { - margin-bottom: 6px; + margin-bottom: 6px; } #projectlogo { - text-align: center; - vertical-align: bottom; - border-collapse: separate; + text-align: center; + vertical-align: bottom; + border-collapse: separate; } - + #projectlogo img -{ - border: 0px none; +{ + border: 0px none; } - + #projectalign { vertical-align: middle; @@ -1169,31 +1169,31 @@ dl.section dd { #projectname { - font: 300% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 2px 0px; + font: 300% Tahoma, Arial, sans-serif; + margin: 0px; + padding: 2px 0px; } - + #projectbrief { - font: 120% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; + font: 120% Tahoma, Arial, sans-serif; + margin: 0px; + padding: 0px; } #projectnumber { - font: 50% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; + font: 50% Tahoma, Arial, sans-serif; + margin: 0px; + padding: 0px; } #titlearea { - padding: 0px; - margin: 0px; - width: 100%; - border-bottom: 1px solid #4DA19A; + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #4DA19A; } .image @@ -1218,12 +1218,12 @@ dl.section dd { .caption { - font-weight: bold; + font-weight: bold; } div.zoom { - border: 1px solid #87C5BF; + border: 1px solid #87C5BF; } dl.citelist { @@ -1256,15 +1256,15 @@ div.toc { div.toc li { background: url("bdwn.png") no-repeat scroll 0 5px transparent; - font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + font: 10px/1.2 Verdana, DejaVu Sans, Geneva, sans-serif; margin-top: 5px; padding-left: 10px; padding-top: 2px; } div.toc h3 { - font: bold 12px/1.2 Arial,FreeSans,sans-serif; - color: #438C85; + font: bold 12px/1.2 Arial, FreeSans, sans-serif; + color: #438C85; border-bottom: 0 none; margin: 0; } @@ -1273,7 +1273,7 @@ div.toc ul { list-style: none outside none; border: medium none; padding: 0px; -} +} div.toc li.level1 { margin-left: 0px; @@ -1295,12 +1295,12 @@ div.toc li.level4 { font-weight: bold; color: gray; cursor: pointer; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } .inherit_header td { @@ -1324,24 +1324,24 @@ tr.heading h2 { } #powerTip { - cursor: default; - white-space: nowrap; - background-color: white; - border: 1px solid gray; - border-radius: 4px 4px 4px 4px; - box-shadow: 1px 1px 7px gray; - display: none; - font-size: smaller; - max-width: 80%; - opacity: 0.9; - padding: 1ex 1em 1em; - position: absolute; - z-index: 2147483647; + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; } #powerTip div.ttdoc { color: grey; - font-style: italic; + font-style: italic; } #powerTip div.ttname a { @@ -1359,132 +1359,132 @@ tr.heading h2 { #powerTip div { margin: 0px; padding: 0px; - font: 12px/16px Roboto,sans-serif; + font: 12px/16px Roboto, sans-serif; } #powerTip:before, #powerTip:after { - content: ""; - position: absolute; - margin: 0px; + content: ""; + position: absolute; + margin: 0px; } -#powerTip.n:after, #powerTip.n:before, -#powerTip.s:after, #powerTip.s:before, -#powerTip.w:after, #powerTip.w:before, -#powerTip.e:after, #powerTip.e:before, +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, #powerTip.ne:after, #powerTip.ne:before, #powerTip.se:after, #powerTip.se:before, #powerTip.nw:after, #powerTip.nw:before, #powerTip.sw:after, #powerTip.sw:before { - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; } -#powerTip.n:after, #powerTip.s:after, -#powerTip.w:after, #powerTip.e:after, +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, #powerTip.nw:after, #powerTip.ne:after, #powerTip.sw:after, #powerTip.se:after { - border-color: rgba(255, 255, 255, 0); + border-color: rgba(255, 255, 255, 0); } -#powerTip.n:before, #powerTip.s:before, -#powerTip.w:before, #powerTip.e:before, +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, #powerTip.nw:before, #powerTip.ne:before, #powerTip.sw:before, #powerTip.se:before { - border-color: rgba(128, 128, 128, 0); + border-color: rgba(128, 128, 128, 0); } -#powerTip.n:after, #powerTip.n:before, +#powerTip.n:after, #powerTip.n:before, #powerTip.ne:after, #powerTip.ne:before, #powerTip.nw:after, #powerTip.nw:before { - top: 100%; + top: 100%; } #powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: #ffffff; - border-width: 10px; - margin: 0px -10px; + border-top-color: #ffffff; + border-width: 10px; + margin: 0px -10px; } #powerTip.n:before { - border-top-color: #808080; - border-width: 11px; - margin: 0px -11px; + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; } #powerTip.n:after, #powerTip.n:before { - left: 50%; + left: 50%; } #powerTip.nw:after, #powerTip.nw:before { - right: 14px; + right: 14px; } #powerTip.ne:after, #powerTip.ne:before { - left: 14px; + left: 14px; } -#powerTip.s:after, #powerTip.s:before, +#powerTip.s:after, #powerTip.s:before, #powerTip.se:after, #powerTip.se:before, #powerTip.sw:after, #powerTip.sw:before { - bottom: 100%; + bottom: 100%; } #powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: #ffffff; - border-width: 10px; - margin: 0px -10px; + border-bottom-color: #ffffff; + border-width: 10px; + margin: 0px -10px; } #powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { - border-bottom-color: #808080; - border-width: 11px; - margin: 0px -11px; + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; } #powerTip.s:after, #powerTip.s:before { - left: 50%; + left: 50%; } #powerTip.sw:after, #powerTip.sw:before { - right: 14px; + right: 14px; } #powerTip.se:after, #powerTip.se:before { - left: 14px; + left: 14px; } #powerTip.e:after, #powerTip.e:before { - left: 100%; + left: 100%; } #powerTip.e:after { - border-left-color: #ffffff; - border-width: 10px; - top: 50%; - margin-top: -10px; + border-left-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; } #powerTip.e:before { - border-left-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; } #powerTip.w:after, #powerTip.w:before { - right: 100%; + right: 100%; } #powerTip.w:after { - border-right-color: #ffffff; - border-width: 10px; - top: 50%; - margin-top: -10px; + border-right-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; } #powerTip.w:before { - border-right-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; } @media print diff --git a/Libraries/FCL/doc/output/html/dynsections.js b/Libraries/FCL/doc/output/html/dynsections.js index 85e18369095..317193fff5f 100644 --- a/Libraries/FCL/doc/output/html/dynsections.js +++ b/Libraries/FCL/doc/output/html/dynsections.js @@ -9,13 +9,13 @@ function toggleVisibility(linkObj) content.hide(); summary.show(); $(linkObj).addClass('closed').removeClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + $(trigger).attr('src', src.substring(0, src.length-8)+'closed.png'); } else { content.show(); summary.hide(); $(linkObj).removeClass('closed').addClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } + $(trigger).attr('src', src.substring(0, src.length-10)+'open.png'); + } return false; } @@ -87,11 +87,11 @@ function toggleInherit(id) var img = $('tr.inherit_header.'+id+' img'); var src = $(img).attr('src'); if (rows.filter(':first').is(':visible')===true) { - rows.css('display','none'); - $(img).attr('src',src.substring(0,src.length-8)+'closed.png'); + rows.css('display', 'none'); + $(img).attr('src', src.substring(0, src.length-8)+'closed.png'); } else { - rows.css('display','table-row'); // using show() causes jump in firefox - $(img).attr('src',src.substring(0,src.length-10)+'open.png'); + rows.css('display', 'table-row'); // using show() causes jump in firefox + $(img).attr('src', src.substring(0, src.length-10)+'open.png'); } } diff --git a/Libraries/FCL/doc/output/html/group__appbx.html b/Libraries/FCL/doc/output/html/group__appbx.html index d822a891115..5af7df5ed0f 100644 --- a/Libraries/FCL/doc/output/html/group__appbx.html +++ b/Libraries/FCL/doc/output/html/group__appbx.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@
    -
    @@ -76,7 +76,7 @@
    -
    diff --git a/Libraries/FCL/doc/output/html/group__hypervisor.html b/Libraries/FCL/doc/output/html/group__hypervisor.html index b164b6f3aaa..3ee9a256ad2 100644 --- a/Libraries/FCL/doc/output/html/group__hypervisor.html +++ b/Libraries/FCL/doc/output/html/group__hypervisor.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@
    -
    @@ -76,7 +76,7 @@
    -
    @@ -99,7 +99,7 @@
    - + @@ -108,7 +108,7 @@ - +

    Macros

    #define UVISOR_BOX_CONFIG(box_nameconst UvBoxAclItem module_acl_listuint32_t module_stack_size, struct __your_context, verif_key_id)
    #define UVISOR_BOX_CONFIG(box_nameconst UvBoxAclItem module_acl_listuint32_t module_stack_size, struct __your_context, verif_key_id)
     Secure box configuration. More...
     
    #define UVISOR_BOX_NAMESPACE(static const char const namespace)
    #define UVISOR_SET_MODE(uvisor_mode)
     Set mode for the uVisor [temporary]. More...
     
    #define UVISOR_SET_MODE_ACL(uvisor_mode, const UvBoxAcl main_box_acl_list)
    #define UVISOR_SET_MODE_ACL(uvisor_mode, const UvBoxAcl main_box_acl_list)
     Set mode for the uVisor and provide background ACLs for the main box. More...
     
    @@ -323,7 +323,7 @@

    #include "uvisor-lib/uvisor-lib.h"
    // Configure the secure box.
    UVISOR_BOX_NAMESPACE("com.example.my-box-name");
    UVISOR_BOX_CONFIG(my_box_name, UVISOR_BOX_STACK_SIZE);
    +

    Example:

    #include "uvisor-lib/uvisor-lib.h"
    // Configure the secure box.
    UVISOR_BOX_NAMESPACE("com.example.my-box-name");
    UVISOR_BOX_CONFIG(my_box_name, UVISOR_BOX_STACK_SIZE);
    @@ -405,7 +405,7 @@

    #include "uvisor-lib/uvisor-lib.h"
    // Create background ACLs for the main box.
    static const UvBoxAclItem g_background_acl[] = {
    {UART0, sizeof(*UART0), UVISOR_TACL_PERIPHERAL},
    {UART1, sizeof(*UART1), UVISOR_TACL_PERIPHERAL},
    {PIT, sizeof(*PIT), UVISOR_TACL_PERIPHERAL},
    };
    // Set the uVisor mode.
    UVISOR_SET_MODE_ACL(UVISOR_ENABLED, g_background_acl);

    Note:

    +
    #include "uvisor-lib/uvisor-lib.h"
    // Create background ACLs for the main box.
    static const UvBoxAclItem g_background_acl[] = {
    {UART0, sizeof(*UART0), UVISOR_TACL_PERIPHERAL},
    {UART1, sizeof(*UART1), UVISOR_TACL_PERIPHERAL},
    {PIT, sizeof(*PIT), UVISOR_TACL_PERIPHERAL},
    };
    // Set the uVisor mode.
    UVISOR_SET_MODE_ACL(UVISOR_ENABLED, g_background_acl);

    Note:

    1. This macro is only needed temporarily (uVisor disabled by default) and will be removed in the future.
    2. This macro must be used only once in the top level yotta executable.
    3. diff --git a/Libraries/FCL/doc/output/html/group__os.html b/Libraries/FCL/doc/output/html/group__os.html index e8f1c8e9f92..4e12fb740a4 100644 --- a/Libraries/FCL/doc/output/html/group__os.html +++ b/Libraries/FCL/doc/output/html/group__os.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@ -
      @@ -76,7 +76,7 @@
      -
      diff --git a/Libraries/FCL/doc/output/html/group__pcibx.html b/Libraries/FCL/doc/output/html/group__pcibx.html index e73b7d051f5..d8b01dcd954 100644 --- a/Libraries/FCL/doc/output/html/group__pcibx.html +++ b/Libraries/FCL/doc/output/html/group__pcibx.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@
      -
      @@ -76,7 +76,7 @@
      -
      diff --git a/Libraries/FCL/doc/output/html/group__pcibx___m_s_r.html b/Libraries/FCL/doc/output/html/group__pcibx___m_s_r.html index f5488227f3d..c3431090e5a 100644 --- a/Libraries/FCL/doc/output/html/group__pcibx___m_s_r.html +++ b/Libraries/FCL/doc/output/html/group__pcibx___m_s_r.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@
      -
      @@ -76,7 +76,7 @@
      -
      diff --git a/Libraries/FCL/doc/output/html/group__pcibx___p_i_n.html b/Libraries/FCL/doc/output/html/group__pcibx___p_i_n.html index efd8937776e..0cfff95e923 100644 --- a/Libraries/FCL/doc/output/html/group__pcibx___p_i_n.html +++ b/Libraries/FCL/doc/output/html/group__pcibx___p_i_n.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@
      -
      @@ -76,7 +76,7 @@
      -
      diff --git a/Libraries/FCL/doc/output/html/group__pcibx__sc.html b/Libraries/FCL/doc/output/html/group__pcibx__sc.html index f8e2c148c29..43acb80066e 100644 --- a/Libraries/FCL/doc/output/html/group__pcibx__sc.html +++ b/Libraries/FCL/doc/output/html/group__pcibx__sc.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@
      -
      @@ -76,7 +76,7 @@
      -
      diff --git a/Libraries/FCL/doc/output/html/group__smbx.html b/Libraries/FCL/doc/output/html/group__smbx.html index 69b6e3c2c8f..d601d062a2c 100644 --- a/Libraries/FCL/doc/output/html/group__smbx.html +++ b/Libraries/FCL/doc/output/html/group__smbx.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@
      -
      @@ -76,7 +76,7 @@
      -
      diff --git a/Libraries/FCL/doc/output/html/group__ssbx.html b/Libraries/FCL/doc/output/html/group__ssbx.html index 82409f8fd53..265bd3b50f7 100644 --- a/Libraries/FCL/doc/output/html/group__ssbx.html +++ b/Libraries/FCL/doc/output/html/group__ssbx.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@
      -
      @@ -76,7 +76,7 @@
      -
      diff --git a/Libraries/FCL/doc/output/html/group__ssbx___crypto.html b/Libraries/FCL/doc/output/html/group__ssbx___crypto.html index 62c663ac735..db8d19ae79c 100644 --- a/Libraries/FCL/doc/output/html/group__ssbx___crypto.html +++ b/Libraries/FCL/doc/output/html/group__ssbx___crypto.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@
      -
      @@ -76,7 +76,7 @@
      -
      diff --git a/Libraries/FCL/doc/output/html/group__ssbx___i_o.html b/Libraries/FCL/doc/output/html/group__ssbx___i_o.html index 6aee96ba0bf..b97b9f4da21 100644 --- a/Libraries/FCL/doc/output/html/group__ssbx___i_o.html +++ b/Libraries/FCL/doc/output/html/group__ssbx___i_o.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@
      -
      @@ -76,7 +76,7 @@
      -
      @@ -259,7 +259,7 @@

      Parameters

    - +
    destThe destination
    [in,out]lenThe key length
    [in, out]lenThe key length
    diff --git a/Libraries/FCL/doc/output/html/group__ssbx___key_management.html b/Libraries/FCL/doc/output/html/group__ssbx___key_management.html index 952a000f088..ac9c6cc6eef 100644 --- a/Libraries/FCL/doc/output/html/group__ssbx___key_management.html +++ b/Libraries/FCL/doc/output/html/group__ssbx___key_management.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@ -
    @@ -76,7 +76,7 @@
    -
    diff --git a/Libraries/FCL/doc/output/html/group__ssbx___main.html b/Libraries/FCL/doc/output/html/group__ssbx___main.html index 92390e0769b..b0cc4ec8a17 100644 --- a/Libraries/FCL/doc/output/html/group__ssbx___main.html +++ b/Libraries/FCL/doc/output/html/group__ssbx___main.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@
    -
    @@ -76,7 +76,7 @@
    -
    diff --git a/Libraries/FCL/doc/output/html/group__ssbx___mem.html b/Libraries/FCL/doc/output/html/group__ssbx___mem.html index f9a301a4370..963ab0d89dc 100644 --- a/Libraries/FCL/doc/output/html/group__ssbx___mem.html +++ b/Libraries/FCL/doc/output/html/group__ssbx___mem.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@
    -
    @@ -76,7 +76,7 @@
    -
    diff --git a/Libraries/FCL/doc/output/html/index.html b/Libraries/FCL/doc/output/html/index.html index 4ac77b98d5e..529d533ee70 100644 --- a/Libraries/FCL/doc/output/html/index.html +++ b/Libraries/FCL/doc/output/html/index.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@
    -
    @@ -76,7 +76,7 @@
    -
    @@ -450,7 +450,7 @@

    Sensitive data can be stored in the MAX325xx’s battery backed RAM which gets immediately erased in case of tampering detection (physical tampering, environmental perturbations). The NVSRAM is leveraged by the Key Manager to store long-term secret/private keys that get erased whenever the device is under attack.

    Sensors

    -

    Environment perturbations (temperature, glitches, die shield, external dynamic sensors,...) lead to the generation of a non maskable interrupt that stops the execution of the platform's software and thus prevents running away into a non secure mode. Sensors are activated before the security hypervisor initialization in order to guarantee the physical integrity of the platform before running further code.

    +

    Environment perturbations (temperature, glitches, die shield, external dynamic sensors, ...) lead to the generation of a non maskable interrupt that stops the execution of the platform's software and thus prevents running away into a non secure mode. Sensors are activated before the security hypervisor initialization in order to guarantee the physical integrity of the platform before running further code.

    Read-Only Memory, One-Time programmable memory

    The Secure Boot ROM is non modifiable and thus inherently trusted, and its configuration or the code verification keys are in a write-once memory (OTP) and cannot be changed. The ROM and the OTP memory areas integrity is verified (Checksum) before use.

    diff --git a/Libraries/FCL/doc/output/html/jquery.js b/Libraries/FCL/doc/output/html/jquery.js index f5343eda922..eabf5822855 100644 --- a/Libraries/FCL/doc/output/html/jquery.js +++ b/Libraries/FCL/doc/output/html/jquery.js @@ -13,14 +13,14 @@ * * Date: Mon Nov 21 21:11:03 2011 -0500 */ -(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
    a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
    ";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
    t
    ";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
    ";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); +(function(bb, L){var av=bb.document, bu=bb.navigator, bl=bb.location;var b=(function(){var bF=function(b0, b1){return new bF.fn.init(b0, b1, bD)}, bU=bb.jQuery, bH=bb.$, bD, bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, bM=/\S/, bI=/^\s+/, bE=/\s+$/, bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/, bN=/^[\], :{}\s]*$/, bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, bJ=/(?:^|:|, )(?:\s*\[)+/g, by=/(webkit)[ \/]([\w.]+)/, bR=/(opera)(?:.*version)?[ \/]([\w.]+)/, bQ=/(msie) ([\w.]+)/, bS=/(mozilla)(?:.*? rv:([\w.]+))?/, bB=/-([a-z]|[0-9])/ig, bZ=/^-ms-/, bT=function(b0, b1){return(b1+"").toUpperCase()}, bX=bu.userAgent, bV, bC, e, bL=Object.prototype.toString, bG=Object.prototype.hasOwnProperty, bz=Array.prototype.push, bK=Array.prototype.slice, bO=String.prototype.trim, bv=Array.prototype.indexOf, bx={};bF.fn=bF.prototype={constructor:bF, init:function(b0, b4, b3){var b2, b5, b1, b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null, b0, null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0, b4, true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]], [b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this, b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0, this)}, selector:"", jquery:"1.7.1", length:0, size:function(){return this.length}, toArray:function(){return bK.call(this, 0)}, get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])}, pushStack:function(b1, b3, b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2, b1)}else{bF.merge(b2, b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2}, each:function(b1, b0){return bF.each(this, b1, b0)}, ready:function(b0){bF.bindReady();bC.add(b0);return this}, eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0, b0+1)}, first:function(){return this.eq(0)}, last:function(){return this.eq(-1)}, slice:function(){return this.pushStack(bK.apply(this, arguments), "slice", bK.call(arguments).join(", "))}, map:function(b0){return this.pushStack(bF.map(this, function(b2, b1){return b0.call(b2, b1, b2)}))}, end:function(){return this.prevObject||this.constructor(null)}, push:bz, sort:[].sort, splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9, b2, b0, b1, b6, b7, b5=arguments[0]||{}, b4=1, b3=arguments.length, b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av, [bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}}, bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready, 1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded", e, false);bb.addEventListener("load", bF.ready, false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange", e);bb.attachEvent("onload", bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}}, isFunction:function(b0){return bF.type(b0)==="function"}, isArray:Array.isArray||function(b0){return bF.type(b0)==="array"}, isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0}, isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)}, type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"}, isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2, "constructor")&&!bG.call(b2.constructor.prototype, "isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2, b0)}, isEmptyObject:function(b1){for(var b0 in b1){return false}return true}, error:function(b0){throw new Error(b0)}, parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW, "@").replace(bP, "]").replace(bJ, ""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)}, parseXML:function(b2){var b0, b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2, "text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0}, noop:function(){}, globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb, b1)})(b0)}}, camelCase:function(b0){return b0.replace(bZ, "ms-").replace(bB, bT)}, nodeName:function(b1, b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()}, each:function(b3, b6, b2){var b1, b4=0, b5=b3.length, b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1], b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments, 0):bG;if(!(--bw)){bC.resolveWith(bC, bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments, 0):bG;bC.notifyWith(bE, bB)}}if(e>1){for(;bv", submitBubbles:true, changeBubbles:true, focusinBubbles:false, deleteExpando:true, noCloneEvent:true, inlineBlockNeedsLayout:false, shrinkWrapBlocks:false, reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick", function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type", "radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked", "checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA, null)||{marginRight:0}).marginRight, 10)||0)===0}if(bv.attachEvent){for(by in {submit:1, change:1, focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB, "return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM, bU, bV, bT, bN, bO, bL, bS, bR, e, bP, bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
    ";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM, bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
    t
    ";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
    ";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5), doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ, bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/, aA=/([A-Z])/g;b.extend({cache:{}, uuid:0, expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g, ""), noData:{embed:true, object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", applet:true}, hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)}, data:function(bx, bv, bz, by){if(!b.acceptData(bx)){return}var bG, bA, bD, bE=b.expando, bC=typeof bv==="string", bF=bx.nodeType, e=bF?b.cache:bx, bw=bF?bx[bE]:bx[bE]&&bE, bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw], bv)}else{e[bw].data=b.extend(e[bw].data, bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD}, removeData:function(bx, bv, by){if(!b.acceptData(bx)){return}var bB, bA, bz, bC=b.expando, bD=bx.nodeType, e=bD?b.cache:bx, bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0, bz=bv.length;bA-1){return true}}return false}, val:function(bx){var e, bv, by, bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw, "value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU, ""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this), bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this, bA, bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB, function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this, bB, "value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}}, select:{get:function(e){var bA, bv, bz, bx, by=e.selectedIndex, bB=[], bC=e.options, bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}}, attrFn:{val:true, css:true, html:true, text:true, data:true, width:true, height:true, offset:true}, attr:function(bA, bx, bB, bz){var bw, e, by, bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA, bx, bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA, bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA, bB, bx))!==L){return bw}else{bA.setAttribute(bx, ""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA, bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}}, removeAttr:function(bx, bz){var by, bA, bv, e, bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i, n=/^([^\.]*)?(?:\.(.+))?$/, J=/\bhover(\.\S+)?\b/, aO=/^key/, bf=/^(?:mouse|contextmenu)|click/, T=/^(?:focusinfocus|focusoutblur)$/, U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/, Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv}, j=function(bw, e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))}, bt=function(e){return b.event.special.hover?e:e.replace(J, "mouseenter$1 mouseleave$1")};b.event={add:function(bx, bC, bJ, bA, by){var bD, bB, bK, bI, bH, bF, e, bG, bv, bz, bw, bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem, arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0, -1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG, bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv, bD, e[bC].handle.elem, true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA, bD)===false){return}bB=[[bA, bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH, bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb, bI])}}for(bC=0;bCbA){bH.push({elem:this, matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e, null, bx, bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); /*! * Sizzle CSS Selector Engine * Copyright 2011, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * More information: http://sizzlejs.com/ */ -(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

    ";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
    ";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
    ","
    "]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
    ").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*! +(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~, (\[\\]+)+|[>+~])(\s*, \s*)?((?:.|\r|\n)*)/g, bC="sizcache"+(Math.random()+"").replace(".", ""), bI=0, bL=Object.prototype.toString, bB=false, bA=true, bK=/\\/g, bO=/\r\n/g, bQ=/\W/;[0, 0].sort(function(){bA=false;return 0});var by=function(bV, e, bY, bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS, b3, b6, bR, b2, b5, b4, bX, bU=true, bT=by.isXML(e), bW=[], b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1], e, bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(), e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV, b3, bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(), e, bT);e=b2.expr?by.filter(b2.expr, b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(), set:bF(bZ)}:by.find(bW.pop(), bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e, bT);b3=b2.expr?by.filter(b2.expr, b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6, b4, bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY, b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e, b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6, bY)}if(bR){by(bR, b1, bY, bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX, e, bY){var bW, bS, bU, bT, bV, bR;if(!bX){return[]}for(bS=0, bU=bE.order.length;bS":function(bW, bR){var bV, bU=typeof bR==="string", bS=0, e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false}, ID:function(e){return e[1].replace(bK, "")}, TAG:function(bR, e){return bR[1].replace(bK, "").toLowerCase()}, CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g, "");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e}, ATTR:function(bU, bR, bS, e, bV, bW){var bT=bU[1]=bU[1].replace(bK, "");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK, "");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU}, PSEUDO:function(bU, bR, bS, e, bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3], null, null, bR)}else{var bT=by.filter(bU[3], bR, bS, true^bV);if(!bS){e.push.apply(e, bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU}, POS:function(e){e.unshift(true);return e}}, filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"}, disabled:function(e){return e.disabled===true}, checked:function(e){return e.checked===true}, selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true}, parent:function(e){return !!e.firstChild}, empty:function(e){return !e.firstChild}, has:function(bS, bR, e){return !!by(e[3], bS).length}, header:function(e){return(/h\d/i).test(e.nodeName)}, text:function(bS){var e=bS.getAttribute("type"), bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)}, radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type}, checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type}, file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type}, password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type}, submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type}, image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type}, reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type}, button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"}, input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)}, focus:function(e){return e===e.ownerDocument.activeElement}}, setFilters:{first:function(bR, e){return e===0}, last:function(bS, bR, e, bT){return bR===bT.length-1}, even:function(bR, e){return e%2===0}, odd:function(bR, e){return e%2===1}, lt:function(bS, bR, e){return bRe[3]-0}, nth:function(bS, bR, e){return e[3]-0===bR}, eq:function(bS, bR, e){return e[3]-0===bR}}, filter:{PSEUDO:function(bS, bX, bW, bY){var e=bX[1], bR=bE.filters[e];if(bR){return bR(bS, bW, bX, bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0, bU=bT.length;bV=0)}}}, ID:function(bR, e){return bR.nodeType===1&&bR.getAttribute("id")===e}, TAG:function(bR, e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e}, CLASS:function(bR, e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1}, ATTR:function(bV, bT){var bS=bT[1], e=by.attr?by.attr(bV, bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS), bW=e+"", bU=bT[2], bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0, bR.length+1)===bR+"-":false}, POS:function(bU, bR, bS, bV){var e=bR[2], bT=bE.setFilters[e];if(bT){return bT(bU, bS, bR, bV)}}}};var bD=bE.match.POS, bx=function(bR, e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g, bx))}var bF=function(bR, e){bR=Array.prototype.slice.call(bR, 0);if(e){e.push.apply(e, bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes, 0)[0].nodeType}catch(bP){bF=function(bU, bT){var bS=0, bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR, bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR, e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU, bV, bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV, bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR, bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href", 2)}}e=null})();if(av.querySelectorAll){(function(){var e=by, bT=av.createElement("div"), bS="__sizzle__";bT.innerHTML="

    ";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4, bV, bZ, b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4), bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]), bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body], bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY], bZ)}}else{return bF([], bZ)}}}try{return bF(bV.querySelectorAll(b4), bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV, bX=bV.getAttribute("id"), bU=bX||bS, b6=bV.parentNode, b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id", bU)}else{bU=bU.replace(/'/g, "\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4), bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4, bV, bZ, b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement, bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"), "div"), bR=false;try{bS.call(av.documentElement, "[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW, bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW, bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY, null, null, [bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
    ";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1, 0, "CLASS");bE.find.CLASS=function(bR, bS, bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR, bW, bV, bZ, bX, bY){for(var bT=0, bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR, e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR, e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS, e, bW){var bV, bX=[], bU="", bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO, "")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0, bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e, this).length>0:this.filter(e).length>0)}, closest:function(by, bx){var bv=[], bw, e, bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz, by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv, "closest", by)}, index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0], b(e))}return b.inArray(e.jquery?e[0]:e, this)}, add:function(e, bv){var bx=typeof e==="string"?b(e, bv):b.makeArray(e&&e.nodeType?[e]:e), bw=b.merge(this.get(), bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))}, andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null}, parents:function(e){return b.dir(e, "parentNode")}, parentsUntil:function(bv, e, bw){return b.dir(bv, "parentNode", bw)}, next:function(e){return b.nth(e, 2, "nextSibling")}, prev:function(e){return b.nth(e, 2, "previousSibling")}, nextAll:function(e){return b.dir(e, "nextSibling")}, prevAll:function(e){return b.dir(e, "previousSibling")}, nextUntil:function(bv, e, bw){return b.dir(bv, "nextSibling", bw)}, prevUntil:function(bv, e, bw){return b.dir(bv, "previousSibling", bw)}, siblings:function(e){return b.sibling(e.parentNode.firstChild, e)}, children:function(e){return b.sibling(e.firstChild)}, contents:function(e){return b.nodeName(e, "iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}}, function(e, bv){b.fn[e]=function(by, bw){var bx=b.map(this, bv, by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw, bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx, e, P.call(arguments).join(", "))}});b.extend({filter:function(bw, e, bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0], bw)?[e[0]]:[]:b.find.matches(bw, e)}, dir:function(bw, bv, by){var e=[], bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e}, nth:function(by, e, bw, bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by}, sibling:function(bw, bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx, bw, e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx, function(bz, by){var bA=!!bw.call(bz, by, bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx, function(bz, by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx, function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw, bv, !e)}else{bw=b.filter(bw, bv)}}}}return b.grep(bx, function(bz, by){return(b.inArray(bz, bw)>=0)===e})}function a(e){var bw=aR.split("|"), bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", ag=/ jQuery\d+="(?:\d+|null)"/g, ar=/^\s+/, R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, d=/<([\w:]+)/, w=/
    ", ""], legend:[1, "
    ", "
    "], thead:[1, "
    ", "
    "], tr:[2, "", "
    "], td:[3, "", "
    "], col:[2, "", "
    "], area:[1, "", ""], _default:[0, "", ""]}, ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1, "div
    ", "
    "]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this, bw, bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)}, wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this, bw))})}if(this[0]){var bv=b(e, this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this}, wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this, bv))})}return this.each(function(){var bv=b(this), bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})}, wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this, bw):e)})}, unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this, "body")){b(this).replaceWith(this.childNodes)}}).end()}, append:function(){return this.domManip(arguments, true, function(e){if(this.nodeType===1){this.appendChild(e)}})}, prepend:function(){return this.domManip(arguments, true, function(e){if(this.nodeType===1){this.insertBefore(e, this.firstChild)}})}, before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments, false, function(bv){this.parentNode.insertBefore(bv, this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e, this.toArray());return this.pushStack(e, "before", arguments)}}}, after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments, false, function(bv){this.parentNode.insertBefore(bv, this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this, "after", arguments);e.push.apply(e, b.clean(arguments));return e}}}, remove:function(e, bx){for(var bv=0, bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e, [bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this}, empty:function(){for(var e=0, bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this}, clone:function(bv, e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this, bv, e)})}, html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag, ""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["", ""])[1].toLowerCase()]){bx=bx.replace(R, "<$1>");try{for(var bw=0, bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz, e, bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"), az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by, bA, bw){var e, bv, bx, bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by, bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx], bv[bx])}}}if(bA){t(by, bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx], bv[bx])}}}e=bv=null;return bz}, clean:function(bw, by, bH, bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[], bB;for(var bE=0, bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R, "<$1>");var bK=(d.exec(bz)||["", ""])[1].toLowerCase(), bx=ax[bK]||ax._default, bD=bx[0], bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz), bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB], "tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]), bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv, e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""}, set:function(by, bz){var bx=by.style, bv=by.currentStyle, e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"", bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak, ""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak, e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw, bv){var e;b.swap(bw, {display:"inline-block"}, function(){if(bv){e=Z(bw, "margin-right", "marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by, bw){var bv, bx, e;bw=bw.replace(z, "-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by, null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement, by)){bv=b.style(by, bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz, bw){var bA, e, by, bv=bz.currentStyle&&bz.currentStyle[bw], bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by, bw, bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight, bz=bw==="width"?an:a1, bx=0, e=bz.length;if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi, q=/^(?:select|textarea)/i, h=/\s+/, br=/([?&])_=[^&]*/, K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/, A=b.fn.load, aa={}, r={}, aE, s, aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by, bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h), bw=0, bz=bx.length, bv, bB, bC;for(;bw=0){var e=bw.slice(by, bw.length);bw=bw.slice(0, by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz, b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw, type:bx, dataType:"html", data:bz, complete:function(bC, bB, bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
    ").append(bD.replace(a6, "")).find(e):bD)}if(bA){bv.each(bA, [bD, bB, bC])}}});return this}, serialize:function(){return b.param(this.serializeArray())}, serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e, bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw, function(by, bx){return{name:bv.name, value:by.replace(bs, "\r\n")}}):{name:bv.name, value:bw.replace(bs, "\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function(e, bv){b.fn[bv]=function(bw){return this.on(bv, bw)}});b.each(["get", "post"], function(e, bv){b[bv]=function(bw, by, bz, bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv, url:bw, data:by, success:bz, dataType:bx})}});b.extend({getScript:function(e, bv){return b.get(e, L, bv, "script")}, getJSON:function(e, bv, bw){return b.get(e, bv, bw, "json")}, ajaxSetup:function(bv, e){if(e){am(bv, b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv, e);return bv}, ajaxSettings:{url:aE, isLocal:aM.test(s[1]), global:true, type:"GET", contentType:"application/x-www-form-urlencoded", processData:true, async:true, accepts:{xml:"application/xml, text/xml", html:"text/html", text:"text/plain", json:"application/json, text/javascript", "*":aV}, contents:{xml:/xml/, html:/html/, json:/json/}, responseFields:{xml:"responseXML", text:"responseText"}, converters:{"* text":bb.String, "text html":true, "text json":b.parseJSON, "text xml":b.parseXML}, flatOptions:{context:true, url:true}}, ajaxPrefilter:f(aa), ajaxTransport:f(r), ajax:function(bz, bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({}, bx), bS=bD.context||bD, bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event, bR=b.Deferred(), bN=b.Callbacks("once memory"), bB=bD.statusCode||{}, bC, bH={}, bO={}, bQ, by, bL, bE, bI, bA=0, bw, bK, bJ={readyState:0, setRequestHeader:function(bT, bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this}, getAllResponseHeaders:function(){return bA===2?bQ:null}, getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e}, overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this}, abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0, e);return this}};function bF(bZ, bU, b0, bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT, b4, b3, bX=bU, bY=b0?bj(bD, bJ, b0):L, bV, b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD, bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS, [b4, bX, bJ])}else{bR.rejectWith(bS, [bJ, bX, b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"), [bJ, bD, bT?b4:b3])}bN.fireWith(bS, [bJ, bX]);if(bw){bG.trigger("ajaxComplete", [bJ, bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e], bT[e]]}}else{e=bT[bJ.status];bJ.then(e, e)}}return this};bD.url=((bz||bD.url)+"").replace(bq, "").replace(c, s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data, bD.traditional)}aW(aa, bD, bx, bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++ ===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(), bP=bD.url.replace(br, "$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type", bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since", b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match", b.etag[bC])}}bJ.setRequestHeader("Accept", bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK, bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS, bJ, bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1, error:1, complete:1}){bJ[bK](bD[bK])}bL=aW(r, bD, bx, bJ);if(!bL){bF(-1, "No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend", [bJ, bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")}, bD.timeout)}try{bA=1;bL.send(bH, bF)}catch(bM){if(bA<2){bF(-1, bM)}else{throw bM}}}return bJ}, param:function(e, bw){var bv=[], by=function(bz, bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e, function(){by(this.name, this.value)})}else{for(var bx in e){v(bx, e[bx], bw, by)}}return bv.join("&").replace(k, "+")}});function v(bw, by, bv, bx){if(b.isArray(by)){b.each(by, function(bA, bz){if(bv||ap.test(bw)){bx(bw, bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]", bz, bv, bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]", by[e], bv, bx)}}else{bx(bw, by)}}}b.extend({active:0, lastModified:{}, etag:{}});function bj(bD, bC, bz){var bv=bD.contents, bB=bD.dataTypes, bw=bD.responseFields, by, bA, bx, e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH, bz){if(bH.dataFilter){bz=bH.dataFilter(bz, bH.dataType)}var bD=bH.dataTypes, bG={}, bA, bE, bw=bD.length, bB, bC=bD[0], bx, by, bF, bv, e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["", "X", "Y"], function(bC, bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz, bA, bw.orig[bA]);b.removeData(bz, "fxshow"+bA, true);b.removeData(bz, "toggle"+bA, true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state, bB, 0, 1, bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx, {tick:function(){var bw, bv=b.timers, e=0;for(;e").appendTo(e), bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv, "display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i, ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0], bB;if(bI){return this.each(function(e){b.offset.setOffset(this, bI, e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument, bw=bH.documentElement;if(!bB||!b.contains(bw, by)){return bB?{top:bB.top, left:bB.left}:{top:0, left:0}}var bC=bH.body, bD=aK(bH), bA=bw.clientTop||bC.clientTop||0, bE=bw.clientLeft||bC.clientLeft||0, bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop, bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft, bG=bB.top+bv-bA, bx=bB.left+bz-bE;return{top:bG, left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this, bF, bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC, bw=bz.offsetParent, bv=bz, bE=bz.ownerDocument, bx=bE.documentElement, bA=bE.body, bB=bE.defaultView, e=bB?bB.getComputedStyle(bz, null):bz.currentStyle, bD=bz.offsetTop, by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz, null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop, bA.scrollTop);by+=Math.max(bx.scrollLeft, bA.scrollLeft)}return{top:bD, left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop, bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e, "marginTop"))||0;bv+=parseFloat(b.css(e, "marginLeft"))||0}return{top:bw, left:bv}}, setOffset:function(bx, bG, bA){var bB=b.css(bx, "position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx), bv=bz.offset(), e=b.css(bx, "top"), bE=b.css(bx, "left"), bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto", [e, bE])>-1, bD={}, bC={}, bw, by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx, bA, bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx, bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0], bv=this.offsetParent(), bx=this.offset(), e=ad.test(bv[0].nodeName)?{top:0, left:0}:bv.offset();bx.top-=parseFloat(b.css(bw, "marginTop"))||0;bx.left-=parseFloat(b.css(bw, "marginLeft"))||0;e.top+=parseFloat(b.css(bv[0], "borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0], "borderLeftWidth"))||0;return{top:bx.top-e.top, left:bx.left-e.left}}, offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e, "position")==="static")){e=e.offsetParent}return e})}});b.each(["Left", "Top"], function(bv, e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx, by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(), bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height", "Width"], function(bv, e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx, bw, "padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx, bw, by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this, bE, bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e], bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e], bA.body["scroll"+e], bA.documentElement["scroll"+e], bA.body["offset"+e], bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA, bw), by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw, typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery", [], function(){return b})}})(window);/*! * jQuery UI 1.8.18 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) @@ -29,7 +29,7 @@ * * http://docs.jquery.com/UI */ -(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*! +(function(a, d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui, {version:"1.8.18", keyCode:{ALT:18, BACKSPACE:8, CAPS_LOCK:20, COMMA:188, COMMAND:91, COMMAND_LEFT:91, COMMAND_RIGHT:93, CONTROL:17, DELETE:46, DOWN:40, END:35, ENTER:13, ESCAPE:27, HOME:36, INSERT:45, LEFT:37, MENU:93, NUMPAD_ADD:107, NUMPAD_DECIMAL:110, NUMPAD_DIVIDE:111, NUMPAD_ENTER:108, NUMPAD_MULTIPLY:106, NUMPAD_SUBTRACT:109, PAGE_DOWN:34, PAGE_UP:33, PERIOD:190, RIGHT:39, SHIFT:16, SPACE:32, TAB:9, UP:38, WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr, _focus:a.fn.focus, focus:function(e, f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}}, e)}):this._focus.apply(this, arguments)}, scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this, "position", 1))&&(/(auto|scroll)/).test(a.curCSS(this, "overflow", 1)+a.curCSS(this, "overflow-y", 1)+a.curCSS(this, "overflow-x", 1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this, "overflow", 1)+a.curCSS(this, "overflow-y", 1)+a.curCSS(this, "overflow-x", 1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e}, zIndex:function(h){if(h!==d){return this.css("zIndex", h)}if(this.length){var f=a(this[0]), e, g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"), 10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0}, disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection", function(e){e.preventDefault()})}, enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width", "Height"], function(g, e){var f=e==="Width"?["Left", "Right"]:["Top", "Bottom"], h=e.toLowerCase(), k={innerWidth:a.fn.innerWidth, innerHeight:a.fn.innerHeight, outerWidth:a.fn.outerWidth, outerHeight:a.fn.outerHeight};function j(m, l, i, n){a.each(f, function(){l-=parseFloat(a.curCSS(m, "padding"+this, true))||0;if(i){l-=parseFloat(a.curCSS(m, "border"+this+"Width", true))||0}if(n){l-=parseFloat(a.curCSS(m, "margin"+this, true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h, j(this, i)+"px")})};a.fn["outer"+e]=function(i, l){if(typeof i!=="number"){return k["outer"+e].call(this, i)}return this.each(function(){a(this).css(h, j(this, i, true, l)+"px")})}});function c(g, e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode, h=i.name, f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this, "visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"], {data:function(g, f, e){return !!a.data(g, e[3])}, focusable:function(e){return c(e, !isNaN(a.attr(e, "tabindex")))}, tabbable:function(g){var e=a.attr(g, "tabindex"), f=isNaN(e);return(f||e>=0)&&c(g, !f)}});a(function(){var e=document.body, f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style, {minHeight:"100px", height:"auto", padding:0, borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui, {plugin:{add:function(f, g, j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g, j[e]])}}, call:function(e, g, f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g}, isOverAxis:function(f, e, g){return(f>e)&&(f<(e+g))}, isOver:function(j, f, i, h, e, g){return a.ui.isOverAxis(j, i, e)&&a.ui.isOverAxis(f, h, g)}})})(jQuery);/*! * jQuery UI Widget 1.8.18 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) @@ -38,7 +38,7 @@ * * http://docs.jquery.com/UI/Widget */ -(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*! +(function(b, d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0, h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e, f){return this.each(function(){if(!f){if(!e||b.filter(e, [this]).length){b("*", this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this), e, f)})}}b.widget=function(f, h, e){var g=f.split(".")[0], j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k, f)};b[g]=b[g]||{};b[g][f]=function(k, l){if(arguments.length){this._createWidget(k, l)}};var i=new h();i.options=b.extend(true, {}, i.options);b[g][f].prototype=b.extend(true, i, {namespace:g, widgetName:f, widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f, widgetBaseClass:j}, e);b.widget.bridge(f, b[g][f])};b.widget.bridge=function(f, e){b.fn[f]=function(i){var g=typeof i==="string", h=Array.prototype.slice.call(arguments, 1), j=this;i=!g&&h.length?b.extend.apply(null, [true, i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this, f), l=k&&b.isFunction(k[i])?k[i].apply(k, h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this, f);if(k){k.option(i||{})._init()}else{b.data(this, f, new e(i, this))}})}return j}};b.Widget=function(e, f){if(arguments.length){this._createWidget(e, f)}};b.Widget.prototype={widgetName:"widget", widgetEventPrefix:"", options:{disabled:false}, _createWidget:function(f, g){b.data(g, this.widgetName, this);this.element=b(g);this.options=b.extend(true, {}, this.options, this._getCreateOptions(), f);var e=this;this.element.bind("remove."+this.widgetName, function(){e.destroy()});this._create();this._trigger("create");this._init()}, _getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]}, _create:function(){}, _init:function(){}, destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")}, widget:function(){return this.element}, option:function(f, g){var e=f;if(arguments.length===0){return b.extend({}, this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this}, _setOptions:function(f){var e=this;b.each(f, function(g, h){e._setOption(g, h)});return this}, _setOption:function(e, f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled", f)}return this}, enable:function(){return this._setOption("disabled", false)}, disable:function(){return this._setOption("disabled", true)}, _trigger:function(e, f, g){var j, i, h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f, g);return !(b.isFunction(h)&&h.call(this.element[0], f, g)===false||f.isDefaultPrevented())}}})(jQuery);/*! * jQuery UI Mouse 1.8.18 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) @@ -48,24 +48,24 @@ * http://docs.jquery.com/UI/Mouse * * Depends: - * jquery.ui.widget.js + * jquery.ui.widget.js */ -(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
    ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
    ');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*! +(function(b, c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse", {options:{cancel:":input, option", distance:1, delay:0}, _mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName, function(e){return d._mouseDown(e)}).bind("click."+this.widgetName, function(e){if(true===b.data(e.target, d.widgetName+".preventClickEvent")){b.removeData(e.target, d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false}, _mouseDestroy:function(){this.element.unbind("."+this.widgetName)}, _mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this, g=(f.which==1), d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true}, this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target, this.widgetName+".preventClickEvent")){b.removeData(f.target, this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName, this._mouseMoveDelegate).bind("mouseup."+this.widgetName, this._mouseUpDelegate);f.preventDefault();a=true;return true}, _mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent, d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted}, _mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName, this._mouseMoveDelegate).unbind("mouseup."+this.widgetName, this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target, this.widgetName+".preventClickEvent", true)}this._mouseStop(d)}return false}, _mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX), Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)}, _mouseDelayMet:function(d){return this.mouseDelayMet}, _mouseStart:function(d){}, _mouseDrag:function(d){}, _mouseStop:function(d){}, _mouseCapture:function(d){return true}})})(jQuery);(function(c, d){c.widget("ui.resizable", c.ui.mouse, {widgetEventPrefix:"resize", options:{alsoResize:false, animate:false, animateDuration:"slow", animateEasing:"swing", aspectRatio:false, autoHide:false, containment:false, ghost:false, grid:false, handles:"e, s, se", helper:false, maxHeight:null, maxWidth:null, minHeight:10, minWidth:10, zIndex:1000}, _create:function(){var f=this, k=this.options;this.element.addClass("ui-resizable");c.extend(this, {_aspectRatio:!!(k.aspectRatio), aspectRatio:k.aspectRatio, originalElement:this.element, _proportionallyResizeElements:[], _helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
    ').css({position:this.element.css("position"), width:this.element.outerWidth(), height:this.element.outerHeight(), top:this.element.css("top"), left:this.element.css("left")}));this.element=this.element.parent().data("resizable", this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"), marginTop:this.originalElement.css("marginTop"), marginRight:this.originalElement.css("marginRight"), marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0, marginTop:0, marginRight:0, marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize", "none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static", zoom:1, display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle", this.element).length?"e, s, se":{n:".ui-resizable-n", e:".ui-resizable-e", s:".ui-resizable-s", w:".ui-resizable-w", se:".ui-resizable-se", sw:".ui-resizable-sw", ne:".ui-resizable-ne", nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n, e, s, w, se, sw, ne, nw"}var l=this.handles.split(", ");this.handles={};for(var g=0;g');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n], this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n], this.element), p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding", /ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m, p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle", this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()}, function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()}, destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"), width:f.outerWidth(), height:f.outerHeight(), top:f.css("top"), left:f.css("left")})).remove()}this.originalElement.css("resize", this.originalResizeStyle);e(this.originalElement);return this}, _mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g}, _mouseStart:function(g){var j=this.options, f=this.element.position(), e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(), left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute", top:f.top, left:f.left})}this._renderProxy();var k=b(this.helper.css("left")), h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k, top:h};this.size=this._helper?{width:e.outerWidth(), height:e.outerHeight()}:{width:e.width(), height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(), height:e.outerHeight()}:{width:e.width(), height:e.height()};this.originalPosition={left:k, top:h};this.sizeDiff={width:e.outerWidth()-e.width(), height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX, top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor", i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start", g);return true}, _mouseDrag:function(e){var h=this.helper, g=this.options, m={}, q=this, j=this.originalMousePosition, n=this.axis;var r=(e.pageX-j.left)||0, p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this, [e, r, p]), k=c.browser.msie&&c.browser.version<7, f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l, e)}l=this._respectSize(l, e);this._propagate("resize", e);h.css({top:this.position.top+"px", left:this.position.left+"px", width:this.size.width+"px", height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize", e, this.ui());return false}, _mouseStop:function(h){this.resizing=false;var i=this.options, m=this;if(this._helper){var g=this._proportionallyResizeElements, e=g.length&&(/textarea/i).test(g[0].nodeName), f=e&&c.ui.hasScroll(g[0], "left")?0:m.sizeDiff.height, k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k), height:(m.helper.height()-f)}, j=(parseInt(m.element.css("left"), 10)+(m.position.left-m.originalPosition.left))||null, l=(parseInt(m.element.css("top"), 10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n, {top:l, left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor", "auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop", h);if(this._helper){this.helper.remove()}return false}, _updateVirtualBoundaries:function(g){var j=this.options, i, h, f, k, e;e={minWidth:a(j.minWidth)?j.minWidth:0, maxWidth:a(j.maxWidth)?j.maxWidth:Infinity, minHeight:a(j.minHeight)?j.minHeight:0, maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width), s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width, p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q), e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l}, _proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7, g=(e?1:0), h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h, height:this.element.outerHeight()+h, position:"absolute", left:this.elementOffset.left-g+"px", top:this.elementOffset.top-g+"px", zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}}, _change:{e:function(g, f, e){return{width:this.originalSize.width+f}}, w:function(h, f, e){var j=this.options, g=this.originalSize, i=this.originalPosition;return{left:i.left+f, width:g.width-f}}, n:function(h, f, e){var j=this.options, g=this.originalSize, i=this.originalPosition;return{top:i.top+e, height:g.height-e}}, s:function(g, f, e){return{height:this.originalSize.height+e}}, se:function(g, f, e){return c.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [g, f, e]))}, sw:function(g, f, e){return c.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [g, f, e]))}, ne:function(g, f, e){return c.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [g, f, e]))}, nw:function(g, f, e){return c.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [g, f, e]))}}, _propagate:function(f, e){c.ui.plugin.call(this, f, [e, this.ui()]);(f!="resize"&&this._trigger(f, e, this.ui()))}, plugins:{}, ui:function(){return{originalElement:this.originalElement, element:this.element, helper:this.helper, position:this.position, size:this.size, originalSize:this.originalSize, originalPosition:this.originalPosition}}});c.extend(c.ui.resizable, {version:"1.8.18"});c.ui.plugin.add("resizable", "alsoResize", {start:function(f, g){var e=c(this).data("resizable"), i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize", {width:parseInt(k.width(), 10), height:parseInt(k.height(), 10), left:parseInt(k.css("left"), 10), top:parseInt(k.css("top"), 10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize, function(j){h(j)})}}else{h(i.alsoResize)}}, resize:function(g, i){var f=c(this).data("resizable"), j=f.options, h=f.originalSize, l=f.originalPosition;var k={height:(f.size.height-h.height)||0, width:(f.size.width-h.width)||0, top:(f.position.top-l.top)||0, left:(f.position.left-l.left)||0}, e=function(m, n){c(m).each(function(){var q=c(this), r=c(this).data("resizable-alsoresize"), p={}, o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width", "height"]:["width", "height", "top", "left"];c.each(o, function(s, u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize, function(m, n){e(m, n)})}else{e(j.alsoResize)}}, stop:function(e, f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable", "animate", {stop:function(i, n){var p=c(this).data("resizable"), j=p.options;var h=p._proportionallyResizeElements, e=h.length&&(/textarea/i).test(h[0].nodeName), f=e&&c.ui.hasScroll(h[0], "left")?0:p.sizeDiff.height, l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l), height:(p.size.height-f)}, k=(parseInt(p.element.css("left"), 10)+(p.position.left-p.originalPosition.left))||null, m=(parseInt(p.element.css("top"), 10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g, m&&k?{top:m, left:k}:{}), {duration:j.animateDuration, easing:j.animateEasing, step:function(){var o={width:parseInt(p.element.css("width"), 10), height:parseInt(p.element.css("height"), 10), top:parseInt(p.element.css("top"), 10), left:parseInt(p.element.css("left"), 10)};if(h&&h.length){c(h[0]).css({width:o.width, height:o.height})}p._updateCache(o);p._propagate("resize", i)}})}});c.ui.plugin.add("resizable", "containment", {start:function(f, r){var t=c(this).data("resizable"), j=t.options, l=t.element;var g=j.containment, k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0, top:0};t.containerPosition={left:0, top:0};t.parentData={element:c(document), left:0, top:0, width:c(document).width(), height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k), i=[];c(["Top", "Right", "Left", "Bottom"]).each(function(p, o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]), width:(n.innerWidth()-i[1])};var q=t.containerOffset, e=t.containerSize.height, m=t.containerSize.width, h=(c.ui.hasScroll(k, "left")?k.scrollWidth:m), s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k, left:q.left, top:q.top, width:h, height:s}}}, resize:function(g, q){var t=c(this).data("resizable"), i=t.options, f=t.containerSize, p=t.containerOffset, m=t.size, n=t.position, r=t._aspectRatio||g.shiftKey, e={top:0, left:0}, h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width), s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0), j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}}, stop:function(f, n){var q=c(this).data("resizable"), g=q.options, l=q.position, m=q.containerOffset, e=q.containerPosition, i=q.containerElement;var j=c(q.helper), r=j.offset(), p=j.outerWidth()-q.sizeDiff.width, k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left, width:p, height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left, width:p, height:k})}}});c.ui.plugin.add("resizable", "ghost", {start:function(g, h){var e=c(this).data("resizable"), i=e.options, f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25, display:"block", position:"relative", height:f.height, width:f.width, margin:0, left:0, top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)}, resize:function(f, g){var e=c(this).data("resizable"), h=e.options;if(e.ghost){e.ghost.css({position:"relative", height:e.size.height, width:e.size.width})}}, stop:function(f, g){var e=c(this).data("resizable"), h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable", "grid", {resize:function(e, m){var p=c(this).data("resizable"), h=p.options, k=p.size, i=p.originalSize, j=p.originalPosition, n=p.axis, l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid, h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1), f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e, 10)||0};var a=function(e){return !isNaN(parseInt(e, 10))}})(jQuery);/*! * jQuery hashchange event - v1.3 - 7/21/2010 * http://benalman.com/projects/jquery-hashchange-plugin/ - * + * * Copyright (c) 2010 "Cowboy" Ben Alman * Dual licensed under the MIT and GPL licenses. * http://benalman.com/about/license/ */ -(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$(' diff --git a/Libraries/FCL/doc/output/html/navtree.css b/Libraries/FCL/doc/output/html/navtree.css index d1ce7ce99be..85750c19fd5 100644 --- a/Libraries/FCL/doc/output/html/navtree.css +++ b/Libraries/FCL/doc/output/html/navtree.css @@ -43,7 +43,7 @@ #nav-tree .label { margin:0px; padding:0px; - font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + font: 12px 'Lucida Grande', Geneva, Helvetica, Arial, sans-serif; } #nav-tree .label a { @@ -67,7 +67,7 @@ #nav-tree { padding: 0px 0px; - background-color: #FAFAFF; + background-color: #FAFAFF; font-size:14px; overflow:auto; } diff --git a/Libraries/FCL/doc/output/html/navtree.js b/Libraries/FCL/doc/output/html/navtree.js index e6d31b00d4a..afba52e608c 100644 --- a/Libraries/FCL/doc/output/html/navtree.js +++ b/Libraries/FCL/doc/output/html/navtree.js @@ -6,7 +6,7 @@ function getData(varName) { var i = varName.lastIndexOf('/'); var n = i>=0 ? varName.substring(i+1) : varName; - return eval(n.replace(/\-/g,'_')); + return eval(n.replace(/\-/g, '_')); } function stripPath(uri) @@ -18,13 +18,13 @@ function stripPath2(uri) { var i = uri.lastIndexOf('/'); var s = uri.substring(i+1); - var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + var m = uri.substring(0, i+1).match(/\/d\w\/d\w\w\/$/); return m ? uri.substring(i-6) : s; } function hashValue() { - return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); + return $(location).attr('hash').substring(1).replace(/[^\w\-]/g, ''); } function hashUrl() @@ -34,7 +34,7 @@ function hashUrl() function pathName() { - return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:, .;\(\)]/g, ''); } function localStorageSupported() @@ -51,14 +51,14 @@ function localStorageSupported() function storeLink(link) { if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { - window.localStorage.setItem('navpath',link); + window.localStorage.setItem('navpath', link); } } function deleteLink() { if (localStorageSupported()) { - window.localStorage.setItem('navpath',''); + window.localStorage.setItem('navpath', ''); } } @@ -71,7 +71,7 @@ function cachedLink() } } -function getScript(scriptName,func,show) +function getScript(scriptName, func, show) { var head = document.getElementsByTagName("head")[0]; var script = document.createElement('script'); @@ -87,10 +87,10 @@ function getScript(scriptName,func,show) } } } - head.appendChild(script); + head.appendChild(script); } -function createIndent(o,domNode,node,level) +function createIndent(o, domNode, node, level) { var level=-1; var n = node; @@ -125,7 +125,7 @@ function createIndent(o,domNode,node,level) var animationInProgress = false; -function gotoAnchor(anchor,aname,updateLocation) +function gotoAnchor(anchor, aname, updateLocation) { var pos, docContent = $('#doc-content'); var ancParent = $(anchor.parent()); @@ -146,7 +146,7 @@ function gotoAnchor(anchor,aname,updateLocation) animationInProgress=true; docContent.animate({ scrollTop: pos + docContent.scrollTop() - docContent.offset().top - },Math.max(50,Math.min(500,dist)),function(){ + }, Math.max(50, Math.min(500, dist)), function(){ if (updateLocation) window.location.href=aname; animationInProgress=false; }); @@ -172,7 +172,7 @@ function newNode(o, po, text, link, childrenData, lastNode) node.labelSpan = document.createElement("span"); node.labelSpan.className = "label"; - createIndent(o,node.itemDiv,node,0); + createIndent(o, node.itemDiv, node, 0); node.itemDiv.appendChild(node.labelSpan); node.li.appendChild(node.itemDiv); @@ -183,13 +183,13 @@ function newNode(o, po, text, link, childrenData, lastNode) a.appendChild(node.label); if (link) { var url; - if (link.substring(0,1)=='^') { + if (link.substring(0, 1)=='^') { url = link.substring(1); link = url; } else { url = node.relpath+link; } - a.className = stripPath(link.replace('#',':')); + a.className = stripPath(link.replace('#', ':')); if (link.indexOf('#')!=-1) { var aname = '#'+link.split('#')[1]; var srcPage = stripPath(pathName()); @@ -202,10 +202,10 @@ function newNode(o, po, text, link, childrenData, lastNode) $('.item').removeClass('selected'); $('.item').removeAttr('id'); $(a).parent().parent().addClass('selected'); - $(a).parent().parent().attr('id','selected'); + $(a).parent().parent().attr('id', 'selected'); } var anchor = $(aname); - gotoAnchor(anchor,aname,true); + gotoAnchor(anchor, aname, true); }; } else { a.href = url; @@ -242,7 +242,7 @@ function showRoot() (function (){ // retry until we can scroll to the selected item try { var navtree=$('#nav-tree'); - navtree.scrollTo('#selected',0,{offset:-windowHeight/2}); + navtree.scrollTo('#selected', 0, {offset:-windowHeight/2}); } catch (err) { setTimeout(arguments.callee, 0); } @@ -254,7 +254,7 @@ function expandNode(o, node, imm, showRoot) if (node.childrenData && !node.expanded) { if (typeof(node.childrenData)==='string') { var varName = node.childrenData; - getScript(node.relpath+varName,function(){ + getScript(node.relpath+varName, function(){ node.childrenData = getData(varName); expandNode(o, node, imm, showRoot); }, showRoot); @@ -273,7 +273,7 @@ function expandNode(o, node, imm, showRoot) } } -function glowEffect(n,duration) +function glowEffect(n, duration) { n.addClass('glow').delay(duration).queue(function(next){ $(this).removeClass('glow');next(); @@ -286,20 +286,20 @@ function highlightAnchor() var anchor = $(aname); if (anchor.parent().attr('class')=='memItemLeft'){ var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); - glowEffect(rows.children(),300); // member without details + glowEffect(rows.children(), 300); // member without details } else if (anchor.parent().attr('class')=='fieldname'){ - glowEffect(anchor.parent().parent(),1000); // enum value + glowEffect(anchor.parent().parent(), 1000); // enum value } else if (anchor.parent().attr('class')=='fieldtype'){ - glowEffect(anchor.parent().parent(),1000); // struct field + glowEffect(anchor.parent().parent(), 1000); // struct field } else if (anchor.parent().is(":header")) { - glowEffect(anchor.parent(),1000); // section header + glowEffect(anchor.parent(), 1000); // section header } else { - glowEffect(anchor.next(),1000); // normal member + glowEffect(anchor.next(), 1000); // normal member } - gotoAnchor(anchor,aname,false); + gotoAnchor(anchor, aname, false); } -function selectAndHighlight(hash,n) +function selectAndHighlight(hash, n) { var a; if (hash) { @@ -308,16 +308,16 @@ function selectAndHighlight(hash,n) } if (a && a.length) { a.parent().parent().addClass('selected'); - a.parent().parent().attr('id','selected'); + a.parent().parent().attr('id', 'selected'); highlightAnchor(); } else if (n) { $(n.itemDiv).addClass('selected'); - $(n.itemDiv).attr('id','selected'); + $(n.itemDiv).attr('id', 'selected'); } if ($('#nav-tree-contents .item:first').hasClass('selected')) { - $('#nav-sync').css('top','30px'); + $('#nav-sync').css('top', '30px'); } else { - $('#nav-sync').css('top','5px'); + $('#nav-sync').css('top', '5px'); } showRoot(); } @@ -327,10 +327,10 @@ function showNode(o, node, index, hash) if (node && node.childrenData) { if (typeof(node.childrenData)==='string') { var varName = node.childrenData; - getScript(node.relpath+varName,function(){ + getScript(node.relpath+varName, function(){ node.childrenData = getData(varName); - showNode(o,node,index,hash); - },true); + showNode(o, node, index, hash); + }, true); } else { if (!node.childrenVisited) { getNode(o, node); @@ -340,21 +340,21 @@ function showNode(o, node, index, hash) node.expanded = true; var n = node.children[o.breadcrumbs[index]]; if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,''); + if (parts.length>1) hash = '#'+parts[1].replace(/[^\w\-]/g, ''); else hash=''; } if (hash.match(/^#l\d+$/)) { var anchor=$('a[name='+hash.substring(1)+']'); - glowEffect(anchor.parent(),1000); // line number + glowEffect(anchor.parent(), 1000); // line number hash=''; // strip line number anchors } var url=root+hash; @@ -423,23 +423,23 @@ function navTo(o,root,hash,relpath) while (NAVTREEINDEX[i+1]<=url) i++; if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index if (navTreeSubIndices[i]) { - gotoNode(o,i,root,hash,relpath) + gotoNode(o, i, root, hash, relpath) } else { - getScript(relpath+'navtreeindex'+i,function(){ + getScript(relpath+'navtreeindex'+i, function(){ navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); if (navTreeSubIndices[i]) { - gotoNode(o,i,root,hash,relpath); + gotoNode(o, i, root, hash, relpath); } - },true); + }, true); } } -function showSyncOff(n,relpath) +function showSyncOff(n, relpath) { n.html(''); } -function showSyncOn(n,relpath) +function showSyncOn(n, relpath) { n.html(''); } @@ -449,16 +449,16 @@ function toggleSyncButton(relpath) var navSync = $('#nav-sync'); if (navSync.hasClass('sync')) { navSync.removeClass('sync'); - showSyncOff(navSync,relpath); + showSyncOff(navSync, relpath); storeLink(stripPath2(pathName())+hashUrl()); } else { navSync.addClass('sync'); - showSyncOn(navSync,relpath); + showSyncOn(navSync, relpath); deleteLink(); } } -function initNavTree(toroot,relpath) +function initNavTree(toroot, relpath) { var o = new Object(); o.toroot = toroot; @@ -480,16 +480,16 @@ function initNavTree(toroot,relpath) if (localStorageSupported()) { var navSync = $('#nav-sync'); if (cachedLink()) { - showSyncOff(navSync,relpath); + showSyncOff(navSync, relpath); navSync.removeClass('sync'); } else { - showSyncOn(navSync,relpath); + showSyncOn(navSync, relpath); } navSync.click(function(){ toggleSyncButton(relpath); }); } $(window).load(function(){ - navTo(o,toroot,hashUrl(),relpath); + navTo(o, toroot, hashUrl(), relpath); showRoot(); }); @@ -498,19 +498,19 @@ function initNavTree(toroot,relpath) var a; if ($(location).attr('hash')){ var clslink=stripPath(pathName())+':'+hashValue(); - a=$('.item a[class$="'+clslink.replace(/ @@ -59,12 +59,12 @@ -
    @@ -76,7 +76,7 @@
    -
    diff --git a/Libraries/FCL/doc/output/html/resize.js b/Libraries/FCL/doc/output/html/resize.js index 6d78f5b972e..2c3149ab06d 100644 --- a/Libraries/FCL/doc/output/html/resize.js +++ b/Libraries/FCL/doc/output/html/resize.js @@ -1,7 +1,7 @@ function initResizable() { var cookie_namespace = 'doxygen'; - var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight; + var sidenav, navtree, content, header, collapsed, collapsedWidth=0, barWidth=6, desktop_vp=768, titleHeight; function readCookie(cookie) { @@ -37,7 +37,7 @@ function initResizable() var windowWidth = $(window).width() + "px"; var sidenavWidth = $(sidenav).outerWidth(); content.css({marginLeft:parseInt(sidenavWidth)+"px"}); - writeCookie('width',sidenavWidth-barWidth, null); + writeCookie('width', sidenavWidth-barWidth, null); } function restoreWidth(navWidth) diff --git a/Libraries/FCL/doc/output/html/search/all_0.js b/Libraries/FCL/doc/output/html/search/all_0.js index 50907240d78..fdc62275ba3 100644 --- a/Libraries/FCL/doc/output/html/search/all_0.js +++ b/Libraries/FCL/doc/output/html/search/all_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['_5fmsg_5flcd',['_msg_lcd',['../struct__msg__lcd.html',1,'']]] + ['_5fmsg_5flcd', ['_msg_lcd', ['../struct__msg__lcd.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/all_1.js b/Libraries/FCL/doc/output/html/search/all_1.js index 9098b8ca667..a1a25aaac86 100644 --- a/Libraries/FCL/doc/output/html/search/all_1.js +++ b/Libraries/FCL/doc/output/html/search/all_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['application_20box_28es_29',['Application box(es)',['../group__appbx.html',1,'']]] + ['application_20box_28es_29', ['Application box(es)', ['../group__appbx.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/all_10.js b/Libraries/FCL/doc/output/html/search/all_10.js index 83b9fb1bdaa..6b00343888a 100644 --- a/Libraries/FCL/doc/output/html/search/all_10.js +++ b/Libraries/FCL/doc/output/html/search/all_10.js @@ -1,13 +1,13 @@ var searchData= [ - ['virq_5fclearpendingirq',['vIRQ_ClearPendingIRQ',['../group__hypervisor.html#gaa02ff863ab222f97723b60e59f6d92d8',1,'deeptrustapi.h']]], - ['virq_5fdisableirq',['vIRQ_DisableIRQ',['../group__hypervisor.html#ga7beb8d1fe68378367bcb8085a2d16cd5',1,'deeptrustapi.h']]], - ['virq_5fenableirq',['vIRQ_EnableIRQ',['../group__hypervisor.html#ga3dd01fda80a57db36a78994d0cae91ee',1,'deeptrustapi.h']]], - ['virq_5fgetlevel',['vIRQ_GetLevel',['../group__hypervisor.html#ga880e3229f62cfff1c638c5dd6a1e9050',1,'deeptrustapi.h']]], - ['virq_5fgetpendingirq',['vIRQ_GetPendingIRQ',['../group__hypervisor.html#gad450b31ead2ec4f7bb2dbe07ebcfd8e7',1,'deeptrustapi.h']]], - ['virq_5fgetpriority',['vIRQ_GetPriority',['../group__hypervisor.html#ga3da0be917ac42157f0d33e3e1412379b',1,'deeptrustapi.h']]], - ['virq_5fgetvector',['vIRQ_GetVector',['../group__hypervisor.html#gaaa9c852e90077dd4c553240d769b3658',1,'deeptrustapi.h']]], - ['virq_5fsetpendingirq',['vIRQ_SetPendingIRQ',['../group__hypervisor.html#gab5570c2fa5a04a3a183cdef960a43c6b',1,'deeptrustapi.h']]], - ['virq_5fsetpriority',['vIRQ_SetPriority',['../group__hypervisor.html#ga3c725e15df2f30fdaed9f1873a7eebdf',1,'deeptrustapi.h']]], - ['virq_5fsetvector',['vIRQ_SetVector',['../group__hypervisor.html#ga3bf7917bc9150d1b91bec5d41962ff13',1,'deeptrustapi.h']]] + ['virq_5fclearpendingirq', ['vIRQ_ClearPendingIRQ', ['../group__hypervisor.html#gaa02ff863ab222f97723b60e59f6d92d8', 1, 'deeptrustapi.h']]], + ['virq_5fdisableirq', ['vIRQ_DisableIRQ', ['../group__hypervisor.html#ga7beb8d1fe68378367bcb8085a2d16cd5', 1, 'deeptrustapi.h']]], + ['virq_5fenableirq', ['vIRQ_EnableIRQ', ['../group__hypervisor.html#ga3dd01fda80a57db36a78994d0cae91ee', 1, 'deeptrustapi.h']]], + ['virq_5fgetlevel', ['vIRQ_GetLevel', ['../group__hypervisor.html#ga880e3229f62cfff1c638c5dd6a1e9050', 1, 'deeptrustapi.h']]], + ['virq_5fgetpendingirq', ['vIRQ_GetPendingIRQ', ['../group__hypervisor.html#gad450b31ead2ec4f7bb2dbe07ebcfd8e7', 1, 'deeptrustapi.h']]], + ['virq_5fgetpriority', ['vIRQ_GetPriority', ['../group__hypervisor.html#ga3da0be917ac42157f0d33e3e1412379b', 1, 'deeptrustapi.h']]], + ['virq_5fgetvector', ['vIRQ_GetVector', ['../group__hypervisor.html#gaaa9c852e90077dd4c553240d769b3658', 1, 'deeptrustapi.h']]], + ['virq_5fsetpendingirq', ['vIRQ_SetPendingIRQ', ['../group__hypervisor.html#gab5570c2fa5a04a3a183cdef960a43c6b', 1, 'deeptrustapi.h']]], + ['virq_5fsetpriority', ['vIRQ_SetPriority', ['../group__hypervisor.html#ga3c725e15df2f30fdaed9f1873a7eebdf', 1, 'deeptrustapi.h']]], + ['virq_5fsetvector', ['vIRQ_SetVector', ['../group__hypervisor.html#ga3bf7917bc9150d1b91bec5d41962ff13', 1, 'deeptrustapi.h']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/all_2.js b/Libraries/FCL/doc/output/html/search/all_2.js index 3e389cf6583..806634891fd 100644 --- a/Libraries/FCL/doc/output/html/search/all_2.js +++ b/Libraries/FCL/doc/output/html/search/all_2.js @@ -1,6 +1,6 @@ var searchData= [ - ['certificationauthorities',['CertificationAuthorities',['../struct_certification_authorities.html',1,'']]], - ['check_5facl',['check_acl',['../group__hypervisor.html#ga6e7f7b03367daefa2cbcb7e4f0538ba7',1,'deeptrustapi.h']]], - ['cryptography',['Cryptography',['../group__ssbx___crypto.html',1,'']]] + ['certificationauthorities', ['CertificationAuthorities', ['../struct_certification_authorities.html', 1, '']]], + ['check_5facl', ['check_acl', ['../group__hypervisor.html#ga6e7f7b03367daefa2cbcb7e4f0538ba7', 1, 'deeptrustapi.h']]], + ['cryptography', ['Cryptography', ['../group__ssbx___crypto.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/all_3.js b/Libraries/FCL/doc/output/html/search/all_3.js index 6af1a3bfbbf..f31f5644598 100644 --- a/Libraries/FCL/doc/output/html/search/all_3.js +++ b/Libraries/FCL/doc/output/html/search/all_3.js @@ -1,4 +1,4 @@ var searchData= [ - ['data',['data',['../structdata.html',1,'']]] + ['data', ['data', ['../structdata.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/all_4.js b/Libraries/FCL/doc/output/html/search/all_4.js index 87b62591c85..cf25d95f3c4 100644 --- a/Libraries/FCL/doc/output/html/search/all_4.js +++ b/Libraries/FCL/doc/output/html/search/all_4.js @@ -1,4 +1,4 @@ var searchData= [ - ['emv_2dlevel_201_20smart_20card',['EMV-Level 1 Smart Card',['../group__pcibx__sc.html',1,'']]] + ['emv_2dlevel_201_20smart_20card', ['EMV-Level 1 Smart Card', ['../group__pcibx__sc.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/all_5.js b/Libraries/FCL/doc/output/html/search/all_5.js index c343dfb8db7..84618e72b3c 100644 --- a/Libraries/FCL/doc/output/html/search/all_5.js +++ b/Libraries/FCL/doc/output/html/search/all_5.js @@ -1,4 +1,4 @@ var searchData= [ - ['global_20management_20functions',['Global management functions',['../group__ssbx___main.html',1,'']]] + ['global_20management_20functions', ['Global management functions', ['../group__ssbx___main.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/all_6.js b/Libraries/FCL/doc/output/html/search/all_6.js index 72dbb31c554..f0bf6d2ea12 100644 --- a/Libraries/FCL/doc/output/html/search/all_6.js +++ b/Libraries/FCL/doc/output/html/search/all_6.js @@ -1,4 +1,4 @@ var searchData= [ - ['i_2fo_20api',['I/O API',['../group__ssbx___i_o.html',1,'']]] + ['i_2fo_20api', ['I/O API', ['../group__ssbx___i_o.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/all_7.js b/Libraries/FCL/doc/output/html/search/all_7.js index f990322fed1..1863e374cbe 100644 --- a/Libraries/FCL/doc/output/html/search/all_7.js +++ b/Libraries/FCL/doc/output/html/search/all_7.js @@ -1,4 +1,4 @@ var searchData= [ - ['key_20manager',['Key Manager',['../group__ssbx___key_management.html',1,'']]] + ['key_20manager', ['Key Manager', ['../group__ssbx___key_management.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/all_8.js b/Libraries/FCL/doc/output/html/search/all_8.js index 7181987ff03..86a46fad356 100644 --- a/Libraries/FCL/doc/output/html/search/all_8.js +++ b/Libraries/FCL/doc/output/html/search/all_8.js @@ -1,6 +1,6 @@ var searchData= [ - ['memsec_5fhandle',['MEMSEC_HANDLE',['../struct_m_e_m_s_e_c___h_a_n_d_l_e.html',1,'']]], - ['magnetic_20stripe',['Magnetic Stripe',['../group__pcibx___m_s_r.html',1,'']]], - ['memory_20manager',['Memory Manager',['../group__ssbx___mem.html',1,'']]] + ['memsec_5fhandle', ['MEMSEC_HANDLE', ['../struct_m_e_m_s_e_c___h_a_n_d_l_e.html', 1, '']]], + ['magnetic_20stripe', ['Magnetic Stripe', ['../group__pcibx___m_s_r.html', 1, '']]], + ['memory_20manager', ['Memory Manager', ['../group__ssbx___mem.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/all_9.js b/Libraries/FCL/doc/output/html/search/all_9.js index 496e93aed62..c33145f83d3 100644 --- a/Libraries/FCL/doc/output/html/search/all_9.js +++ b/Libraries/FCL/doc/output/html/search/all_9.js @@ -1,4 +1,4 @@ var searchData= [ - ['operating_20system_2c_20drivers_2c_20c_20library_2c_20other_20libraries_2e_2e_2e',['Operating system, drivers, C library, other libraries...',['../group__os.html',1,'']]] + ['operating_20system_2c_20drivers_2c_20c_20library_2c_20other_20libraries_2e_2e_2e', ['Operating system, drivers, C library, other libraries...', ['../group__os.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/all_a.js b/Libraries/FCL/doc/output/html/search/all_a.js index 9ff99ff2b08..87c92aec384 100644 --- a/Libraries/FCL/doc/output/html/search/all_a.js +++ b/Libraries/FCL/doc/output/html/search/all_a.js @@ -1,13 +1,13 @@ var searchData= [ - ['pci_5fauthenticate_5fissuer_5fand_5ficc_5fpublic_5fkey',['pci_authenticate_issuer_and_icc_public_key',['../group__pcibx___p_i_n.html#ga856d7d243dc0508bf0c9707b82c1f32a',1,'deeptrust_api.h']]], - ['pci_5fget_5fonline_5fpin',['pci_get_online_pin',['../group__pcibx___p_i_n.html#ga37d6e36be9921cb568f707b7afd25391',1,'deeptrust_api.h']]], - ['pci_5fpin_5fentry',['pci_pin_entry',['../group__pcibx___p_i_n.html#ga4404aa0dfb0b243b0bb616ad90fc36ca',1,'deeptrust_api.h']]], - ['pci_5fsmartcard_5fconfig',['pci_smartcard_config',['../group__pcibx__sc.html#gac227636b4a270677ea489d54bfa9262e',1,'deeptrust_api.h']]], - ['pci_5fsmartcard_5ftransact_5fapdu',['pci_smartcard_transact_APDU',['../group__pcibx__sc.html#gaa97512bc1e0389c8528b90e2d2d05ad0',1,'deeptrust_api.h']]], - ['pci_5fsmartcard_5fwait_5fcard_5finsertion',['pci_smartcard_wait_card_insertion',['../group__pcibx__sc.html#gad022b65b3032486431f926be08dc58ba',1,'deeptrust_api.h']]], - ['pci_5fsmartcard_5fwait_5fcard_5fremoval',['pci_smartcard_wait_card_removal',['../group__pcibx__sc.html#gab0d9d214315edba6757eb7a56508e7fb',1,'deeptrust_api.h']]], - ['pci_5fverify_5foffline_5fpin',['pci_verify_offline_pin',['../group__pcibx___p_i_n.html#ga5863c0668309f185c444d3e8cc6fc05c',1,'deeptrust_api.h']]], - ['pci_20security_20services_2c_20security_20functions_20dedicated_20to_20pci_20pts_20poi_20security',['PCI Security Services, Security functions dedicated to PCI PTS POI security',['../group__pcibx.html',1,'']]], - ['pin_20handling',['PIN handling',['../group__pcibx___p_i_n.html',1,'']]] + ['pci_5fauthenticate_5fissuer_5fand_5ficc_5fpublic_5fkey', ['pci_authenticate_issuer_and_icc_public_key', ['../group__pcibx___p_i_n.html#ga856d7d243dc0508bf0c9707b82c1f32a', 1, 'deeptrust_api.h']]], + ['pci_5fget_5fonline_5fpin', ['pci_get_online_pin', ['../group__pcibx___p_i_n.html#ga37d6e36be9921cb568f707b7afd25391', 1, 'deeptrust_api.h']]], + ['pci_5fpin_5fentry', ['pci_pin_entry', ['../group__pcibx___p_i_n.html#ga4404aa0dfb0b243b0bb616ad90fc36ca', 1, 'deeptrust_api.h']]], + ['pci_5fsmartcard_5fconfig', ['pci_smartcard_config', ['../group__pcibx__sc.html#gac227636b4a270677ea489d54bfa9262e', 1, 'deeptrust_api.h']]], + ['pci_5fsmartcard_5ftransact_5fapdu', ['pci_smartcard_transact_APDU', ['../group__pcibx__sc.html#gaa97512bc1e0389c8528b90e2d2d05ad0', 1, 'deeptrust_api.h']]], + ['pci_5fsmartcard_5fwait_5fcard_5finsertion', ['pci_smartcard_wait_card_insertion', ['../group__pcibx__sc.html#gad022b65b3032486431f926be08dc58ba', 1, 'deeptrust_api.h']]], + ['pci_5fsmartcard_5fwait_5fcard_5fremoval', ['pci_smartcard_wait_card_removal', ['../group__pcibx__sc.html#gab0d9d214315edba6757eb7a56508e7fb', 1, 'deeptrust_api.h']]], + ['pci_5fverify_5foffline_5fpin', ['pci_verify_offline_pin', ['../group__pcibx___p_i_n.html#ga5863c0668309f185c444d3e8cc6fc05c', 1, 'deeptrust_api.h']]], + ['pci_20security_20services_2c_20security_20functions_20dedicated_20to_20pci_20pts_20poi_20security', ['PCI Security Services, Security functions dedicated to PCI PTS POI security', ['../group__pcibx.html', 1, '']]], + ['pin_20handling', ['PIN handling', ['../group__pcibx___p_i_n.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/all_b.js b/Libraries/FCL/doc/output/html/search/all_b.js index f4702b527ba..0f96942fbd1 100644 --- a/Libraries/FCL/doc/output/html/search/all_b.js +++ b/Libraries/FCL/doc/output/html/search/all_b.js @@ -1,6 +1,6 @@ var searchData= [ - ['references',['References',['../_r_e_f_e_r_e_n_c_e_s.html',1,'']]], - ['release_20notes',['Release Notes',['../_r_e_l_e_a_s_e__n_o_t_e_s.html',1,'']]], - ['rpc_5ffncall_5fwaitfor',['rpc_fncall_waitfor',['../group__hypervisor.html#gafdaf52538986a558e934eab65221731e',1,'deeptrustapi.h']]] + ['references', ['References', ['../_r_e_f_e_r_e_n_c_e_s.html', 1, '']]], + ['release_20notes', ['Release Notes', ['../_r_e_l_e_a_s_e__n_o_t_e_s.html', 1, '']]], + ['rpc_5ffncall_5fwaitfor', ['rpc_fncall_waitfor', ['../group__hypervisor.html#gafdaf52538986a558e934eab65221731e', 1, 'deeptrustapi.h']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/all_c.js b/Libraries/FCL/doc/output/html/search/all_c.js index d3d3700d65b..032d4e2c23f 100644 --- a/Libraries/FCL/doc/output/html/search/all_c.js +++ b/Libraries/FCL/doc/output/html/search/all_c.js @@ -1,16 +1,16 @@ var searchData= [ - ['security_20guidelines',['Security Guidelines',['../_p_c_i_g_u_i_d_a_n_c_e.html',1,'']]], - ['secure_20sandbox_20services_20_28generic_20security_20functions_29',['Secure Sandbox services (Generic Security functions)',['../group__ssbx.html',1,'']]], - ['ssbx_5fdisplay_5fdisplay_5fimage',['ssbx_display_display_image',['../group__ssbx___i_o.html#ga52d5005d7bb36355592b9ef2309281e2',1,'deeptrust_api.h']]], - ['ssbx_5fdisplay_5fprompt',['ssbx_display_prompt',['../group__ssbx___i_o.html#ga701c4c43823bad80a39745de2b5ad3af',1,'deeptrust_api.h']]], - ['ssbx_5fdisplay_5fwrite_5fmessage',['ssbx_display_write_message',['../group__ssbx___i_o.html#ga40574f625e50f59357a9c363305bf76e',1,'deeptrust_api.h']]], - ['ssbx_5fmemsec_5falloc',['ssbx_memsec_alloc',['../group__ssbx___mem.html#ga96810d67a710b2b5c6bdf36e8be9264d',1,'deeptrust_api.h']]], - ['ssbx_5fmemsec_5ffree',['ssbx_memsec_free',['../group__ssbx___mem.html#ga7bdb13c9e820522a2dd962852e39d17d',1,'deeptrust_api.h']]], - ['ssbx_5fmemsec_5fread',['ssbx_memsec_read',['../group__ssbx___mem.html#gae2a833e9b4c47b6c2eed6cbfb53e272a',1,'deeptrust_api.h']]], - ['ssbx_5fmemsec_5fwrite',['ssbx_memsec_write',['../group__ssbx___mem.html#gae04ea24bdad83f4943013677e489a87b',1,'deeptrust_api.h']]], - ['ssbx_5frtc_5fset_5falarm',['ssbx_rtc_set_alarm',['../group__ssbx___main.html#ga242681afc2ef11a1ecff51d1fecefd2b',1,'deeptrust_api.h']]], - ['ssbx_5frtc_5funset_5falarm',['ssbx_rtc_unset_alarm',['../group__ssbx___main.html#gacbaeac49c40f20084b80c4d6b942a331',1,'deeptrust_api.h']]], - ['ssbx_5fstart',['ssbx_start',['../group__ssbx___main.html#gabade948f2d1354f81824d6dc2ea93d83',1,'deeptrust_api.h']]], - ['ssbx_5ftouch_5fget_5fentry',['ssbx_touch_get_entry',['../group__ssbx___i_o.html#gaefc88ab3af9c2f984281ac32723d0633',1,'deeptrust_api.h']]] + ['security_20guidelines', ['Security Guidelines', ['../_p_c_i_g_u_i_d_a_n_c_e.html', 1, '']]], + ['secure_20sandbox_20services_20_28generic_20security_20functions_29', ['Secure Sandbox services (Generic Security functions)', ['../group__ssbx.html', 1, '']]], + ['ssbx_5fdisplay_5fdisplay_5fimage', ['ssbx_display_display_image', ['../group__ssbx___i_o.html#ga52d5005d7bb36355592b9ef2309281e2', 1, 'deeptrust_api.h']]], + ['ssbx_5fdisplay_5fprompt', ['ssbx_display_prompt', ['../group__ssbx___i_o.html#ga701c4c43823bad80a39745de2b5ad3af', 1, 'deeptrust_api.h']]], + ['ssbx_5fdisplay_5fwrite_5fmessage', ['ssbx_display_write_message', ['../group__ssbx___i_o.html#ga40574f625e50f59357a9c363305bf76e', 1, 'deeptrust_api.h']]], + ['ssbx_5fmemsec_5falloc', ['ssbx_memsec_alloc', ['../group__ssbx___mem.html#ga96810d67a710b2b5c6bdf36e8be9264d', 1, 'deeptrust_api.h']]], + ['ssbx_5fmemsec_5ffree', ['ssbx_memsec_free', ['../group__ssbx___mem.html#ga7bdb13c9e820522a2dd962852e39d17d', 1, 'deeptrust_api.h']]], + ['ssbx_5fmemsec_5fread', ['ssbx_memsec_read', ['../group__ssbx___mem.html#gae2a833e9b4c47b6c2eed6cbfb53e272a', 1, 'deeptrust_api.h']]], + ['ssbx_5fmemsec_5fwrite', ['ssbx_memsec_write', ['../group__ssbx___mem.html#gae04ea24bdad83f4943013677e489a87b', 1, 'deeptrust_api.h']]], + ['ssbx_5frtc_5fset_5falarm', ['ssbx_rtc_set_alarm', ['../group__ssbx___main.html#ga242681afc2ef11a1ecff51d1fecefd2b', 1, 'deeptrust_api.h']]], + ['ssbx_5frtc_5funset_5falarm', ['ssbx_rtc_unset_alarm', ['../group__ssbx___main.html#gacbaeac49c40f20084b80c4d6b942a331', 1, 'deeptrust_api.h']]], + ['ssbx_5fstart', ['ssbx_start', ['../group__ssbx___main.html#gabade948f2d1354f81824d6dc2ea93d83', 1, 'deeptrust_api.h']]], + ['ssbx_5ftouch_5fget_5fentry', ['ssbx_touch_get_entry', ['../group__ssbx___i_o.html#gaefc88ab3af9c2f984281ac32723d0633', 1, 'deeptrust_api.h']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/all_d.js b/Libraries/FCL/doc/output/html/search/all_d.js index 084df503711..b334b2e1933 100644 --- a/Libraries/FCL/doc/output/html/search/all_d.js +++ b/Libraries/FCL/doc/output/html/search/all_d.js @@ -1,5 +1,5 @@ var searchData= [ - ['trace_5flog_5fdisplay',['TRACE_log_display',['../struct_t_r_a_c_e__log__display.html',1,'']]], - ['tracehandlersconfig',['TracehandlersConfig',['../struct_tracehandlers_config.html',1,'']]] + ['trace_5flog_5fdisplay', ['TRACE_log_display', ['../struct_t_r_a_c_e__log__display.html', 1, '']]], + ['tracehandlersconfig', ['TracehandlersConfig', ['../struct_tracehandlers_config.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/all_e.js b/Libraries/FCL/doc/output/html/search/all_e.js index 56eaa49452a..a157a89d944 100644 --- a/Libraries/FCL/doc/output/html/search/all_e.js +++ b/Libraries/FCL/doc/output/html/search/all_e.js @@ -1,12 +1,12 @@ var searchData= [ - ['uvisor_20api',['uVisor API',['../group__hypervisor.html',1,'']]], - ['uvisor_5fbox_5fconfig',['UVISOR_BOX_CONFIG',['../group__hypervisor.html#ga6143739a0475a71e8002f540de3c53f0',1,'deeptrustapi.h']]], - ['uvisor_5fbox_5fid_5fself',['uvisor_box_id_self',['../group__hypervisor.html#gab099ca7d08f626791039573dbff14af5',1,'deeptrustapi.h']]], - ['uvisor_5fbox_5fnamespace',['uvisor_box_namespace',['../group__hypervisor.html#gab605e738e6bc828cd9efb6eacca79685',1,'uvisor_box_namespace(int box_id, char *box_namespace, size_t length): deeptrustapi.h'],['../group__hypervisor.html#gafe52bfcc466d459d149c63966c2f4a58',1,'UVISOR_BOX_NAMESPACE(): deeptrustapi.h']]], - ['uvisor_5fbox_5fsigningkey',['uvisor_box_signingkey',['../group__hypervisor.html#ga82e5cbff1a1a26974ed1e5f493607cf2',1,'deeptrustapi.h']]], - ['uvisor_5fset_5fmode',['UVISOR_SET_MODE',['../group__hypervisor.html#ga7cb080278fc7d660addf9bbff6d3f2da',1,'deeptrustapi.h']]], - ['uvisor_5fset_5fmode_5facl',['UVISOR_SET_MODE_ACL',['../group__hypervisor.html#gae90f548ce110da855610f79301aafe34',1,'deeptrustapi.h']]], - ['uvisorboxacl',['UvisorBoxAcl',['../group__hypervisor.html#ga1527b3a7e3df3007490669cbd26b4fe9',1,'deeptrustapi.h']]], - ['uvisorboxaclitem',['UvisorBoxAclItem',['../group__hypervisor.html#struct_uvisor_box_acl_item',1,'']]] + ['uvisor_20api', ['uVisor API', ['../group__hypervisor.html', 1, '']]], + ['uvisor_5fbox_5fconfig', ['UVISOR_BOX_CONFIG', ['../group__hypervisor.html#ga6143739a0475a71e8002f540de3c53f0', 1, 'deeptrustapi.h']]], + ['uvisor_5fbox_5fid_5fself', ['uvisor_box_id_self', ['../group__hypervisor.html#gab099ca7d08f626791039573dbff14af5', 1, 'deeptrustapi.h']]], + ['uvisor_5fbox_5fnamespace', ['uvisor_box_namespace', ['../group__hypervisor.html#gab605e738e6bc828cd9efb6eacca79685', 1, 'uvisor_box_namespace(int box_id, char *box_namespace, size_t length): deeptrustapi.h'], ['../group__hypervisor.html#gafe52bfcc466d459d149c63966c2f4a58', 1, 'UVISOR_BOX_NAMESPACE(): deeptrustapi.h']]], + ['uvisor_5fbox_5fsigningkey', ['uvisor_box_signingkey', ['../group__hypervisor.html#ga82e5cbff1a1a26974ed1e5f493607cf2', 1, 'deeptrustapi.h']]], + ['uvisor_5fset_5fmode', ['UVISOR_SET_MODE', ['../group__hypervisor.html#ga7cb080278fc7d660addf9bbff6d3f2da', 1, 'deeptrustapi.h']]], + ['uvisor_5fset_5fmode_5facl', ['UVISOR_SET_MODE_ACL', ['../group__hypervisor.html#gae90f548ce110da855610f79301aafe34', 1, 'deeptrustapi.h']]], + ['uvisorboxacl', ['UvisorBoxAcl', ['../group__hypervisor.html#ga1527b3a7e3df3007490669cbd26b4fe9', 1, 'deeptrustapi.h']]], + ['uvisorboxaclitem', ['UvisorBoxAclItem', ['../group__hypervisor.html#struct_uvisor_box_acl_item', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/all_f.js b/Libraries/FCL/doc/output/html/search/all_f.js index 83b9fb1bdaa..6b00343888a 100644 --- a/Libraries/FCL/doc/output/html/search/all_f.js +++ b/Libraries/FCL/doc/output/html/search/all_f.js @@ -1,13 +1,13 @@ var searchData= [ - ['virq_5fclearpendingirq',['vIRQ_ClearPendingIRQ',['../group__hypervisor.html#gaa02ff863ab222f97723b60e59f6d92d8',1,'deeptrustapi.h']]], - ['virq_5fdisableirq',['vIRQ_DisableIRQ',['../group__hypervisor.html#ga7beb8d1fe68378367bcb8085a2d16cd5',1,'deeptrustapi.h']]], - ['virq_5fenableirq',['vIRQ_EnableIRQ',['../group__hypervisor.html#ga3dd01fda80a57db36a78994d0cae91ee',1,'deeptrustapi.h']]], - ['virq_5fgetlevel',['vIRQ_GetLevel',['../group__hypervisor.html#ga880e3229f62cfff1c638c5dd6a1e9050',1,'deeptrustapi.h']]], - ['virq_5fgetpendingirq',['vIRQ_GetPendingIRQ',['../group__hypervisor.html#gad450b31ead2ec4f7bb2dbe07ebcfd8e7',1,'deeptrustapi.h']]], - ['virq_5fgetpriority',['vIRQ_GetPriority',['../group__hypervisor.html#ga3da0be917ac42157f0d33e3e1412379b',1,'deeptrustapi.h']]], - ['virq_5fgetvector',['vIRQ_GetVector',['../group__hypervisor.html#gaaa9c852e90077dd4c553240d769b3658',1,'deeptrustapi.h']]], - ['virq_5fsetpendingirq',['vIRQ_SetPendingIRQ',['../group__hypervisor.html#gab5570c2fa5a04a3a183cdef960a43c6b',1,'deeptrustapi.h']]], - ['virq_5fsetpriority',['vIRQ_SetPriority',['../group__hypervisor.html#ga3c725e15df2f30fdaed9f1873a7eebdf',1,'deeptrustapi.h']]], - ['virq_5fsetvector',['vIRQ_SetVector',['../group__hypervisor.html#ga3bf7917bc9150d1b91bec5d41962ff13',1,'deeptrustapi.h']]] + ['virq_5fclearpendingirq', ['vIRQ_ClearPendingIRQ', ['../group__hypervisor.html#gaa02ff863ab222f97723b60e59f6d92d8', 1, 'deeptrustapi.h']]], + ['virq_5fdisableirq', ['vIRQ_DisableIRQ', ['../group__hypervisor.html#ga7beb8d1fe68378367bcb8085a2d16cd5', 1, 'deeptrustapi.h']]], + ['virq_5fenableirq', ['vIRQ_EnableIRQ', ['../group__hypervisor.html#ga3dd01fda80a57db36a78994d0cae91ee', 1, 'deeptrustapi.h']]], + ['virq_5fgetlevel', ['vIRQ_GetLevel', ['../group__hypervisor.html#ga880e3229f62cfff1c638c5dd6a1e9050', 1, 'deeptrustapi.h']]], + ['virq_5fgetpendingirq', ['vIRQ_GetPendingIRQ', ['../group__hypervisor.html#gad450b31ead2ec4f7bb2dbe07ebcfd8e7', 1, 'deeptrustapi.h']]], + ['virq_5fgetpriority', ['vIRQ_GetPriority', ['../group__hypervisor.html#ga3da0be917ac42157f0d33e3e1412379b', 1, 'deeptrustapi.h']]], + ['virq_5fgetvector', ['vIRQ_GetVector', ['../group__hypervisor.html#gaaa9c852e90077dd4c553240d769b3658', 1, 'deeptrustapi.h']]], + ['virq_5fsetpendingirq', ['vIRQ_SetPendingIRQ', ['../group__hypervisor.html#gab5570c2fa5a04a3a183cdef960a43c6b', 1, 'deeptrustapi.h']]], + ['virq_5fsetpriority', ['vIRQ_SetPriority', ['../group__hypervisor.html#ga3c725e15df2f30fdaed9f1873a7eebdf', 1, 'deeptrustapi.h']]], + ['virq_5fsetvector', ['vIRQ_SetVector', ['../group__hypervisor.html#ga3bf7917bc9150d1b91bec5d41962ff13', 1, 'deeptrustapi.h']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/classes_0.js b/Libraries/FCL/doc/output/html/search/classes_0.js index 50907240d78..fdc62275ba3 100644 --- a/Libraries/FCL/doc/output/html/search/classes_0.js +++ b/Libraries/FCL/doc/output/html/search/classes_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['_5fmsg_5flcd',['_msg_lcd',['../struct__msg__lcd.html',1,'']]] + ['_5fmsg_5flcd', ['_msg_lcd', ['../struct__msg__lcd.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/classes_1.js b/Libraries/FCL/doc/output/html/search/classes_1.js index 54024ac2682..b3697d06f8e 100644 --- a/Libraries/FCL/doc/output/html/search/classes_1.js +++ b/Libraries/FCL/doc/output/html/search/classes_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['certificationauthorities',['CertificationAuthorities',['../struct_certification_authorities.html',1,'']]] + ['certificationauthorities', ['CertificationAuthorities', ['../struct_certification_authorities.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/classes_2.js b/Libraries/FCL/doc/output/html/search/classes_2.js index 6af1a3bfbbf..f31f5644598 100644 --- a/Libraries/FCL/doc/output/html/search/classes_2.js +++ b/Libraries/FCL/doc/output/html/search/classes_2.js @@ -1,4 +1,4 @@ var searchData= [ - ['data',['data',['../structdata.html',1,'']]] + ['data', ['data', ['../structdata.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/classes_3.js b/Libraries/FCL/doc/output/html/search/classes_3.js index b960609348a..b3fe67e0d95 100644 --- a/Libraries/FCL/doc/output/html/search/classes_3.js +++ b/Libraries/FCL/doc/output/html/search/classes_3.js @@ -1,4 +1,4 @@ var searchData= [ - ['memsec_5fhandle',['MEMSEC_HANDLE',['../struct_m_e_m_s_e_c___h_a_n_d_l_e.html',1,'']]] + ['memsec_5fhandle', ['MEMSEC_HANDLE', ['../struct_m_e_m_s_e_c___h_a_n_d_l_e.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/classes_4.js b/Libraries/FCL/doc/output/html/search/classes_4.js index 084df503711..b334b2e1933 100644 --- a/Libraries/FCL/doc/output/html/search/classes_4.js +++ b/Libraries/FCL/doc/output/html/search/classes_4.js @@ -1,5 +1,5 @@ var searchData= [ - ['trace_5flog_5fdisplay',['TRACE_log_display',['../struct_t_r_a_c_e__log__display.html',1,'']]], - ['tracehandlersconfig',['TracehandlersConfig',['../struct_tracehandlers_config.html',1,'']]] + ['trace_5flog_5fdisplay', ['TRACE_log_display', ['../struct_t_r_a_c_e__log__display.html', 1, '']]], + ['tracehandlersconfig', ['TracehandlersConfig', ['../struct_tracehandlers_config.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/classes_5.js b/Libraries/FCL/doc/output/html/search/classes_5.js index b551a055e1d..74b1b926d13 100644 --- a/Libraries/FCL/doc/output/html/search/classes_5.js +++ b/Libraries/FCL/doc/output/html/search/classes_5.js @@ -1,4 +1,4 @@ var searchData= [ - ['uvisorboxaclitem',['UvisorBoxAclItem',['../group__hypervisor.html#struct_uvisor_box_acl_item',1,'']]] + ['uvisorboxaclitem', ['UvisorBoxAclItem', ['../group__hypervisor.html#struct_uvisor_box_acl_item', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/classes_6.js b/Libraries/FCL/doc/output/html/search/classes_6.js index b551a055e1d..74b1b926d13 100644 --- a/Libraries/FCL/doc/output/html/search/classes_6.js +++ b/Libraries/FCL/doc/output/html/search/classes_6.js @@ -1,4 +1,4 @@ var searchData= [ - ['uvisorboxaclitem',['UvisorBoxAclItem',['../group__hypervisor.html#struct_uvisor_box_acl_item',1,'']]] + ['uvisorboxaclitem', ['UvisorBoxAclItem', ['../group__hypervisor.html#struct_uvisor_box_acl_item', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/functions_0.js b/Libraries/FCL/doc/output/html/search/functions_0.js index b2198151548..420702d39f9 100644 --- a/Libraries/FCL/doc/output/html/search/functions_0.js +++ b/Libraries/FCL/doc/output/html/search/functions_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['check_5facl',['check_acl',['../group__hypervisor.html#ga6e7f7b03367daefa2cbcb7e4f0538ba7',1,'deeptrustapi.h']]] + ['check_5facl', ['check_acl', ['../group__hypervisor.html#ga6e7f7b03367daefa2cbcb7e4f0538ba7', 1, 'deeptrustapi.h']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/functions_1.js b/Libraries/FCL/doc/output/html/search/functions_1.js index 115f64b1c28..9c139ed8b83 100644 --- a/Libraries/FCL/doc/output/html/search/functions_1.js +++ b/Libraries/FCL/doc/output/html/search/functions_1.js @@ -1,11 +1,11 @@ var searchData= [ - ['pci_5fauthenticate_5fissuer_5fand_5ficc_5fpublic_5fkey',['pci_authenticate_issuer_and_icc_public_key',['../group__pcibx___p_i_n.html#ga856d7d243dc0508bf0c9707b82c1f32a',1,'deeptrust_api.h']]], - ['pci_5fget_5fonline_5fpin',['pci_get_online_pin',['../group__pcibx___p_i_n.html#ga37d6e36be9921cb568f707b7afd25391',1,'deeptrust_api.h']]], - ['pci_5fpin_5fentry',['pci_pin_entry',['../group__pcibx___p_i_n.html#ga4404aa0dfb0b243b0bb616ad90fc36ca',1,'deeptrust_api.h']]], - ['pci_5fsmartcard_5fconfig',['pci_smartcard_config',['../group__pcibx__sc.html#gac227636b4a270677ea489d54bfa9262e',1,'deeptrust_api.h']]], - ['pci_5fsmartcard_5ftransact_5fapdu',['pci_smartcard_transact_APDU',['../group__pcibx__sc.html#gaa97512bc1e0389c8528b90e2d2d05ad0',1,'deeptrust_api.h']]], - ['pci_5fsmartcard_5fwait_5fcard_5finsertion',['pci_smartcard_wait_card_insertion',['../group__pcibx__sc.html#gad022b65b3032486431f926be08dc58ba',1,'deeptrust_api.h']]], - ['pci_5fsmartcard_5fwait_5fcard_5fremoval',['pci_smartcard_wait_card_removal',['../group__pcibx__sc.html#gab0d9d214315edba6757eb7a56508e7fb',1,'deeptrust_api.h']]], - ['pci_5fverify_5foffline_5fpin',['pci_verify_offline_pin',['../group__pcibx___p_i_n.html#ga5863c0668309f185c444d3e8cc6fc05c',1,'deeptrust_api.h']]] + ['pci_5fauthenticate_5fissuer_5fand_5ficc_5fpublic_5fkey', ['pci_authenticate_issuer_and_icc_public_key', ['../group__pcibx___p_i_n.html#ga856d7d243dc0508bf0c9707b82c1f32a', 1, 'deeptrust_api.h']]], + ['pci_5fget_5fonline_5fpin', ['pci_get_online_pin', ['../group__pcibx___p_i_n.html#ga37d6e36be9921cb568f707b7afd25391', 1, 'deeptrust_api.h']]], + ['pci_5fpin_5fentry', ['pci_pin_entry', ['../group__pcibx___p_i_n.html#ga4404aa0dfb0b243b0bb616ad90fc36ca', 1, 'deeptrust_api.h']]], + ['pci_5fsmartcard_5fconfig', ['pci_smartcard_config', ['../group__pcibx__sc.html#gac227636b4a270677ea489d54bfa9262e', 1, 'deeptrust_api.h']]], + ['pci_5fsmartcard_5ftransact_5fapdu', ['pci_smartcard_transact_APDU', ['../group__pcibx__sc.html#gaa97512bc1e0389c8528b90e2d2d05ad0', 1, 'deeptrust_api.h']]], + ['pci_5fsmartcard_5fwait_5fcard_5finsertion', ['pci_smartcard_wait_card_insertion', ['../group__pcibx__sc.html#gad022b65b3032486431f926be08dc58ba', 1, 'deeptrust_api.h']]], + ['pci_5fsmartcard_5fwait_5fcard_5fremoval', ['pci_smartcard_wait_card_removal', ['../group__pcibx__sc.html#gab0d9d214315edba6757eb7a56508e7fb', 1, 'deeptrust_api.h']]], + ['pci_5fverify_5foffline_5fpin', ['pci_verify_offline_pin', ['../group__pcibx___p_i_n.html#ga5863c0668309f185c444d3e8cc6fc05c', 1, 'deeptrust_api.h']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/functions_2.js b/Libraries/FCL/doc/output/html/search/functions_2.js index 9109ea17220..85b8905d270 100644 --- a/Libraries/FCL/doc/output/html/search/functions_2.js +++ b/Libraries/FCL/doc/output/html/search/functions_2.js @@ -1,4 +1,4 @@ var searchData= [ - ['rpc_5ffncall_5fwaitfor',['rpc_fncall_waitfor',['../group__hypervisor.html#gafdaf52538986a558e934eab65221731e',1,'deeptrustapi.h']]] + ['rpc_5ffncall_5fwaitfor', ['rpc_fncall_waitfor', ['../group__hypervisor.html#gafdaf52538986a558e934eab65221731e', 1, 'deeptrustapi.h']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/functions_3.js b/Libraries/FCL/doc/output/html/search/functions_3.js index 1e180586908..6948507cec6 100644 --- a/Libraries/FCL/doc/output/html/search/functions_3.js +++ b/Libraries/FCL/doc/output/html/search/functions_3.js @@ -1,14 +1,14 @@ var searchData= [ - ['ssbx_5fdisplay_5fdisplay_5fimage',['ssbx_display_display_image',['../group__ssbx___i_o.html#ga52d5005d7bb36355592b9ef2309281e2',1,'deeptrust_api.h']]], - ['ssbx_5fdisplay_5fprompt',['ssbx_display_prompt',['../group__ssbx___i_o.html#ga701c4c43823bad80a39745de2b5ad3af',1,'deeptrust_api.h']]], - ['ssbx_5fdisplay_5fwrite_5fmessage',['ssbx_display_write_message',['../group__ssbx___i_o.html#ga40574f625e50f59357a9c363305bf76e',1,'deeptrust_api.h']]], - ['ssbx_5fmemsec_5falloc',['ssbx_memsec_alloc',['../group__ssbx___mem.html#ga96810d67a710b2b5c6bdf36e8be9264d',1,'deeptrust_api.h']]], - ['ssbx_5fmemsec_5ffree',['ssbx_memsec_free',['../group__ssbx___mem.html#ga7bdb13c9e820522a2dd962852e39d17d',1,'deeptrust_api.h']]], - ['ssbx_5fmemsec_5fread',['ssbx_memsec_read',['../group__ssbx___mem.html#gae2a833e9b4c47b6c2eed6cbfb53e272a',1,'deeptrust_api.h']]], - ['ssbx_5fmemsec_5fwrite',['ssbx_memsec_write',['../group__ssbx___mem.html#gae04ea24bdad83f4943013677e489a87b',1,'deeptrust_api.h']]], - ['ssbx_5frtc_5fset_5falarm',['ssbx_rtc_set_alarm',['../group__ssbx___main.html#ga242681afc2ef11a1ecff51d1fecefd2b',1,'deeptrust_api.h']]], - ['ssbx_5frtc_5funset_5falarm',['ssbx_rtc_unset_alarm',['../group__ssbx___main.html#gacbaeac49c40f20084b80c4d6b942a331',1,'deeptrust_api.h']]], - ['ssbx_5fstart',['ssbx_start',['../group__ssbx___main.html#gabade948f2d1354f81824d6dc2ea93d83',1,'deeptrust_api.h']]], - ['ssbx_5ftouch_5fget_5fentry',['ssbx_touch_get_entry',['../group__ssbx___i_o.html#gaefc88ab3af9c2f984281ac32723d0633',1,'deeptrust_api.h']]] + ['ssbx_5fdisplay_5fdisplay_5fimage', ['ssbx_display_display_image', ['../group__ssbx___i_o.html#ga52d5005d7bb36355592b9ef2309281e2', 1, 'deeptrust_api.h']]], + ['ssbx_5fdisplay_5fprompt', ['ssbx_display_prompt', ['../group__ssbx___i_o.html#ga701c4c43823bad80a39745de2b5ad3af', 1, 'deeptrust_api.h']]], + ['ssbx_5fdisplay_5fwrite_5fmessage', ['ssbx_display_write_message', ['../group__ssbx___i_o.html#ga40574f625e50f59357a9c363305bf76e', 1, 'deeptrust_api.h']]], + ['ssbx_5fmemsec_5falloc', ['ssbx_memsec_alloc', ['../group__ssbx___mem.html#ga96810d67a710b2b5c6bdf36e8be9264d', 1, 'deeptrust_api.h']]], + ['ssbx_5fmemsec_5ffree', ['ssbx_memsec_free', ['../group__ssbx___mem.html#ga7bdb13c9e820522a2dd962852e39d17d', 1, 'deeptrust_api.h']]], + ['ssbx_5fmemsec_5fread', ['ssbx_memsec_read', ['../group__ssbx___mem.html#gae2a833e9b4c47b6c2eed6cbfb53e272a', 1, 'deeptrust_api.h']]], + ['ssbx_5fmemsec_5fwrite', ['ssbx_memsec_write', ['../group__ssbx___mem.html#gae04ea24bdad83f4943013677e489a87b', 1, 'deeptrust_api.h']]], + ['ssbx_5frtc_5fset_5falarm', ['ssbx_rtc_set_alarm', ['../group__ssbx___main.html#ga242681afc2ef11a1ecff51d1fecefd2b', 1, 'deeptrust_api.h']]], + ['ssbx_5frtc_5funset_5falarm', ['ssbx_rtc_unset_alarm', ['../group__ssbx___main.html#gacbaeac49c40f20084b80c4d6b942a331', 1, 'deeptrust_api.h']]], + ['ssbx_5fstart', ['ssbx_start', ['../group__ssbx___main.html#gabade948f2d1354f81824d6dc2ea93d83', 1, 'deeptrust_api.h']]], + ['ssbx_5ftouch_5fget_5fentry', ['ssbx_touch_get_entry', ['../group__ssbx___i_o.html#gaefc88ab3af9c2f984281ac32723d0633', 1, 'deeptrust_api.h']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/functions_4.js b/Libraries/FCL/doc/output/html/search/functions_4.js index 152092eeaad..58871a1d42d 100644 --- a/Libraries/FCL/doc/output/html/search/functions_4.js +++ b/Libraries/FCL/doc/output/html/search/functions_4.js @@ -1,6 +1,6 @@ var searchData= [ - ['uvisor_5fbox_5fid_5fself',['uvisor_box_id_self',['../group__hypervisor.html#gab099ca7d08f626791039573dbff14af5',1,'deeptrustapi.h']]], - ['uvisor_5fbox_5fnamespace',['uvisor_box_namespace',['../group__hypervisor.html#gab605e738e6bc828cd9efb6eacca79685',1,'deeptrustapi.h']]], - ['uvisor_5fbox_5fsigningkey',['uvisor_box_signingkey',['../group__hypervisor.html#ga82e5cbff1a1a26974ed1e5f493607cf2',1,'deeptrustapi.h']]] + ['uvisor_5fbox_5fid_5fself', ['uvisor_box_id_self', ['../group__hypervisor.html#gab099ca7d08f626791039573dbff14af5', 1, 'deeptrustapi.h']]], + ['uvisor_5fbox_5fnamespace', ['uvisor_box_namespace', ['../group__hypervisor.html#gab605e738e6bc828cd9efb6eacca79685', 1, 'deeptrustapi.h']]], + ['uvisor_5fbox_5fsigningkey', ['uvisor_box_signingkey', ['../group__hypervisor.html#ga82e5cbff1a1a26974ed1e5f493607cf2', 1, 'deeptrustapi.h']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/functions_5.js b/Libraries/FCL/doc/output/html/search/functions_5.js index 83b9fb1bdaa..6b00343888a 100644 --- a/Libraries/FCL/doc/output/html/search/functions_5.js +++ b/Libraries/FCL/doc/output/html/search/functions_5.js @@ -1,13 +1,13 @@ var searchData= [ - ['virq_5fclearpendingirq',['vIRQ_ClearPendingIRQ',['../group__hypervisor.html#gaa02ff863ab222f97723b60e59f6d92d8',1,'deeptrustapi.h']]], - ['virq_5fdisableirq',['vIRQ_DisableIRQ',['../group__hypervisor.html#ga7beb8d1fe68378367bcb8085a2d16cd5',1,'deeptrustapi.h']]], - ['virq_5fenableirq',['vIRQ_EnableIRQ',['../group__hypervisor.html#ga3dd01fda80a57db36a78994d0cae91ee',1,'deeptrustapi.h']]], - ['virq_5fgetlevel',['vIRQ_GetLevel',['../group__hypervisor.html#ga880e3229f62cfff1c638c5dd6a1e9050',1,'deeptrustapi.h']]], - ['virq_5fgetpendingirq',['vIRQ_GetPendingIRQ',['../group__hypervisor.html#gad450b31ead2ec4f7bb2dbe07ebcfd8e7',1,'deeptrustapi.h']]], - ['virq_5fgetpriority',['vIRQ_GetPriority',['../group__hypervisor.html#ga3da0be917ac42157f0d33e3e1412379b',1,'deeptrustapi.h']]], - ['virq_5fgetvector',['vIRQ_GetVector',['../group__hypervisor.html#gaaa9c852e90077dd4c553240d769b3658',1,'deeptrustapi.h']]], - ['virq_5fsetpendingirq',['vIRQ_SetPendingIRQ',['../group__hypervisor.html#gab5570c2fa5a04a3a183cdef960a43c6b',1,'deeptrustapi.h']]], - ['virq_5fsetpriority',['vIRQ_SetPriority',['../group__hypervisor.html#ga3c725e15df2f30fdaed9f1873a7eebdf',1,'deeptrustapi.h']]], - ['virq_5fsetvector',['vIRQ_SetVector',['../group__hypervisor.html#ga3bf7917bc9150d1b91bec5d41962ff13',1,'deeptrustapi.h']]] + ['virq_5fclearpendingirq', ['vIRQ_ClearPendingIRQ', ['../group__hypervisor.html#gaa02ff863ab222f97723b60e59f6d92d8', 1, 'deeptrustapi.h']]], + ['virq_5fdisableirq', ['vIRQ_DisableIRQ', ['../group__hypervisor.html#ga7beb8d1fe68378367bcb8085a2d16cd5', 1, 'deeptrustapi.h']]], + ['virq_5fenableirq', ['vIRQ_EnableIRQ', ['../group__hypervisor.html#ga3dd01fda80a57db36a78994d0cae91ee', 1, 'deeptrustapi.h']]], + ['virq_5fgetlevel', ['vIRQ_GetLevel', ['../group__hypervisor.html#ga880e3229f62cfff1c638c5dd6a1e9050', 1, 'deeptrustapi.h']]], + ['virq_5fgetpendingirq', ['vIRQ_GetPendingIRQ', ['../group__hypervisor.html#gad450b31ead2ec4f7bb2dbe07ebcfd8e7', 1, 'deeptrustapi.h']]], + ['virq_5fgetpriority', ['vIRQ_GetPriority', ['../group__hypervisor.html#ga3da0be917ac42157f0d33e3e1412379b', 1, 'deeptrustapi.h']]], + ['virq_5fgetvector', ['vIRQ_GetVector', ['../group__hypervisor.html#gaaa9c852e90077dd4c553240d769b3658', 1, 'deeptrustapi.h']]], + ['virq_5fsetpendingirq', ['vIRQ_SetPendingIRQ', ['../group__hypervisor.html#gab5570c2fa5a04a3a183cdef960a43c6b', 1, 'deeptrustapi.h']]], + ['virq_5fsetpriority', ['vIRQ_SetPriority', ['../group__hypervisor.html#ga3c725e15df2f30fdaed9f1873a7eebdf', 1, 'deeptrustapi.h']]], + ['virq_5fsetvector', ['vIRQ_SetVector', ['../group__hypervisor.html#ga3bf7917bc9150d1b91bec5d41962ff13', 1, 'deeptrustapi.h']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/functions_6.js b/Libraries/FCL/doc/output/html/search/functions_6.js index 83b9fb1bdaa..6b00343888a 100644 --- a/Libraries/FCL/doc/output/html/search/functions_6.js +++ b/Libraries/FCL/doc/output/html/search/functions_6.js @@ -1,13 +1,13 @@ var searchData= [ - ['virq_5fclearpendingirq',['vIRQ_ClearPendingIRQ',['../group__hypervisor.html#gaa02ff863ab222f97723b60e59f6d92d8',1,'deeptrustapi.h']]], - ['virq_5fdisableirq',['vIRQ_DisableIRQ',['../group__hypervisor.html#ga7beb8d1fe68378367bcb8085a2d16cd5',1,'deeptrustapi.h']]], - ['virq_5fenableirq',['vIRQ_EnableIRQ',['../group__hypervisor.html#ga3dd01fda80a57db36a78994d0cae91ee',1,'deeptrustapi.h']]], - ['virq_5fgetlevel',['vIRQ_GetLevel',['../group__hypervisor.html#ga880e3229f62cfff1c638c5dd6a1e9050',1,'deeptrustapi.h']]], - ['virq_5fgetpendingirq',['vIRQ_GetPendingIRQ',['../group__hypervisor.html#gad450b31ead2ec4f7bb2dbe07ebcfd8e7',1,'deeptrustapi.h']]], - ['virq_5fgetpriority',['vIRQ_GetPriority',['../group__hypervisor.html#ga3da0be917ac42157f0d33e3e1412379b',1,'deeptrustapi.h']]], - ['virq_5fgetvector',['vIRQ_GetVector',['../group__hypervisor.html#gaaa9c852e90077dd4c553240d769b3658',1,'deeptrustapi.h']]], - ['virq_5fsetpendingirq',['vIRQ_SetPendingIRQ',['../group__hypervisor.html#gab5570c2fa5a04a3a183cdef960a43c6b',1,'deeptrustapi.h']]], - ['virq_5fsetpriority',['vIRQ_SetPriority',['../group__hypervisor.html#ga3c725e15df2f30fdaed9f1873a7eebdf',1,'deeptrustapi.h']]], - ['virq_5fsetvector',['vIRQ_SetVector',['../group__hypervisor.html#ga3bf7917bc9150d1b91bec5d41962ff13',1,'deeptrustapi.h']]] + ['virq_5fclearpendingirq', ['vIRQ_ClearPendingIRQ', ['../group__hypervisor.html#gaa02ff863ab222f97723b60e59f6d92d8', 1, 'deeptrustapi.h']]], + ['virq_5fdisableirq', ['vIRQ_DisableIRQ', ['../group__hypervisor.html#ga7beb8d1fe68378367bcb8085a2d16cd5', 1, 'deeptrustapi.h']]], + ['virq_5fenableirq', ['vIRQ_EnableIRQ', ['../group__hypervisor.html#ga3dd01fda80a57db36a78994d0cae91ee', 1, 'deeptrustapi.h']]], + ['virq_5fgetlevel', ['vIRQ_GetLevel', ['../group__hypervisor.html#ga880e3229f62cfff1c638c5dd6a1e9050', 1, 'deeptrustapi.h']]], + ['virq_5fgetpendingirq', ['vIRQ_GetPendingIRQ', ['../group__hypervisor.html#gad450b31ead2ec4f7bb2dbe07ebcfd8e7', 1, 'deeptrustapi.h']]], + ['virq_5fgetpriority', ['vIRQ_GetPriority', ['../group__hypervisor.html#ga3da0be917ac42157f0d33e3e1412379b', 1, 'deeptrustapi.h']]], + ['virq_5fgetvector', ['vIRQ_GetVector', ['../group__hypervisor.html#gaaa9c852e90077dd4c553240d769b3658', 1, 'deeptrustapi.h']]], + ['virq_5fsetpendingirq', ['vIRQ_SetPendingIRQ', ['../group__hypervisor.html#gab5570c2fa5a04a3a183cdef960a43c6b', 1, 'deeptrustapi.h']]], + ['virq_5fsetpriority', ['vIRQ_SetPriority', ['../group__hypervisor.html#ga3c725e15df2f30fdaed9f1873a7eebdf', 1, 'deeptrustapi.h']]], + ['virq_5fsetvector', ['vIRQ_SetVector', ['../group__hypervisor.html#ga3bf7917bc9150d1b91bec5d41962ff13', 1, 'deeptrustapi.h']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/groups_0.js b/Libraries/FCL/doc/output/html/search/groups_0.js index 9098b8ca667..a1a25aaac86 100644 --- a/Libraries/FCL/doc/output/html/search/groups_0.js +++ b/Libraries/FCL/doc/output/html/search/groups_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['application_20box_28es_29',['Application box(es)',['../group__appbx.html',1,'']]] + ['application_20box_28es_29', ['Application box(es)', ['../group__appbx.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/groups_1.js b/Libraries/FCL/doc/output/html/search/groups_1.js index 6b2f5211ecc..96066fdbfee 100644 --- a/Libraries/FCL/doc/output/html/search/groups_1.js +++ b/Libraries/FCL/doc/output/html/search/groups_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['cryptography',['Cryptography',['../group__ssbx___crypto.html',1,'']]] + ['cryptography', ['Cryptography', ['../group__ssbx___crypto.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/groups_2.js b/Libraries/FCL/doc/output/html/search/groups_2.js index 87b62591c85..cf25d95f3c4 100644 --- a/Libraries/FCL/doc/output/html/search/groups_2.js +++ b/Libraries/FCL/doc/output/html/search/groups_2.js @@ -1,4 +1,4 @@ var searchData= [ - ['emv_2dlevel_201_20smart_20card',['EMV-Level 1 Smart Card',['../group__pcibx__sc.html',1,'']]] + ['emv_2dlevel_201_20smart_20card', ['EMV-Level 1 Smart Card', ['../group__pcibx__sc.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/groups_3.js b/Libraries/FCL/doc/output/html/search/groups_3.js index c343dfb8db7..84618e72b3c 100644 --- a/Libraries/FCL/doc/output/html/search/groups_3.js +++ b/Libraries/FCL/doc/output/html/search/groups_3.js @@ -1,4 +1,4 @@ var searchData= [ - ['global_20management_20functions',['Global management functions',['../group__ssbx___main.html',1,'']]] + ['global_20management_20functions', ['Global management functions', ['../group__ssbx___main.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/groups_4.js b/Libraries/FCL/doc/output/html/search/groups_4.js index 72dbb31c554..f0bf6d2ea12 100644 --- a/Libraries/FCL/doc/output/html/search/groups_4.js +++ b/Libraries/FCL/doc/output/html/search/groups_4.js @@ -1,4 +1,4 @@ var searchData= [ - ['i_2fo_20api',['I/O API',['../group__ssbx___i_o.html',1,'']]] + ['i_2fo_20api', ['I/O API', ['../group__ssbx___i_o.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/groups_5.js b/Libraries/FCL/doc/output/html/search/groups_5.js index f990322fed1..1863e374cbe 100644 --- a/Libraries/FCL/doc/output/html/search/groups_5.js +++ b/Libraries/FCL/doc/output/html/search/groups_5.js @@ -1,4 +1,4 @@ var searchData= [ - ['key_20manager',['Key Manager',['../group__ssbx___key_management.html',1,'']]] + ['key_20manager', ['Key Manager', ['../group__ssbx___key_management.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/groups_6.js b/Libraries/FCL/doc/output/html/search/groups_6.js index 2abd77f4a2b..bbd432ad361 100644 --- a/Libraries/FCL/doc/output/html/search/groups_6.js +++ b/Libraries/FCL/doc/output/html/search/groups_6.js @@ -1,5 +1,5 @@ var searchData= [ - ['magnetic_20stripe',['Magnetic Stripe',['../group__pcibx___m_s_r.html',1,'']]], - ['memory_20manager',['Memory Manager',['../group__ssbx___mem.html',1,'']]] + ['magnetic_20stripe', ['Magnetic Stripe', ['../group__pcibx___m_s_r.html', 1, '']]], + ['memory_20manager', ['Memory Manager', ['../group__ssbx___mem.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/groups_7.js b/Libraries/FCL/doc/output/html/search/groups_7.js index 496e93aed62..c33145f83d3 100644 --- a/Libraries/FCL/doc/output/html/search/groups_7.js +++ b/Libraries/FCL/doc/output/html/search/groups_7.js @@ -1,4 +1,4 @@ var searchData= [ - ['operating_20system_2c_20drivers_2c_20c_20library_2c_20other_20libraries_2e_2e_2e',['Operating system, drivers, C library, other libraries...',['../group__os.html',1,'']]] + ['operating_20system_2c_20drivers_2c_20c_20library_2c_20other_20libraries_2e_2e_2e', ['Operating system, drivers, C library, other libraries...', ['../group__os.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/groups_8.js b/Libraries/FCL/doc/output/html/search/groups_8.js index 9d0d5acde07..a29e866911c 100644 --- a/Libraries/FCL/doc/output/html/search/groups_8.js +++ b/Libraries/FCL/doc/output/html/search/groups_8.js @@ -1,5 +1,5 @@ var searchData= [ - ['pci_20security_20services_2c_20security_20functions_20dedicated_20to_20pci_20pts_20poi_20security',['PCI Security Services, Security functions dedicated to PCI PTS POI security',['../group__pcibx.html',1,'']]], - ['pin_20handling',['PIN handling',['../group__pcibx___p_i_n.html',1,'']]] + ['pci_20security_20services_2c_20security_20functions_20dedicated_20to_20pci_20pts_20poi_20security', ['PCI Security Services, Security functions dedicated to PCI PTS POI security', ['../group__pcibx.html', 1, '']]], + ['pin_20handling', ['PIN handling', ['../group__pcibx___p_i_n.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/groups_9.js b/Libraries/FCL/doc/output/html/search/groups_9.js index e1944c55e20..79e0516cca3 100644 --- a/Libraries/FCL/doc/output/html/search/groups_9.js +++ b/Libraries/FCL/doc/output/html/search/groups_9.js @@ -1,4 +1,4 @@ var searchData= [ - ['secure_20sandbox_20services_20_28generic_20security_20functions_29',['Secure Sandbox services (Generic Security functions)',['../group__ssbx.html',1,'']]] + ['secure_20sandbox_20services_20_28generic_20security_20functions_29', ['Secure Sandbox services (Generic Security functions)', ['../group__ssbx.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/groups_a.js b/Libraries/FCL/doc/output/html/search/groups_a.js index 9233a981285..4e323e854f2 100644 --- a/Libraries/FCL/doc/output/html/search/groups_a.js +++ b/Libraries/FCL/doc/output/html/search/groups_a.js @@ -1,4 +1,4 @@ var searchData= [ - ['uvisor_20api',['uVisor API',['../group__hypervisor.html',1,'']]] + ['uvisor_20api', ['uVisor API', ['../group__hypervisor.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/pages_0.js b/Libraries/FCL/doc/output/html/search/pages_0.js index 3534537bf74..1681df791e7 100644 --- a/Libraries/FCL/doc/output/html/search/pages_0.js +++ b/Libraries/FCL/doc/output/html/search/pages_0.js @@ -1,5 +1,5 @@ var searchData= [ - ['references',['References',['../_r_e_f_e_r_e_n_c_e_s.html',1,'']]], - ['release_20notes',['Release Notes',['../_r_e_l_e_a_s_e__n_o_t_e_s.html',1,'']]] + ['references', ['References', ['../_r_e_f_e_r_e_n_c_e_s.html', 1, '']]], + ['release_20notes', ['Release Notes', ['../_r_e_l_e_a_s_e__n_o_t_e_s.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/pages_1.js b/Libraries/FCL/doc/output/html/search/pages_1.js index 3f560514777..79be04d3ed4 100644 --- a/Libraries/FCL/doc/output/html/search/pages_1.js +++ b/Libraries/FCL/doc/output/html/search/pages_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['security_20guidelines',['Security Guidelines',['../_p_c_i_g_u_i_d_a_n_c_e.html',1,'']]] + ['security_20guidelines', ['Security Guidelines', ['../_p_c_i_g_u_i_d_a_n_c_e.html', 1, '']]] ]; diff --git a/Libraries/FCL/doc/output/html/search/search.css b/Libraries/FCL/doc/output/html/search/search.css index 08288b2791b..a4f38eaf6e2 100644 --- a/Libraries/FCL/doc/output/html/search/search.css +++ b/Libraries/FCL/doc/output/html/search/search.css @@ -129,7 +129,7 @@ span.SelectionMark { a.SelectItem { display: block; outline-style: none; - color: #000000; + color: #000000; text-decoration: none; padding-left: 6px; padding-right: 12px; @@ -137,7 +137,7 @@ a.SelectItem { a.SelectItem:focus, a.SelectItem:active { - color: #000000; + color: #000000; outline-style: none; text-decoration: none; } @@ -171,7 +171,7 @@ iframe#MSearchResults { #SRIndex { - clear:both; + clear:both; padding-bottom: 15px; } @@ -190,7 +190,7 @@ body.SRPage { } .SRChildren { - padding-left: 3ex; padding-bottom: .5em + padding-left: 3ex; padding-bottom: .5em } .SRPage .SRChildren { @@ -198,7 +198,7 @@ body.SRPage { } .SRSymbol { - font-weight: bold; + font-weight: bold; color: #3E817B; font-family: Arial, Verdana, sans-serif; text-decoration: none; @@ -207,7 +207,7 @@ body.SRPage { a.SRScope { display: block; - color: #3E817B; + color: #3E817B; font-family: Arial, Verdana, sans-serif; text-decoration: none; outline: none; diff --git a/Libraries/FCL/doc/output/html/search/search.js b/Libraries/FCL/doc/output/html/search/search.js index dedce3bf093..ce6a7e117cc 100644 --- a/Libraries/FCL/doc/output/html/search/search.js +++ b/Libraries/FCL/doc/output/html/search/search.js @@ -230,7 +230,7 @@ function SearchBox(name, resultsPath, inFrame, label) this.SelectItemSet = function(id) { - var i,j=0; + var i, j=0; var win=this.DOMSearchSelectWindow(); for (i=0;i @@ -59,12 +59,12 @@
    -
    @@ -76,7 +76,7 @@
    -
    diff --git a/Libraries/FCL/doc/output/html/struct_certification_authorities.html b/Libraries/FCL/doc/output/html/struct_certification_authorities.html index d07d5365b51..ae9719e7366 100644 --- a/Libraries/FCL/doc/output/html/struct_certification_authorities.html +++ b/Libraries/FCL/doc/output/html/struct_certification_authorities.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@
    -
    @@ -76,7 +76,7 @@
    -
    diff --git a/Libraries/FCL/doc/output/html/struct_m_e_m_s_e_c___h_a_n_d_l_e.html b/Libraries/FCL/doc/output/html/struct_m_e_m_s_e_c___h_a_n_d_l_e.html index 71c6b159086..64b4031adf9 100644 --- a/Libraries/FCL/doc/output/html/struct_m_e_m_s_e_c___h_a_n_d_l_e.html +++ b/Libraries/FCL/doc/output/html/struct_m_e_m_s_e_c___h_a_n_d_l_e.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@
    -
    @@ -76,7 +76,7 @@
    -
    diff --git a/Libraries/FCL/doc/output/html/struct_t_r_a_c_e__log__display.html b/Libraries/FCL/doc/output/html/struct_t_r_a_c_e__log__display.html index 12198bf4e01..bf32d3fce0e 100644 --- a/Libraries/FCL/doc/output/html/struct_t_r_a_c_e__log__display.html +++ b/Libraries/FCL/doc/output/html/struct_t_r_a_c_e__log__display.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@
    -
    @@ -76,7 +76,7 @@
    -
    diff --git a/Libraries/FCL/doc/output/html/struct_tracehandlers_config.html b/Libraries/FCL/doc/output/html/struct_tracehandlers_config.html index 4696eb25aad..32f4e72b0bb 100644 --- a/Libraries/FCL/doc/output/html/struct_tracehandlers_config.html +++ b/Libraries/FCL/doc/output/html/struct_tracehandlers_config.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@
    -
    @@ -76,7 +76,7 @@
    -
    diff --git a/Libraries/FCL/doc/output/html/structbox__context.html b/Libraries/FCL/doc/output/html/structbox__context.html index 4198e33f1e9..e28397d632b 100644 --- a/Libraries/FCL/doc/output/html/structbox__context.html +++ b/Libraries/FCL/doc/output/html/structbox__context.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@
    -
    @@ -76,7 +76,7 @@
    -
    diff --git a/Libraries/FCL/doc/output/html/structdata.html b/Libraries/FCL/doc/output/html/structdata.html index a55e2a2e484..694bd01853d 100644 --- a/Libraries/FCL/doc/output/html/structdata.html +++ b/Libraries/FCL/doc/output/html/structdata.html @@ -41,13 +41,13 @@ @@ -59,12 +59,12 @@
    -
    @@ -76,7 +76,7 @@
    -
    diff --git a/Libraries/FCL/doc/output/html/tabs.css b/Libraries/FCL/doc/output/html/tabs.css index a28614b8e3d..aabd2fd92f4 100644 --- a/Libraries/FCL/doc/output/html/tabs.css +++ b/Libraries/FCL/doc/output/html/tabs.css @@ -1 +1 @@ -.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#doc-content{overflow:auto;display:block;padding:0;margin:0;-webkit-overflow-scrolling:touch}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file +.sm{position:relative;z-index:9999}.sm, .sm ul, .sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}.sm-rtl, .sm-rtl ul, .sm-rtl li{direction:rtl;text-align:right}.sm>li>h1, .sm>li>h2, .sm>li>h3, .sm>li>h4, .sm>li>h5, .sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li, .sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm, .sm *, .sm *:before, .sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#doc-content{overflow:auto;display:block;padding:0;margin:0;-webkit-overflow-scrolling:touch}.sm-dox{background-image:url("tab_b.png")}.sm-dox a, .sm-dox a:focus, .sm-dox a:hover, .sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande", "Geneva", "Helvetica", Arial, sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255, 255, 255, 0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255, 255, 255, 0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a, .sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a, .sm-dox>li:last-child>*:not(ul) a, .sm-dox>li:last-child>ul, .sm-dox>li:last-child>ul>li:last-child>a, .sm-dox>li:last-child>ul>li:last-child>*:not(ul) a, .sm-dox>li:last-child>ul>li:last-child>ul, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted, .sm-dox>li:last-child>*:not(ul) a.highlighted, .sm-dox>li:last-child>ul>li:last-child>a.highlighted, .sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted, .sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162, 162, 162, 0.1)}.sm-dox ul a, .sm-dox ul a:focus, .sm-dox ul a:hover, .sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a, .sm-dox ul ul a:hover, .sm-dox ul ul a:focus, .sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a, .sm-dox ul ul ul a:hover, .sm-dox ul ul ul a:focus, .sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a, .sm-dox ul ul ul ul a:hover, .sm-dox ul ul ul ul a:focus, .sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a, .sm-dox ul ul ul ul ul a:hover, .sm-dox ul ul ul ul ul a:focus, .sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li, .sm-dox.sm-rtl ul li, .sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a, .sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a, .sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a, .sm-dox a:focus, .sm-dox a:active, .sm-dox a:hover, .sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before, .sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0, 0, 0, 0.2);-webkit-box-shadow:0 5px 9px rgba(0, 0, 0, 0.2);box-shadow:0 5px 9px rgba(0, 0, 0, 0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a, .sm-dox ul a:hover, .sm-dox ul a:focus, .sm-dox ul a:active, .sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up, .sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover, .sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow, .sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow, .sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover, .sm-dox.sm-vertical a:focus, .sm-dox.sm-vertical a:active, .sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before, .sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover, .sm-dox.sm-vertical ul a:focus, .sm-dox.sm-vertical ul a:active, .sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file diff --git a/Libraries/FCL/doc/output/latex/Makefile b/Libraries/FCL/doc/output/latex/Makefile index 8cc3866f4a0..c4ee0484a3a 100644 --- a/Libraries/FCL/doc/output/latex/Makefile +++ b/Libraries/FCL/doc/output/latex/Makefile @@ -3,19 +3,19 @@ all: refman.pdf pdf: refman.pdf refman.pdf: clean refman.tex - pdflatex refman - makeindex refman.idx - pdflatex refman - latex_count=8 ; \ - while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ - do \ - echo "Rerunning latex...." ;\ - pdflatex refman ;\ - latex_count=`expr $$latex_count - 1` ;\ - done - makeindex refman.idx - pdflatex refman + pdflatex refman + makeindex refman.idx + pdflatex refman + latex_count=8 ; \ + while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ + do \ + echo "Rerunning latex...." ;\ + pdflatex refman ;\ + latex_count=`expr $$latex_count - 1` ;\ + done + makeindex refman.idx + pdflatex refman clean: - rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf + rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf diff --git a/Libraries/FCL/doc/output/latex/_r_e_l_e_a_s_e__n_o_t_e_s.tex b/Libraries/FCL/doc/output/latex/_r_e_l_e_a_s_e__n_o_t_e_s.tex index 516b403717f..bb742153d2e 100644 --- a/Libraries/FCL/doc/output/latex/_r_e_l_e_a_s_e__n_o_t_e_s.tex +++ b/Libraries/FCL/doc/output/latex/_r_e_l_e_a_s_e__n_o_t_e_s.tex @@ -70,5 +70,5 @@ \item Add automatic reset every 24h \item Evolutions in keypad handling and display following M\+A\+X32552 support addition \item Buffers containing keypad/touchscreen entries are now correctly kept as private -\item Support of power management +\item Support of power management \end{DoxyItemize} \ No newline at end of file diff --git a/Libraries/FCL/doc/output/latex/doxygen.sty b/Libraries/FCL/doc/output/latex/doxygen.sty index 2510b410984..ee9c38fec43 100644 --- a/Libraries/FCL/doc/output/latex/doxygen.sty +++ b/Libraries/FCL/doc/output/latex/doxygen.sty @@ -273,10 +273,10 @@ \tabulinesep=1mm% \par% \ifthenelse{\equal{#1}{}}% - {\begin{longtabu} spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description + {\begin{longtabu} spread 0pt [l]{|X[-1, l]|X[-1, l]|}}% name + description {\ifthenelse{\equal{#1}{1}}% - {\begin{longtabu} spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc - {\begin{longtabu} spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc + {\begin{longtabu} spread 0pt [l]{|X[-1, l]|X[-1, l]|X[-1, l]|}}% in/out + name + desc + {\begin{longtabu} spread 0pt [l]{|X[-1, l]|X[-1, l]|X[-1, l]|X[-1, l]|}}% in/out + type + name + desc } \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% \hline% @@ -293,7 +293,7 @@ \newenvironment{DoxyFields}[1]{% \tabulinesep=1mm% \par% - \begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}% + \begin{longtabu} spread 0pt [l]{|X[-1, r]|X[-1, l]|X[-1, l]|}% \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% \hline% \endfirsthead% @@ -309,7 +309,7 @@ \newenvironment{DoxyEnumFields}[1]{% \tabulinesep=1mm% \par% - \begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \begin{longtabu} spread 0pt [l]{|X[-1, r]|X[-1, l]|}% \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% \hline% \endfirsthead% @@ -323,7 +323,7 @@ % Used for parameters within a detailed function description \newenvironment{DoxyParamCaption}{% - \renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}% + \renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}% }{% } @@ -331,7 +331,7 @@ \newenvironment{DoxyRetVals}[1]{% \tabulinesep=1mm% \par% - \begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \begin{longtabu} spread 0pt [l]{|X[-1, r]|X[-1, l]|}% \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% \hline% \endfirsthead% @@ -347,7 +347,7 @@ \newenvironment{DoxyExceptions}[1]{% \tabulinesep=1mm% \par% - \begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \begin{longtabu} spread 0pt [l]{|X[-1, r]|X[-1, l]|}% \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% \hline% \endfirsthead% @@ -363,7 +363,7 @@ \newenvironment{DoxyTemplParams}[1]{% \tabulinesep=1mm% \par% - \begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \begin{longtabu} spread 0pt [l]{|X[-1, r]|X[-1, l]|}% \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% \hline% \endfirsthead% @@ -459,7 +459,7 @@ % Used when hyperlinks are turned off \newcommand{\doxyref}[3]{% - \textbf{#1} (\textnormal{#2}\,\pageref{#3})% + \textbf{#1} (\textnormal{#2}\, \pageref{#3})% } % Used to link to a table when hyperlinks are turned on @@ -477,17 +477,17 @@ \newcommand{\rcurly}{\}} % Colors used for syntax highlighting -\definecolor{comment}{rgb}{0.5,0.0,0.0} -\definecolor{keyword}{rgb}{0.0,0.5,0.0} -\definecolor{keywordtype}{rgb}{0.38,0.25,0.125} -\definecolor{keywordflow}{rgb}{0.88,0.5,0.0} -\definecolor{preprocessor}{rgb}{0.5,0.38,0.125} -\definecolor{stringliteral}{rgb}{0.0,0.125,0.25} -\definecolor{charliteral}{rgb}{0.0,0.5,0.5} -\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0} -\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43} -\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0} -\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0} +\definecolor{comment}{rgb}{0.5, 0.0, 0.0} +\definecolor{keyword}{rgb}{0.0, 0.5, 0.0} +\definecolor{keywordtype}{rgb}{0.38, 0.25, 0.125} +\definecolor{keywordflow}{rgb}{0.88, 0.5, 0.0} +\definecolor{preprocessor}{rgb}{0.5, 0.38, 0.125} +\definecolor{stringliteral}{rgb}{0.0, 0.125, 0.25} +\definecolor{charliteral}{rgb}{0.0, 0.5, 0.5} +\definecolor{vhdldigit}{rgb}{1.0, 0.0, 1.0} +\definecolor{vhdlkeyword}{rgb}{0.43, 0.0, 0.43} +\definecolor{vhdllogic}{rgb}{1.0, 0.0, 0.0} +\definecolor{vhdlchar}{rgb}{0.0, 0.0, 0.0} % Color used for table heading \newcommand{\tableheadbgcolor}{lightgray}% diff --git a/Libraries/FCL/doc/output/latex/group__appbx.aux b/Libraries/FCL/doc/output/latex/group__appbx.aux index 7b969c9ebd7..698aeb8f775 100644 --- a/Libraries/FCL/doc/output/latex/group__appbx.aux +++ b/Libraries/FCL/doc/output/latex/group__appbx.aux @@ -1,4 +1,4 @@ -\relax +\relax \providecommand\hyper@newdestlabel[2]{} \@writefile{toc}{\contentsline {section}{\numberline {6.2}Application box(es)}{27}{section.6.2}} \newlabel{group__appbx}{{6.2}{27}{Application box(es)}{section.6.2}{}} diff --git a/Libraries/FCL/doc/output/latex/group__appbx.tex b/Libraries/FCL/doc/output/latex/group__appbx.tex index c61effdbc9a..70bcb6cf384 100644 --- a/Libraries/FCL/doc/output/latex/group__appbx.tex +++ b/Libraries/FCL/doc/output/latex/group__appbx.tex @@ -12,6 +12,6 @@ \begin{DoxyImageNoCaption} - \mbox{\includegraphics[width=\textwidth,height=\textheight/2,keepaspectratio=true]{pci_cortex.png}} + \mbox{\includegraphics[width=\textwidth, height=\textheight/2, keepaspectratio=true]{pci_cortex.png}} \end{DoxyImageNoCaption} \ No newline at end of file diff --git a/Libraries/FCL/doc/output/latex/group__hypervisor.aux b/Libraries/FCL/doc/output/latex/group__hypervisor.aux index 864ff8393cc..7ac90809bd6 100644 --- a/Libraries/FCL/doc/output/latex/group__hypervisor.aux +++ b/Libraries/FCL/doc/output/latex/group__hypervisor.aux @@ -1,20 +1,20 @@ -\relax +\relax \providecommand\hyper@newdestlabel[2]{} \@writefile{toc}{\contentsline {section}{\numberline {6.7}u\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Visor A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}PI}{47}{section.6.7}} \newlabel{group__hypervisor}{{6.7}{47}{u\+Visor A\+PI}{section.6.7}{}} -\gdef \LT@xxi {\LT@entry - {1}{109.60912pt}\LT@entry +\gdef \LT@xxi {\LT@entry + {1}{109.60912pt}\LT@entry {1}{59.14963pt}} \@writefile{toc}{\contentsline {subsection}{\numberline {6.7.1}Detailed Description}{48}{subsection.6.7.1}} \@writefile{toc}{\contentsline {subsection}{\numberline {6.7.2}Data Structure Documentation}{48}{subsection.6.7.2}} \newlabel{struct_uvisor_box_acl_item}{{6.7.2}{48}{Data Structure Documentation}{subsection.6.7.2}{}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.7.2.1}struct Uvisor\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Box\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Acl\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Item}{48}{subsubsection.6.7.2.1}} -\gdef \LT@xxii {\LT@entry - {3}{93.78915pt}\LT@entry - {3}{37.39972pt}\LT@entry +\gdef \LT@xxii {\LT@entry + {3}{93.78915pt}\LT@entry + {3}{37.39972pt}\LT@entry {3}{12.4pt}} -\gdef \LT@xxiii {\LT@entry - {3}{84.78914pt}\LT@entry +\gdef \LT@xxiii {\LT@entry + {3}{84.78914pt}\LT@entry {3}{370.45497pt}} \newlabel{group__hypervisor_ae5e1b8a311ba7d63a3380828d266bc82}{{6.20}{49}{struct Uvisor\+Box\+Acl\+Item}{table.6.20}{}} \newlabel{group__hypervisor_aebb70c2aab3407a9f05334c47131a43b}{{6.20}{49}{struct Uvisor\+Box\+Acl\+Item}{table.6.20}{}} @@ -24,19 +24,19 @@ \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.7.3.1}U\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}V\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}S\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}O\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}R\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}O\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}X\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}C\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}O\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}N\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}F\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}IG}{49}{subsubsection.6.7.3.1}} \newlabel{group__hypervisor_gafe52bfcc466d459d149c63966c2f4a58}{{6.7.3.1}{49}{\texorpdfstring {U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+C\+O\+N\+F\+IG}{UVISOR\_BOX\_CONFIG}}{table.6.21}{}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.7.3.2}U\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}V\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}S\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}O\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}R\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}B\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}O\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}X\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}N\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}E\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}S\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}CE}{49}{subsubsection.6.7.3.2}} -\gdef \LT@xxiv {\LT@entry - {3}{57.22968pt}\LT@entry +\gdef \LT@xxiv {\LT@entry + {3}{57.22968pt}\LT@entry {3}{117.3692pt}} -\gdef \LT@xxv {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{62.65953pt}\LT@entry +\gdef \LT@xxv {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{62.65953pt}\LT@entry {3}{252.32796pt}} \newlabel{group__hypervisor_ga7cb080278fc7d660addf9bbff6d3f2da}{{6.7.3.2}{50}{\texorpdfstring {U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+N\+A\+M\+E\+S\+P\+A\+CE}{UVISOR\_BOX\_NAMESPACE}}{table.6.22}{}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.7.3.3}U\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}V\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}S\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}O\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}R\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}S\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}E\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}T\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}O\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}DE}{50}{subsubsection.6.7.3.3}} \newlabel{group__hypervisor_gae90f548ce110da855610f79301aafe34}{{6.7.3.3}{50}{\texorpdfstring {U\+V\+I\+S\+O\+R\+\_\+\+S\+E\+T\+\_\+\+M\+O\+DE}{UVISOR\_SET\_MODE}}{Item.21}{}} -\gdef \LT@xxvi {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{82.08922pt}\LT@entry +\gdef \LT@xxvi {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{82.08922pt}\LT@entry {3}{252.32796pt}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.7.3.4}U\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}V\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}S\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}O\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}R\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}S\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}E\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}T\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}O\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}D\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}E\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}CL}{51}{subsubsection.6.7.3.4}} \@writefile{toc}{\contentsline {subsection}{\numberline {6.7.4}Typedef Documentation}{51}{subsection.6.7.4}} @@ -45,48 +45,48 @@ \@writefile{toc}{\contentsline {subsection}{\numberline {6.7.5}Function Documentation}{51}{subsection.6.7.5}} \newlabel{group__hypervisor_ga6e7f7b03367daefa2cbcb7e4f0538ba7}{{6.7.5}{51}{Function Documentation}{subsection.6.7.5}{}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.7.5.1}check\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}acl()}{51}{subsubsection.6.7.5.1}} -\gdef \LT@xxvii {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{46.77971pt}\LT@entry +\gdef \LT@xxvii {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{46.77971pt}\LT@entry {3}{233.7784pt}} -\gdef \LT@xxviii {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{65.1494pt}\LT@entry +\gdef \LT@xxviii {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{65.1494pt}\LT@entry {3}{366.79482pt}} \newlabel{group__hypervisor_gafdaf52538986a558e934eab65221731e}{{6.7.5.1}{52}{\texorpdfstring {check\+\_\+acl()}{check\_acl()}}{table.6.25}{}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.7.5.2}rpc\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}fncall\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}waitfor()}{52}{subsubsection.6.7.5.2}} \newlabel{group__hypervisor_gab099ca7d08f626791039573dbff14af5}{{6.7.5.2}{52}{\texorpdfstring {rpc\+\_\+fncall\+\_\+waitfor()}{rpc\_fncall\_waitfor()}}{table.6.26}{}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.7.5.3}uvisor\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}box\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}id\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}self()}{52}{subsubsection.6.7.5.3}} \newlabel{group__hypervisor_gab605e738e6bc828cd9efb6eacca79685}{{6.7.5.3}{52}{\texorpdfstring {uvisor\+\_\+box\+\_\+id\+\_\+self()}{uvisor\_box\_id\_self()}}{subsubsection.6.7.5.3}{}} -\gdef \LT@xxix {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{74.86963pt}\LT@entry +\gdef \LT@xxix {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{74.86963pt}\LT@entry {3}{244.2383pt}} -\gdef \LT@xxx {\LT@entry - {3}{227.82205pt}\LT@entry +\gdef \LT@xxx {\LT@entry + {3}{227.82205pt}\LT@entry {3}{227.42206pt}} -\gdef \LT@xxxi {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{46.77971pt}\LT@entry +\gdef \LT@xxxi {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{46.77971pt}\LT@entry {3}{245.21844pt}} -\gdef \LT@xxxii {\LT@entry - {3}{162.16937pt}\LT@entry +\gdef \LT@xxxii {\LT@entry + {3}{162.16937pt}\LT@entry {3}{142.97897pt}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.7.5.4}uvisor\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}box\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}namespace()}{53}{subsubsection.6.7.5.4}} \newlabel{group__hypervisor_ga82e5cbff1a1a26974ed1e5f493607cf2}{{6.7.5.4}{53}{\texorpdfstring {uvisor\+\_\+box\+\_\+namespace()}{uvisor\_box\_namespace()}}{table.6.28}{}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.7.5.5}uvisor\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}box\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}signingkey()}{53}{subsubsection.6.7.5.5}} \newlabel{group__hypervisor_gaa02ff863ab222f97723b60e59f6d92d8}{{6.7.5.5}{53}{\texorpdfstring {uvisor\+\_\+box\+\_\+signingkey()}{uvisor\_box\_signingkey()}}{table.6.30}{}} -\gdef \LT@xxxiii {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{28.69977pt}\LT@entry +\gdef \LT@xxxiii {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{28.69977pt}\LT@entry {3}{34.61984pt}} -\gdef \LT@xxxiv {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{28.69977pt}\LT@entry +\gdef \LT@xxxiv {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{28.69977pt}\LT@entry {3}{34.61984pt}} -\gdef \LT@xxxv {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{28.69977pt}\LT@entry +\gdef \LT@xxxv {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{28.69977pt}\LT@entry {3}{34.61984pt}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.7.5.6}v\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}R\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Q\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Clear\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Pending\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}R\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Q()}{54}{subsubsection.6.7.5.6}} \newlabel{group__hypervisor_ga7beb8d1fe68378367bcb8085a2d16cd5}{{6.7.5.6}{54}{\texorpdfstring {v\+I\+R\+Q\+\_\+\+Clear\+Pending\+I\+R\+Q()}{vIRQ\_ClearPendingIRQ()}}{table.6.31}{}} @@ -97,17 +97,17 @@ \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.7.5.9}v\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}R\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Q\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Get\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Level()}{54}{subsubsection.6.7.5.9}} \newlabel{group__hypervisor_gad450b31ead2ec4f7bb2dbe07ebcfd8e7}{{6.7.5.9}{54}{\texorpdfstring {v\+I\+R\+Q\+\_\+\+Get\+Level()}{vIRQ\_GetLevel()}}{subsubsection.6.7.5.9}{}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.7.5.10}v\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}R\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Q\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Get\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Pending\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}R\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Q()}{54}{subsubsection.6.7.5.10}} -\gdef \LT@xxxvi {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{28.69977pt}\LT@entry +\gdef \LT@xxxvi {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{28.69977pt}\LT@entry {3}{34.61984pt}} -\gdef \LT@xxxvii {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{28.69977pt}\LT@entry +\gdef \LT@xxxvii {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{28.69977pt}\LT@entry {3}{34.61984pt}} -\gdef \LT@xxxviii {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{28.69977pt}\LT@entry +\gdef \LT@xxxviii {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{28.69977pt}\LT@entry {3}{34.61984pt}} \newlabel{group__hypervisor_ga3da0be917ac42157f0d33e3e1412379b}{{6.7.5.10}{55}{\texorpdfstring {v\+I\+R\+Q\+\_\+\+Get\+Pending\+I\+R\+Q()}{vIRQ\_GetPendingIRQ()}}{table.6.34}{}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.7.5.11}v\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}R\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Q\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Get\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Priority()}{55}{subsubsection.6.7.5.11}} @@ -115,17 +115,17 @@ \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.7.5.12}v\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}R\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Q\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Get\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Vector()}{55}{subsubsection.6.7.5.12}} \newlabel{group__hypervisor_gab5570c2fa5a04a3a183cdef960a43c6b}{{6.7.5.12}{55}{\texorpdfstring {v\+I\+R\+Q\+\_\+\+Get\+Vector()}{vIRQ\_GetVector()}}{table.6.36}{}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.7.5.13}v\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}R\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Q\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Set\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Pending\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}R\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Q()}{55}{subsubsection.6.7.5.13}} -\gdef \LT@xxxix {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{28.69977pt}\LT@entry +\gdef \LT@xxxix {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{28.69977pt}\LT@entry {3}{34.61984pt}} -\gdef \LT@xl {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{42.9594pt}\LT@entry +\gdef \LT@xl {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{42.9594pt}\LT@entry {3}{123.43852pt}} -\gdef \LT@xli {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{37.3896pt}\LT@entry +\gdef \LT@xli {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{37.3896pt}\LT@entry {3}{296.07704pt}} \newlabel{group__hypervisor_ga3c725e15df2f30fdaed9f1873a7eebdf}{{6.7.5.13}{56}{\texorpdfstring {v\+I\+R\+Q\+\_\+\+Set\+Pending\+I\+R\+Q()}{vIRQ\_SetPendingIRQ()}}{table.6.37}{}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {6.7.5.14}v\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}I\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}R\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Q\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Set\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Priority()}{56}{subsubsection.6.7.5.14}} diff --git a/Libraries/FCL/doc/output/latex/group__hypervisor.tex b/Libraries/FCL/doc/output/latex/group__hypervisor.tex index 064a5e0a418..123ebd99ea6 100644 --- a/Libraries/FCL/doc/output/latex/group__hypervisor.tex +++ b/Libraries/FCL/doc/output/latex/group__hypervisor.tex @@ -2,56 +2,56 @@ \label{group__hypervisor}\index{u\+Visor A\+PI@{u\+Visor A\+PI}} \subsection*{Data Structures} \begin{DoxyCompactItemize} -\item +\item struct \hyperlink{group__hypervisor_struct_uvisor_box_acl_item}{Uvisor\+Box\+Acl\+Item} \end{DoxyCompactItemize} \subsection*{Macros} \begin{DoxyCompactItemize} -\item -\#define \hyperlink{group__hypervisor_ga6143739a0475a71e8002f540de3c53f0}{U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+C\+O\+N\+F\+IG}(box\+\_\+nameconst Uv\+Box\+Acl\+Item module\+\_\+acl\+\_\+listuint32\+\_\+t module\+\_\+stack\+\_\+size, struct \+\_\+\+\_\+your\+\_\+context, verif\+\_\+key\+\_\+id) -\begin{DoxyCompactList}\small\item\em Secure box configuration. \end{DoxyCompactList}\item +\item +\#define \hyperlink{group__hypervisor_ga6143739a0475a71e8002f540de3c53f0}{U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+C\+O\+N\+F\+IG}(box\+\_\+nameconst Uv\+Box\+Acl\+Item module\+\_\+acl\+\_\+listuint32\+\_\+t module\+\_\+stack\+\_\+size, struct \+\_\+\+\_\+your\+\_\+context, verif\+\_\+key\+\_\+id) +\begin{DoxyCompactList}\small\item\em Secure box configuration. \end{DoxyCompactList}\item \#define \hyperlink{group__hypervisor_gafe52bfcc466d459d149c63966c2f4a58}{U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+N\+A\+M\+E\+S\+P\+A\+CE}(static const char const namespace) -\begin{DoxyCompactList}\small\item\em Specify the namespace for a box. C/\+C++ pre-\/processor macro (pseudo-\/function) \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Specify the namespace for a box. C/\+C++ pre-\/processor macro (pseudo-\/function) \end{DoxyCompactList}\item \#define \hyperlink{group__hypervisor_ga7cb080278fc7d660addf9bbff6d3f2da}{U\+V\+I\+S\+O\+R\+\_\+\+S\+E\+T\+\_\+\+M\+O\+DE}(uvisor\+\_\+mode) -\begin{DoxyCompactList}\small\item\em Set mode for the u\+Visor \mbox{[}temporary\mbox{]}. \end{DoxyCompactList}\item -\#define \hyperlink{group__hypervisor_gae90f548ce110da855610f79301aafe34}{U\+V\+I\+S\+O\+R\+\_\+\+S\+E\+T\+\_\+\+M\+O\+D\+E\+\_\+\+A\+CL}(uvisor\+\_\+mode, const Uv\+Box\+Acl main\+\_\+box\+\_\+acl\+\_\+list) +\begin{DoxyCompactList}\small\item\em Set mode for the u\+Visor \mbox{[}temporary\mbox{]}. \end{DoxyCompactList}\item +\#define \hyperlink{group__hypervisor_gae90f548ce110da855610f79301aafe34}{U\+V\+I\+S\+O\+R\+\_\+\+S\+E\+T\+\_\+\+M\+O\+D\+E\+\_\+\+A\+CL}(uvisor\+\_\+mode, const Uv\+Box\+Acl main\+\_\+box\+\_\+acl\+\_\+list) \begin{DoxyCompactList}\small\item\em Set mode for the u\+Visor and provide background A\+C\+Ls for the main box. \end{DoxyCompactList}\end{DoxyCompactItemize} \subsection*{List of types} \begin{DoxyCompactItemize} -\item +\item typedef uint32\+\_\+t \hyperlink{group__hypervisor_ga1527b3a7e3df3007490669cbd26b4fe9}{Uvisor\+Box\+Acl} \end{DoxyCompactItemize} \subsection*{List of functions} \begin{DoxyCompactItemize} -\item +\item int \hyperlink{group__hypervisor_ga6e7f7b03367daefa2cbcb7e4f0538ba7}{check\+\_\+acl} (uint32\+\_\+t $\ast$p\+\_\+acl, uint32\+\_\+t keyindex) -\begin{DoxyCompactList}\small\item\em Hook called by u\+Visor during loading of secure boxes. \end{DoxyCompactList}\item -int \hyperlink{group__hypervisor_gafdaf52538986a558e934eab65221731e}{rpc\+\_\+fncall\+\_\+waitfor} (const T\+F\+N\+\_\+\+Ptr fn\+\_\+ptr\+\_\+array\mbox{[}$\,$\mbox{]}, size\+\_\+t fn\+\_\+count, int $\ast$box\+\_\+id\+\_\+caller, uint32\+\_\+t timeout\+\_\+ms) -\begin{DoxyCompactList}\small\item\em Handle incoming R\+PC, setting the parameter box\+\_\+id\+\_\+caller to the caller box ID. \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Hook called by u\+Visor during loading of secure boxes. \end{DoxyCompactList}\item +int \hyperlink{group__hypervisor_gafdaf52538986a558e934eab65221731e}{rpc\+\_\+fncall\+\_\+waitfor} (const T\+F\+N\+\_\+\+Ptr fn\+\_\+ptr\+\_\+array\mbox{[}$\, $\mbox{]}, size\+\_\+t fn\+\_\+count, int $\ast$box\+\_\+id\+\_\+caller, uint32\+\_\+t timeout\+\_\+ms) +\begin{DoxyCompactList}\small\item\em Handle incoming R\+PC, setting the parameter box\+\_\+id\+\_\+caller to the caller box ID. \end{DoxyCompactList}\item int \hyperlink{group__hypervisor_gab099ca7d08f626791039573dbff14af5}{uvisor\+\_\+box\+\_\+id\+\_\+self} (void) -\begin{DoxyCompactList}\small\item\em Get the ID of the current box. \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Get the ID of the current box. \end{DoxyCompactList}\item int \hyperlink{group__hypervisor_gab605e738e6bc828cd9efb6eacca79685}{uvisor\+\_\+box\+\_\+namespace} (int box\+\_\+id, char $\ast$box\+\_\+namespace, size\+\_\+t length) -\begin{DoxyCompactList}\small\item\em Copy the namespace of the specified box to the provided buffer. \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Copy the namespace of the specified box to the provided buffer. \end{DoxyCompactList}\item int \hyperlink{group__hypervisor_ga82e5cbff1a1a26974ed1e5f493607cf2}{uvisor\+\_\+box\+\_\+signingkey} (int box\+\_\+id, int $\ast$keyindex) -\begin{DoxyCompactList}\small\item\em Get the signing key ID of the specified box, hence its box privilege. \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Get the signing key ID of the specified box, hence its box privilege. \end{DoxyCompactList}\item void \hyperlink{group__hypervisor_gaa02ff863ab222f97723b60e59f6d92d8}{v\+I\+R\+Q\+\_\+\+Clear\+Pending\+I\+RQ} (uint32\+\_\+t irqn) -\begin{DoxyCompactList}\small\item\em Clear pending status of I\+R\+Qn. \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Clear pending status of I\+R\+Qn. \end{DoxyCompactList}\item void \hyperlink{group__hypervisor_ga7beb8d1fe68378367bcb8085a2d16cd5}{v\+I\+R\+Q\+\_\+\+Disable\+I\+RQ} (uint32\+\_\+t irqn) -\begin{DoxyCompactList}\small\item\em Disable I\+R\+Qn for the currently active box. \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Disable I\+R\+Qn for the currently active box. \end{DoxyCompactList}\item void \hyperlink{group__hypervisor_ga3dd01fda80a57db36a78994d0cae91ee}{v\+I\+R\+Q\+\_\+\+Enable\+I\+RQ} (uint32\+\_\+t irqn) -\begin{DoxyCompactList}\small\item\em Enable I\+R\+Qn for the currently active box. \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Enable I\+R\+Qn for the currently active box. \end{DoxyCompactList}\item int \hyperlink{group__hypervisor_ga880e3229f62cfff1c638c5dd6a1e9050}{v\+I\+R\+Q\+\_\+\+Get\+Level} (void) -\begin{DoxyCompactList}\small\item\em Get level of currently active I\+R\+Qn, if any. \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Get level of currently active I\+R\+Qn, if any. \end{DoxyCompactList}\item uint32\+\_\+t \hyperlink{group__hypervisor_gad450b31ead2ec4f7bb2dbe07ebcfd8e7}{v\+I\+R\+Q\+\_\+\+Get\+Pending\+I\+RQ} (uint32\+\_\+t irqn) -\begin{DoxyCompactList}\small\item\em Get pending status of I\+R\+Qn. \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Get pending status of I\+R\+Qn. \end{DoxyCompactList}\item uint32\+\_\+t \hyperlink{group__hypervisor_ga3da0be917ac42157f0d33e3e1412379b}{v\+I\+R\+Q\+\_\+\+Get\+Priority} (uint32\+\_\+t irqn) -\begin{DoxyCompactList}\small\item\em Get priority level of I\+R\+Qn. \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Get priority level of I\+R\+Qn. \end{DoxyCompactList}\item uint32\+\_\+t \hyperlink{group__hypervisor_gaaa9c852e90077dd4c553240d769b3658}{v\+I\+R\+Q\+\_\+\+Get\+Vector} (uint32\+\_\+t irqn) -\begin{DoxyCompactList}\small\item\em Get the I\+SR registered for I\+R\+Qn. \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Get the I\+SR registered for I\+R\+Qn. \end{DoxyCompactList}\item void \hyperlink{group__hypervisor_gab5570c2fa5a04a3a183cdef960a43c6b}{v\+I\+R\+Q\+\_\+\+Set\+Pending\+I\+RQ} (uint32\+\_\+t irqn) -\begin{DoxyCompactList}\small\item\em Set pending status of I\+R\+Qn. \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Set pending status of I\+R\+Qn. \end{DoxyCompactList}\item void \hyperlink{group__hypervisor_ga3c725e15df2f30fdaed9f1873a7eebdf}{v\+I\+R\+Q\+\_\+\+Set\+Priority} (uint32\+\_\+t irqn, uint32\+\_\+t priority) -\begin{DoxyCompactList}\small\item\em Set priority level of I\+R\+Qn. \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Set priority level of I\+R\+Qn. \end{DoxyCompactList}\item void \hyperlink{group__hypervisor_ga3bf7917bc9150d1b91bec5d41962ff13}{v\+I\+R\+Q\+\_\+\+Set\+Vector} (uint32\+\_\+t irqn, uint32\+\_\+t vector) \begin{DoxyCompactList}\small\item\em Register an I\+SR to the currently active box. \end{DoxyCompactList}\end{DoxyCompactItemize} @@ -105,19 +105,19 @@ \subsection{Data Structure Documentation} \hypertarget{group__hypervisor_struct_uvisor_box_acl_item}{} \subsubsection{struct Uvisor\+Box\+Acl\+Item} \{ item\+\_\+description \} \begin{DoxyFields}{Data Fields} -\hypertarget{group__hypervisor_ae5e1b8a311ba7d63a3380828d266bc82}{}\label{group__hypervisor_ae5e1b8a311ba7d63a3380828d266bc82} +\hypertarget{group__hypervisor_ae5e1b8a311ba7d63a3380828d266bc82}{}\label{group__hypervisor_ae5e1b8a311ba7d63a3380828d266bc82} \hyperlink{group__hypervisor_ga1527b3a7e3df3007490669cbd26b4fe9}{Uvisor\+Box\+Acl}& acl& \\ \hline -\hypertarget{group__hypervisor_aebb70c2aab3407a9f05334c47131a43b}{}\label{group__hypervisor_aebb70c2aab3407a9f05334c47131a43b} +\hypertarget{group__hypervisor_aebb70c2aab3407a9f05334c47131a43b}{}\label{group__hypervisor_aebb70c2aab3407a9f05334c47131a43b} uint32\+\_\+t& length& \\ \hline -\hypertarget{group__hypervisor_a8cb9377ef5ed00f632f5744aa51f7b81}{}\label{group__hypervisor_a8cb9377ef5ed00f632f5744aa51f7b81} +\hypertarget{group__hypervisor_a8cb9377ef5ed00f632f5744aa51f7b81}{}\label{group__hypervisor_a8cb9377ef5ed00f632f5744aa51f7b81} const volatile void $\ast$& start& \\ @@ -127,15 +127,15 @@ \subsubsection{struct Uvisor\+Box\+Acl\+Item} \subsection{Macro Definition Documentation} -\hypertarget{group__hypervisor_ga6143739a0475a71e8002f540de3c53f0}{}\label{group__hypervisor_ga6143739a0475a71e8002f540de3c53f0} +\hypertarget{group__hypervisor_ga6143739a0475a71e8002f540de3c53f0}{}\label{group__hypervisor_ga6143739a0475a71e8002f540de3c53f0} \index{u\+Visor A\+PI@{u\+Visor A\+PI}!U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+C\+O\+N\+F\+IG@{U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+C\+O\+N\+F\+IG}} \index{U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+C\+O\+N\+F\+IG@{U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+C\+O\+N\+F\+IG}!u\+Visor A\+PI@{u\+Visor A\+PI}} \subsubsection{\texorpdfstring{U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+C\+O\+N\+F\+IG}{UVISOR\_BOX\_CONFIG}} -{\footnotesize\ttfamily \#define U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+C\+O\+N\+F\+IG(\begin{DoxyParamCaption}\item[{}]{box\+\_\+nameconst Uv\+Box\+Acl\+Item module\+\_\+acl\+\_\+listuint32\+\_\+tmodule\+\_\+stack\+\_\+size, }\item[{}]{struct \+\_\+\+\_\+your\+\_\+context, }\item[{}]{verif\+\_\+key\+\_\+id }\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+C\+O\+N\+F\+IG(\begin{DoxyParamCaption}\item[{}]{box\+\_\+nameconst Uv\+Box\+Acl\+Item module\+\_\+acl\+\_\+listuint32\+\_\+tmodule\+\_\+stack\+\_\+size, }\item[{}]{struct \+\_\+\+\_\+your\+\_\+context, }\item[{}]{verif\+\_\+key\+\_\+id }\end{DoxyParamCaption})} -Secure box configuration. +Secure box configuration. C/\+C++ pre-\/processor macro (pseudo-\/function) @@ -162,7 +162,7 @@ \subsubsection{\texorpdfstring{U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+C\+O\+N\+F // Configure the secure box compartment. U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+N\+A\+M\+E\+S\+P\+A\+CE(\char`\"{}com.\+example.\+my-\/box-\/name\char`\"{}); U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+C\+O\+N\+F\+IG(my\+\_\+box\+\_\+name, g\+\_\+box\+\_\+acl, B\+O\+X\+\_\+\+S\+T\+A\+C\+K\+\_\+\+S\+I\+ZE, Box\+Context); -``` \hypertarget{group__hypervisor_gafe52bfcc466d459d149c63966c2f4a58}{}\label{group__hypervisor_gafe52bfcc466d459d149c63966c2f4a58} +``` \hypertarget{group__hypervisor_gafe52bfcc466d459d149c63966c2f4a58}{}\label{group__hypervisor_gafe52bfcc466d459d149c63966c2f4a58} \index{u\+Visor A\+PI@{u\+Visor A\+PI}!U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+N\+A\+M\+E\+S\+P\+A\+CE@{U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+N\+A\+M\+E\+S\+P\+A\+CE}} \index{U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+N\+A\+M\+E\+S\+P\+A\+CE@{U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+N\+A\+M\+E\+S\+P\+A\+CE}!u\+Visor A\+PI@{u\+Visor A\+PI}} \subsubsection{\texorpdfstring{U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+N\+A\+M\+E\+S\+P\+A\+CE}{UVISOR\_BOX\_NAMESPACE}} @@ -170,7 +170,7 @@ \subsubsection{\texorpdfstring{U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+N\+A\+M\+E -Specify the namespace for a box. C/\+C++ pre-\/processor macro (pseudo-\/function) +Specify the namespace for a box. C/\+C++ pre-\/processor macro (pseudo-\/function) \begin{DoxyParams}{Parameters} @@ -185,15 +185,15 @@ \subsubsection{\texorpdfstring{U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+N\+A\+M\+E Use of this configuration macro before U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+C\+O\+N\+F\+IG is required. If you do not wish to give your box a namespace, specify N\+U\+LL as the namespace to create an anonymous box. -Example\+: +Example\+: \begin{DoxyCode} \textcolor{preprocessor}{#include "uvisor-lib/uvisor-lib.h"} \textcolor{comment}{// Configure the secure box.} \hyperlink{group__hypervisor_gafe52bfcc466d459d149c63966c2f4a58}{UVISOR\_BOX\_NAMESPACE}(\textcolor{stringliteral}{"com.example.my-box-name"}); -\hyperlink{group__hypervisor_ga6143739a0475a71e8002f540de3c53f0}{UVISOR\_BOX\_CONFIG}(my\_box\_name, UVISOR\_BOX\_STACK\_SIZE); +\hyperlink{group__hypervisor_ga6143739a0475a71e8002f540de3c53f0}{UVISOR\_BOX\_CONFIG}(my\_box\_name, UVISOR\_BOX\_STACK\_SIZE); \end{DoxyCode} - \hypertarget{group__hypervisor_ga7cb080278fc7d660addf9bbff6d3f2da}{}\label{group__hypervisor_ga7cb080278fc7d660addf9bbff6d3f2da} + \hypertarget{group__hypervisor_ga7cb080278fc7d660addf9bbff6d3f2da}{}\label{group__hypervisor_ga7cb080278fc7d660addf9bbff6d3f2da} \index{u\+Visor A\+PI@{u\+Visor A\+PI}!U\+V\+I\+S\+O\+R\+\_\+\+S\+E\+T\+\_\+\+M\+O\+DE@{U\+V\+I\+S\+O\+R\+\_\+\+S\+E\+T\+\_\+\+M\+O\+DE}} \index{U\+V\+I\+S\+O\+R\+\_\+\+S\+E\+T\+\_\+\+M\+O\+DE@{U\+V\+I\+S\+O\+R\+\_\+\+S\+E\+T\+\_\+\+M\+O\+DE}!u\+Visor A\+PI@{u\+Visor A\+PI}} \subsubsection{\texorpdfstring{U\+V\+I\+S\+O\+R\+\_\+\+S\+E\+T\+\_\+\+M\+O\+DE}{UVISOR\_SET\_MODE}} @@ -201,7 +201,7 @@ \subsubsection{\texorpdfstring{U\+V\+I\+S\+O\+R\+\_\+\+S\+E\+T\+\_\+\+M\+O\+DE}{ -Set mode for the u\+Visor \mbox{[}temporary\mbox{]}. +Set mode for the u\+Visor \mbox{[}temporary\mbox{]}. C/\+C++ pre-\/processor macro (object declaration) @@ -231,16 +231,16 @@ \subsubsection{\texorpdfstring{U\+V\+I\+S\+O\+R\+\_\+\+S\+E\+T\+\_\+\+M\+O\+DE}{ \begin{DoxyEnumerate} \item This macro is only needed temporarily (u\+Visor disabled by default) and will be removed in the future. -\item This macro must be used only once in the top level yotta executable. -\end{DoxyEnumerate}\hypertarget{group__hypervisor_gae90f548ce110da855610f79301aafe34}{}\label{group__hypervisor_gae90f548ce110da855610f79301aafe34} +\item This macro must be used only once in the top level yotta executable. +\end{DoxyEnumerate}\hypertarget{group__hypervisor_gae90f548ce110da855610f79301aafe34}{}\label{group__hypervisor_gae90f548ce110da855610f79301aafe34} \index{u\+Visor A\+PI@{u\+Visor A\+PI}!U\+V\+I\+S\+O\+R\+\_\+\+S\+E\+T\+\_\+\+M\+O\+D\+E\+\_\+\+A\+CL@{U\+V\+I\+S\+O\+R\+\_\+\+S\+E\+T\+\_\+\+M\+O\+D\+E\+\_\+\+A\+CL}} \index{U\+V\+I\+S\+O\+R\+\_\+\+S\+E\+T\+\_\+\+M\+O\+D\+E\+\_\+\+A\+CL@{U\+V\+I\+S\+O\+R\+\_\+\+S\+E\+T\+\_\+\+M\+O\+D\+E\+\_\+\+A\+CL}!u\+Visor A\+PI@{u\+Visor A\+PI}} \subsubsection{\texorpdfstring{U\+V\+I\+S\+O\+R\+\_\+\+S\+E\+T\+\_\+\+M\+O\+D\+E\+\_\+\+A\+CL}{UVISOR\_SET\_MODE\_ACL}} -{\footnotesize\ttfamily \#define U\+V\+I\+S\+O\+R\+\_\+\+S\+E\+T\+\_\+\+M\+O\+D\+E\+\_\+\+A\+CL(\begin{DoxyParamCaption}\item[{}]{uvisor\+\_\+mode, }\item[{}]{const Uv\+Box\+Aclmain\+\_\+box\+\_\+acl\+\_\+list }\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define U\+V\+I\+S\+O\+R\+\_\+\+S\+E\+T\+\_\+\+M\+O\+D\+E\+\_\+\+A\+CL(\begin{DoxyParamCaption}\item[{}]{uvisor\+\_\+mode, }\item[{}]{const Uv\+Box\+Aclmain\+\_\+box\+\_\+acl\+\_\+list }\end{DoxyParamCaption})} -Set mode for the u\+Visor and provide background A\+C\+Ls for the main box. +Set mode for the u\+Visor and provide background A\+C\+Ls for the main box. C/\+C++ pre-\/processor macro (object declaration) @@ -263,9 +263,9 @@ \subsubsection{\texorpdfstring{U\+V\+I\+S\+O\+R\+\_\+\+S\+E\+T\+\_\+\+M\+O\+D\+E \textcolor{preprocessor}{#include "uvisor-lib/uvisor-lib.h"} \textcolor{comment}{// Create background ACLs for the main box. } \textcolor{keyword}{static} \textcolor{keyword}{const} UvBoxAclItem g\_background\_acl[] = \{ - \{UART0, \textcolor{keyword}{sizeof}(*UART0), UVISOR\_TACL\_PERIPHERAL\}, - \{UART1, \textcolor{keyword}{sizeof}(*UART1), UVISOR\_TACL\_PERIPHERAL\}, - \{PIT, \textcolor{keyword}{sizeof}(*PIT), UVISOR\_TACL\_PERIPHERAL\}, + \{UART0, \textcolor{keyword}{sizeof}(*UART0), UVISOR\_TACL\_PERIPHERAL\}, + \{UART1, \textcolor{keyword}{sizeof}(*UART1), UVISOR\_TACL\_PERIPHERAL\}, + \{PIT, \textcolor{keyword}{sizeof}(*PIT), UVISOR\_TACL\_PERIPHERAL\}, \}; \textcolor{comment}{// Set the uVisor mode. } @@ -278,28 +278,28 @@ \subsubsection{\texorpdfstring{U\+V\+I\+S\+O\+R\+\_\+\+S\+E\+T\+\_\+\+M\+O\+D\+E \begin{DoxyEnumerate} \item This macro is only needed temporarily (u\+Visor disabled by default) and will be removed in the future. -\item This macro must be used only once in the top level yotta executable. +\item This macro must be used only once in the top level yotta executable. \end{DoxyEnumerate} \subsection{Typedef Documentation} -\hypertarget{group__hypervisor_ga1527b3a7e3df3007490669cbd26b4fe9}{}\label{group__hypervisor_ga1527b3a7e3df3007490669cbd26b4fe9} +\hypertarget{group__hypervisor_ga1527b3a7e3df3007490669cbd26b4fe9}{}\label{group__hypervisor_ga1527b3a7e3df3007490669cbd26b4fe9} \index{u\+Visor A\+PI@{u\+Visor A\+PI}!Uvisor\+Box\+Acl@{Uvisor\+Box\+Acl}} \index{Uvisor\+Box\+Acl@{Uvisor\+Box\+Acl}!u\+Visor A\+PI@{u\+Visor A\+PI}} \subsubsection{\texorpdfstring{Uvisor\+Box\+Acl}{UvisorBoxAcl}} {\footnotesize\ttfamily typedef uint32\+\_\+t \hyperlink{group__hypervisor_ga1527b3a7e3df3007490669cbd26b4fe9}{Uvisor\+Box\+Acl}} -\{ item\+\_\+description \} +\{ item\+\_\+description \} \subsection{Function Documentation} -\hypertarget{group__hypervisor_ga6e7f7b03367daefa2cbcb7e4f0538ba7}{}\label{group__hypervisor_ga6e7f7b03367daefa2cbcb7e4f0538ba7} +\hypertarget{group__hypervisor_ga6e7f7b03367daefa2cbcb7e4f0538ba7}{}\label{group__hypervisor_ga6e7f7b03367daefa2cbcb7e4f0538ba7} \index{u\+Visor A\+PI@{u\+Visor A\+PI}!check\+\_\+acl@{check\+\_\+acl}} \index{check\+\_\+acl@{check\+\_\+acl}!u\+Visor A\+PI@{u\+Visor A\+PI}} \subsubsection{\texorpdfstring{check\+\_\+acl()}{check\_acl()}} -{\footnotesize\ttfamily int check\+\_\+acl (\begin{DoxyParamCaption}\item[{uint32\+\_\+t $\ast$}]{p\+\_\+acl, }\item[{uint32\+\_\+t}]{keyindex }\end{DoxyParamCaption})} +{\footnotesize\ttfamily int check\+\_\+acl (\begin{DoxyParamCaption}\item[{uint32\+\_\+t $\ast$}]{p\+\_\+acl, }\item[{uint32\+\_\+t}]{keyindex }\end{DoxyParamCaption})} -Hook called by u\+Visor during loading of secure boxes. +Hook called by u\+Visor during loading of secure boxes. It is the responsibility of the platform developer to implement this function to restrict A\+C\+Ls based on the box privilege of the box being loaded. @@ -311,17 +311,17 @@ \subsubsection{\texorpdfstring{check\+\_\+acl()}{check\_acl()}} \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} -0 if the A\+CL conforms to the A\+CL policy +0 if the A\+CL conforms to the A\+CL policy \end{DoxyReturn} -\hypertarget{group__hypervisor_gafdaf52538986a558e934eab65221731e}{}\label{group__hypervisor_gafdaf52538986a558e934eab65221731e} +\hypertarget{group__hypervisor_gafdaf52538986a558e934eab65221731e}{}\label{group__hypervisor_gafdaf52538986a558e934eab65221731e} \index{u\+Visor A\+PI@{u\+Visor A\+PI}!rpc\+\_\+fncall\+\_\+waitfor@{rpc\+\_\+fncall\+\_\+waitfor}} \index{rpc\+\_\+fncall\+\_\+waitfor@{rpc\+\_\+fncall\+\_\+waitfor}!u\+Visor A\+PI@{u\+Visor A\+PI}} \subsubsection{\texorpdfstring{rpc\+\_\+fncall\+\_\+waitfor()}{rpc\_fncall\_waitfor()}} -{\footnotesize\ttfamily int rpc\+\_\+fncall\+\_\+waitfor (\begin{DoxyParamCaption}\item[{const T\+F\+N\+\_\+\+Ptr}]{fn\+\_\+ptr\+\_\+array\mbox{[}$\,$\mbox{]}, }\item[{size\+\_\+t}]{fn\+\_\+count, }\item[{int $\ast$}]{box\+\_\+id\+\_\+caller, }\item[{uint32\+\_\+t}]{timeout\+\_\+ms }\end{DoxyParamCaption})} +{\footnotesize\ttfamily int rpc\+\_\+fncall\+\_\+waitfor (\begin{DoxyParamCaption}\item[{const T\+F\+N\+\_\+\+Ptr}]{fn\+\_\+ptr\+\_\+array\mbox{[}$\, $\mbox{]}, }\item[{size\+\_\+t}]{fn\+\_\+count, }\item[{int $\ast$}]{box\+\_\+id\+\_\+caller, }\item[{uint32\+\_\+t}]{timeout\+\_\+ms }\end{DoxyParamCaption})} -Handle incoming R\+PC, setting the parameter box\+\_\+id\+\_\+caller to the caller box ID. +Handle incoming R\+PC, setting the parameter box\+\_\+id\+\_\+caller to the caller box ID. When deciding which memory to provide for rpc\+\_\+fncall\+\_\+waitfor to use when writing {\ttfamily box\+\_\+id\+\_\+caller}, strongly prefer thread local storage when multiple threads in a box can handle incoming R\+PC. @@ -337,9 +337,9 @@ \subsubsection{\texorpdfstring{rpc\+\_\+fncall\+\_\+waitfor()}{rpc\_fncall\_wait \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} -\{ description\+\_\+of\+\_\+the\+\_\+return\+\_\+value \} +\{ description\+\_\+of\+\_\+the\+\_\+return\+\_\+value \} \end{DoxyReturn} -\hypertarget{group__hypervisor_gab099ca7d08f626791039573dbff14af5}{}\label{group__hypervisor_gab099ca7d08f626791039573dbff14af5} +\hypertarget{group__hypervisor_gab099ca7d08f626791039573dbff14af5}{}\label{group__hypervisor_gab099ca7d08f626791039573dbff14af5} \index{u\+Visor A\+PI@{u\+Visor A\+PI}!uvisor\+\_\+box\+\_\+id\+\_\+self@{uvisor\+\_\+box\+\_\+id\+\_\+self}} \index{uvisor\+\_\+box\+\_\+id\+\_\+self@{uvisor\+\_\+box\+\_\+id\+\_\+self}!u\+Visor A\+PI@{u\+Visor A\+PI}} \subsubsection{\texorpdfstring{uvisor\+\_\+box\+\_\+id\+\_\+self()}{uvisor\_box\_id\_self()}} @@ -347,20 +347,20 @@ \subsubsection{\texorpdfstring{uvisor\+\_\+box\+\_\+id\+\_\+self()}{uvisor\_box\ -Get the ID of the current box. +Get the ID of the current box. \begin{DoxyReturn}{Returns} -The ID of the current box +The ID of the current box \end{DoxyReturn} -\hypertarget{group__hypervisor_gab605e738e6bc828cd9efb6eacca79685}{}\label{group__hypervisor_gab605e738e6bc828cd9efb6eacca79685} +\hypertarget{group__hypervisor_gab605e738e6bc828cd9efb6eacca79685}{}\label{group__hypervisor_gab605e738e6bc828cd9efb6eacca79685} \index{u\+Visor A\+PI@{u\+Visor A\+PI}!uvisor\+\_\+box\+\_\+namespace@{uvisor\+\_\+box\+\_\+namespace}} \index{uvisor\+\_\+box\+\_\+namespace@{uvisor\+\_\+box\+\_\+namespace}!u\+Visor A\+PI@{u\+Visor A\+PI}} \subsubsection{\texorpdfstring{uvisor\+\_\+box\+\_\+namespace()}{uvisor\_box\_namespace()}} -{\footnotesize\ttfamily int uvisor\+\_\+box\+\_\+namespace (\begin{DoxyParamCaption}\item[{int}]{box\+\_\+id, }\item[{char $\ast$}]{box\+\_\+namespace, }\item[{size\+\_\+t}]{length }\end{DoxyParamCaption})} +{\footnotesize\ttfamily int uvisor\+\_\+box\+\_\+namespace (\begin{DoxyParamCaption}\item[{int}]{box\+\_\+id, }\item[{char $\ast$}]{box\+\_\+namespace, }\item[{size\+\_\+t}]{length }\end{DoxyParamCaption})} -Copy the namespace of the specified box to the provided buffer. +Copy the namespace of the specified box to the provided buffer. \begin{DoxyParams}[1]{Parameters} @@ -372,7 +372,7 @@ \subsubsection{\texorpdfstring{uvisor\+\_\+box\+\_\+namespace()}{uvisor\_box\_na \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} -Return how many bytes were copied into box\+\_\+namespace. +Return how many bytes were copied into box\+\_\+namespace. \end{DoxyReturn} \begin{DoxyRetVals}{Return values} @@ -383,15 +383,15 @@ \subsubsection{\texorpdfstring{uvisor\+\_\+box\+\_\+namespace()}{uvisor\_box\_na {\em U\+V\+I\+S\+O\+R\+\_\+\+E\+R\+R\+O\+R\+\_\+\+B\+O\+X\+\_\+\+N\+A\+M\+E\+S\+P\+A\+C\+E\+\_\+\+A\+N\+O\+N\+Y\+M\+O\+US} & if the box is anonymous. \\ \hline \end{DoxyRetVals} -\hypertarget{group__hypervisor_ga82e5cbff1a1a26974ed1e5f493607cf2}{}\label{group__hypervisor_ga82e5cbff1a1a26974ed1e5f493607cf2} +\hypertarget{group__hypervisor_ga82e5cbff1a1a26974ed1e5f493607cf2}{}\label{group__hypervisor_ga82e5cbff1a1a26974ed1e5f493607cf2} \index{u\+Visor A\+PI@{u\+Visor A\+PI}!uvisor\+\_\+box\+\_\+signingkey@{uvisor\+\_\+box\+\_\+signingkey}} \index{uvisor\+\_\+box\+\_\+signingkey@{uvisor\+\_\+box\+\_\+signingkey}!u\+Visor A\+PI@{u\+Visor A\+PI}} \subsubsection{\texorpdfstring{uvisor\+\_\+box\+\_\+signingkey()}{uvisor\_box\_signingkey()}} -{\footnotesize\ttfamily int uvisor\+\_\+box\+\_\+signingkey (\begin{DoxyParamCaption}\item[{int}]{box\+\_\+id, }\item[{int $\ast$}]{keyindex }\end{DoxyParamCaption})} +{\footnotesize\ttfamily int uvisor\+\_\+box\+\_\+signingkey (\begin{DoxyParamCaption}\item[{int}]{box\+\_\+id, }\item[{int $\ast$}]{keyindex }\end{DoxyParamCaption})} -Get the signing key ID of the specified box, hence its box privilege. +Get the signing key ID of the specified box, hence its box privilege. \begin{DoxyParams}[1]{Parameters} @@ -401,14 +401,14 @@ \subsubsection{\texorpdfstring{uvisor\+\_\+box\+\_\+signingkey()}{uvisor\_box\_s \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} -Status of execution +Status of execution \end{DoxyReturn} \begin{DoxyRetVals}{Return values} {\em U\+V\+I\+S\+O\+R\+\_\+\+E\+R\+R\+O\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+B\+O\+X\+\_\+\+ID} & if the provided box ID is invalid. \\ \hline \end{DoxyRetVals} -\hypertarget{group__hypervisor_gaa02ff863ab222f97723b60e59f6d92d8}{}\label{group__hypervisor_gaa02ff863ab222f97723b60e59f6d92d8} +\hypertarget{group__hypervisor_gaa02ff863ab222f97723b60e59f6d92d8}{}\label{group__hypervisor_gaa02ff863ab222f97723b60e59f6d92d8} \index{u\+Visor A\+PI@{u\+Visor A\+PI}!v\+I\+R\+Q\+\_\+\+Clear\+Pending\+I\+RQ@{v\+I\+R\+Q\+\_\+\+Clear\+Pending\+I\+RQ}} \index{v\+I\+R\+Q\+\_\+\+Clear\+Pending\+I\+RQ@{v\+I\+R\+Q\+\_\+\+Clear\+Pending\+I\+RQ}!u\+Visor A\+PI@{u\+Visor A\+PI}} \subsubsection{\texorpdfstring{v\+I\+R\+Q\+\_\+\+Clear\+Pending\+I\+R\+Q()}{vIRQ\_ClearPendingIRQ()}} @@ -416,14 +416,14 @@ \subsubsection{\texorpdfstring{v\+I\+R\+Q\+\_\+\+Clear\+Pending\+I\+R\+Q()}{vIRQ -Clear pending status of I\+R\+Qn. +Clear pending status of I\+R\+Qn. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em irqn} & I\+R\+Qn \\ \hline \end{DoxyParams} -\hypertarget{group__hypervisor_ga7beb8d1fe68378367bcb8085a2d16cd5}{}\label{group__hypervisor_ga7beb8d1fe68378367bcb8085a2d16cd5} +\hypertarget{group__hypervisor_ga7beb8d1fe68378367bcb8085a2d16cd5}{}\label{group__hypervisor_ga7beb8d1fe68378367bcb8085a2d16cd5} \index{u\+Visor A\+PI@{u\+Visor A\+PI}!v\+I\+R\+Q\+\_\+\+Disable\+I\+RQ@{v\+I\+R\+Q\+\_\+\+Disable\+I\+RQ}} \index{v\+I\+R\+Q\+\_\+\+Disable\+I\+RQ@{v\+I\+R\+Q\+\_\+\+Disable\+I\+RQ}!u\+Visor A\+PI@{u\+Visor A\+PI}} \subsubsection{\texorpdfstring{v\+I\+R\+Q\+\_\+\+Disable\+I\+R\+Q()}{vIRQ\_DisableIRQ()}} @@ -431,14 +431,14 @@ \subsubsection{\texorpdfstring{v\+I\+R\+Q\+\_\+\+Disable\+I\+R\+Q()}{vIRQ\_Disab -Disable I\+R\+Qn for the currently active box. +Disable I\+R\+Qn for the currently active box. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em irqn} & I\+R\+Qn \\ \hline \end{DoxyParams} -\hypertarget{group__hypervisor_ga3dd01fda80a57db36a78994d0cae91ee}{}\label{group__hypervisor_ga3dd01fda80a57db36a78994d0cae91ee} +\hypertarget{group__hypervisor_ga3dd01fda80a57db36a78994d0cae91ee}{}\label{group__hypervisor_ga3dd01fda80a57db36a78994d0cae91ee} \index{u\+Visor A\+PI@{u\+Visor A\+PI}!v\+I\+R\+Q\+\_\+\+Enable\+I\+RQ@{v\+I\+R\+Q\+\_\+\+Enable\+I\+RQ}} \index{v\+I\+R\+Q\+\_\+\+Enable\+I\+RQ@{v\+I\+R\+Q\+\_\+\+Enable\+I\+RQ}!u\+Visor A\+PI@{u\+Visor A\+PI}} \subsubsection{\texorpdfstring{v\+I\+R\+Q\+\_\+\+Enable\+I\+R\+Q()}{vIRQ\_EnableIRQ()}} @@ -446,14 +446,14 @@ \subsubsection{\texorpdfstring{v\+I\+R\+Q\+\_\+\+Enable\+I\+R\+Q()}{vIRQ\_Enable -Enable I\+R\+Qn for the currently active box. +Enable I\+R\+Qn for the currently active box. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em irqn} & I\+R\+Qn \\ \hline \end{DoxyParams} -\hypertarget{group__hypervisor_ga880e3229f62cfff1c638c5dd6a1e9050}{}\label{group__hypervisor_ga880e3229f62cfff1c638c5dd6a1e9050} +\hypertarget{group__hypervisor_ga880e3229f62cfff1c638c5dd6a1e9050}{}\label{group__hypervisor_ga880e3229f62cfff1c638c5dd6a1e9050} \index{u\+Visor A\+PI@{u\+Visor A\+PI}!v\+I\+R\+Q\+\_\+\+Get\+Level@{v\+I\+R\+Q\+\_\+\+Get\+Level}} \index{v\+I\+R\+Q\+\_\+\+Get\+Level@{v\+I\+R\+Q\+\_\+\+Get\+Level}!u\+Visor A\+PI@{u\+Visor A\+PI}} \subsubsection{\texorpdfstring{v\+I\+R\+Q\+\_\+\+Get\+Level()}{vIRQ\_GetLevel()}} @@ -461,12 +461,12 @@ \subsubsection{\texorpdfstring{v\+I\+R\+Q\+\_\+\+Get\+Level()}{vIRQ\_GetLevel()} -Get level of currently active I\+R\+Qn, if any. +Get level of currently active I\+R\+Qn, if any. \begin{DoxyReturn}{Returns} -The priority level of the currently active I\+R\+Qn, if any; -\/1 otherwise +The priority level of the currently active I\+R\+Qn, if any; -\/1 otherwise \end{DoxyReturn} -\hypertarget{group__hypervisor_gad450b31ead2ec4f7bb2dbe07ebcfd8e7}{}\label{group__hypervisor_gad450b31ead2ec4f7bb2dbe07ebcfd8e7} +\hypertarget{group__hypervisor_gad450b31ead2ec4f7bb2dbe07ebcfd8e7}{}\label{group__hypervisor_gad450b31ead2ec4f7bb2dbe07ebcfd8e7} \index{u\+Visor A\+PI@{u\+Visor A\+PI}!v\+I\+R\+Q\+\_\+\+Get\+Pending\+I\+RQ@{v\+I\+R\+Q\+\_\+\+Get\+Pending\+I\+RQ}} \index{v\+I\+R\+Q\+\_\+\+Get\+Pending\+I\+RQ@{v\+I\+R\+Q\+\_\+\+Get\+Pending\+I\+RQ}!u\+Visor A\+PI@{u\+Visor A\+PI}} \subsubsection{\texorpdfstring{v\+I\+R\+Q\+\_\+\+Get\+Pending\+I\+R\+Q()}{vIRQ\_GetPendingIRQ()}} @@ -474,7 +474,7 @@ \subsubsection{\texorpdfstring{v\+I\+R\+Q\+\_\+\+Get\+Pending\+I\+R\+Q()}{vIRQ\_ -Get pending status of I\+R\+Qn. +Get pending status of I\+R\+Qn. \begin{DoxyParams}[1]{Parameters} @@ -482,9 +482,9 @@ \subsubsection{\texorpdfstring{v\+I\+R\+Q\+\_\+\+Get\+Pending\+I\+R\+Q()}{vIRQ\_ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} -pending status of I\+R\+Qn +pending status of I\+R\+Qn \end{DoxyReturn} -\hypertarget{group__hypervisor_ga3da0be917ac42157f0d33e3e1412379b}{}\label{group__hypervisor_ga3da0be917ac42157f0d33e3e1412379b} +\hypertarget{group__hypervisor_ga3da0be917ac42157f0d33e3e1412379b}{}\label{group__hypervisor_ga3da0be917ac42157f0d33e3e1412379b} \index{u\+Visor A\+PI@{u\+Visor A\+PI}!v\+I\+R\+Q\+\_\+\+Get\+Priority@{v\+I\+R\+Q\+\_\+\+Get\+Priority}} \index{v\+I\+R\+Q\+\_\+\+Get\+Priority@{v\+I\+R\+Q\+\_\+\+Get\+Priority}!u\+Visor A\+PI@{u\+Visor A\+PI}} \subsubsection{\texorpdfstring{v\+I\+R\+Q\+\_\+\+Get\+Priority()}{vIRQ\_GetPriority()}} @@ -492,7 +492,7 @@ \subsubsection{\texorpdfstring{v\+I\+R\+Q\+\_\+\+Get\+Priority()}{vIRQ\_GetPrior -Get priority level of I\+R\+Qn. +Get priority level of I\+R\+Qn. \begin{DoxyParams}[1]{Parameters} @@ -500,9 +500,9 @@ \subsubsection{\texorpdfstring{v\+I\+R\+Q\+\_\+\+Get\+Priority()}{vIRQ\_GetPrior \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} -The priority level of I\+R\+Qn, if available; 0 otherwise +The priority level of I\+R\+Qn, if available; 0 otherwise \end{DoxyReturn} -\hypertarget{group__hypervisor_gaaa9c852e90077dd4c553240d769b3658}{}\label{group__hypervisor_gaaa9c852e90077dd4c553240d769b3658} +\hypertarget{group__hypervisor_gaaa9c852e90077dd4c553240d769b3658}{}\label{group__hypervisor_gaaa9c852e90077dd4c553240d769b3658} \index{u\+Visor A\+PI@{u\+Visor A\+PI}!v\+I\+R\+Q\+\_\+\+Get\+Vector@{v\+I\+R\+Q\+\_\+\+Get\+Vector}} \index{v\+I\+R\+Q\+\_\+\+Get\+Vector@{v\+I\+R\+Q\+\_\+\+Get\+Vector}!u\+Visor A\+PI@{u\+Visor A\+PI}} \subsubsection{\texorpdfstring{v\+I\+R\+Q\+\_\+\+Get\+Vector()}{vIRQ\_GetVector()}} @@ -510,7 +510,7 @@ \subsubsection{\texorpdfstring{v\+I\+R\+Q\+\_\+\+Get\+Vector()}{vIRQ\_GetVector( -Get the I\+SR registered for I\+R\+Qn. +Get the I\+SR registered for I\+R\+Qn. \begin{DoxyParams}[1]{Parameters} @@ -518,9 +518,9 @@ \subsubsection{\texorpdfstring{v\+I\+R\+Q\+\_\+\+Get\+Vector()}{vIRQ\_GetVector( \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} -The I\+SR registered for I\+R\+Qn, if present; 0 otherwise +The I\+SR registered for I\+R\+Qn, if present; 0 otherwise \end{DoxyReturn} -\hypertarget{group__hypervisor_gab5570c2fa5a04a3a183cdef960a43c6b}{}\label{group__hypervisor_gab5570c2fa5a04a3a183cdef960a43c6b} +\hypertarget{group__hypervisor_gab5570c2fa5a04a3a183cdef960a43c6b}{}\label{group__hypervisor_gab5570c2fa5a04a3a183cdef960a43c6b} \index{u\+Visor A\+PI@{u\+Visor A\+PI}!v\+I\+R\+Q\+\_\+\+Set\+Pending\+I\+RQ@{v\+I\+R\+Q\+\_\+\+Set\+Pending\+I\+RQ}} \index{v\+I\+R\+Q\+\_\+\+Set\+Pending\+I\+RQ@{v\+I\+R\+Q\+\_\+\+Set\+Pending\+I\+RQ}!u\+Visor A\+PI@{u\+Visor A\+PI}} \subsubsection{\texorpdfstring{v\+I\+R\+Q\+\_\+\+Set\+Pending\+I\+R\+Q()}{vIRQ\_SetPendingIRQ()}} @@ -528,22 +528,22 @@ \subsubsection{\texorpdfstring{v\+I\+R\+Q\+\_\+\+Set\+Pending\+I\+R\+Q()}{vIRQ\_ -Set pending status of I\+R\+Qn. +Set pending status of I\+R\+Qn. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em irqn} & I\+R\+Qn \\ \hline \end{DoxyParams} -\hypertarget{group__hypervisor_ga3c725e15df2f30fdaed9f1873a7eebdf}{}\label{group__hypervisor_ga3c725e15df2f30fdaed9f1873a7eebdf} +\hypertarget{group__hypervisor_ga3c725e15df2f30fdaed9f1873a7eebdf}{}\label{group__hypervisor_ga3c725e15df2f30fdaed9f1873a7eebdf} \index{u\+Visor A\+PI@{u\+Visor A\+PI}!v\+I\+R\+Q\+\_\+\+Set\+Priority@{v\+I\+R\+Q\+\_\+\+Set\+Priority}} \index{v\+I\+R\+Q\+\_\+\+Set\+Priority@{v\+I\+R\+Q\+\_\+\+Set\+Priority}!u\+Visor A\+PI@{u\+Visor A\+PI}} \subsubsection{\texorpdfstring{v\+I\+R\+Q\+\_\+\+Set\+Priority()}{vIRQ\_SetPriority()}} -{\footnotesize\ttfamily void v\+I\+R\+Q\+\_\+\+Set\+Priority (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{irqn, }\item[{uint32\+\_\+t}]{priority }\end{DoxyParamCaption})} +{\footnotesize\ttfamily void v\+I\+R\+Q\+\_\+\+Set\+Priority (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{irqn, }\item[{uint32\+\_\+t}]{priority }\end{DoxyParamCaption})} -Set priority level of I\+R\+Qn. +Set priority level of I\+R\+Qn. \begin{DoxyParams}[1]{Parameters} @@ -552,15 +552,15 @@ \subsubsection{\texorpdfstring{v\+I\+R\+Q\+\_\+\+Set\+Priority()}{vIRQ\_SetPrior \mbox{\tt in} & {\em priority} & Priority level (minimum\+: 1) \\ \hline \end{DoxyParams} -\hypertarget{group__hypervisor_ga3bf7917bc9150d1b91bec5d41962ff13}{}\label{group__hypervisor_ga3bf7917bc9150d1b91bec5d41962ff13} +\hypertarget{group__hypervisor_ga3bf7917bc9150d1b91bec5d41962ff13}{}\label{group__hypervisor_ga3bf7917bc9150d1b91bec5d41962ff13} \index{u\+Visor A\+PI@{u\+Visor A\+PI}!v\+I\+R\+Q\+\_\+\+Set\+Vector@{v\+I\+R\+Q\+\_\+\+Set\+Vector}} \index{v\+I\+R\+Q\+\_\+\+Set\+Vector@{v\+I\+R\+Q\+\_\+\+Set\+Vector}!u\+Visor A\+PI@{u\+Visor A\+PI}} \subsubsection{\texorpdfstring{v\+I\+R\+Q\+\_\+\+Set\+Vector()}{vIRQ\_SetVector()}} -{\footnotesize\ttfamily void v\+I\+R\+Q\+\_\+\+Set\+Vector (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{irqn, }\item[{uint32\+\_\+t}]{vector }\end{DoxyParamCaption})} +{\footnotesize\ttfamily void v\+I\+R\+Q\+\_\+\+Set\+Vector (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{irqn, }\item[{uint32\+\_\+t}]{vector }\end{DoxyParamCaption})} -Register an I\+SR to the currently active box. +Register an I\+SR to the currently active box. \begin{DoxyParams}[1]{Parameters} diff --git a/Libraries/FCL/doc/output/latex/group__os.aux b/Libraries/FCL/doc/output/latex/group__os.aux index d6961e392ec..46663e18e9e 100644 --- a/Libraries/FCL/doc/output/latex/group__os.aux +++ b/Libraries/FCL/doc/output/latex/group__os.aux @@ -1,4 +1,4 @@ -\relax +\relax \providecommand\hyper@newdestlabel[2]{} \@writefile{toc}{\contentsline {section}{\numberline {6.3}Operating system, drivers, C library, other libraries...}{28}{section.6.3}} \newlabel{group__os}{{6.3}{28}{Operating system, drivers, C library, other libraries..}{section.6.3}{}} diff --git a/Libraries/FCL/doc/output/latex/group__os.tex b/Libraries/FCL/doc/output/latex/group__os.tex index 1846422a0fa..0b10472d325 100644 --- a/Libraries/FCL/doc/output/latex/group__os.tex +++ b/Libraries/FCL/doc/output/latex/group__os.tex @@ -13,8 +13,8 @@ This group of software items is considered as firmware. -P\+R\+I\+V\+I\+L\+E\+GE L\+E\+V\+EL\+: Core Firmware +P\+R\+I\+V\+I\+L\+E\+GE L\+E\+V\+EL\+: Core Firmware \begin{DoxyImageNoCaption} - \mbox{\includegraphics[width=\textwidth,height=\textheight/2,keepaspectratio=true]{pci_cortex.png}} + \mbox{\includegraphics[width=\textwidth, height=\textheight/2, keepaspectratio=true]{pci_cortex.png}} \end{DoxyImageNoCaption} \ No newline at end of file diff --git a/Libraries/FCL/doc/output/latex/group__pcibx.aux b/Libraries/FCL/doc/output/latex/group__pcibx.aux index a71370a7f48..3b3c418941b 100644 --- a/Libraries/FCL/doc/output/latex/group__pcibx.aux +++ b/Libraries/FCL/doc/output/latex/group__pcibx.aux @@ -1,4 +1,4 @@ -\relax +\relax \providecommand\hyper@newdestlabel[2]{} \@writefile{toc}{\contentsline {section}{\numberline {6.6}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}CI Security Services, Security functions dedicated to P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}CI P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}TS P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}OI security}{40}{section.6.6}} \newlabel{group__pcibx}{{6.6}{40}{P\+CI Security Services, Security functions dedicated to P\+CI P\+TS P\+OI security}{section.6.6}{}} diff --git a/Libraries/FCL/doc/output/latex/group__pcibx.tex b/Libraries/FCL/doc/output/latex/group__pcibx.tex index c8bada7b0f6..19003ae261c 100644 --- a/Libraries/FCL/doc/output/latex/group__pcibx.tex +++ b/Libraries/FCL/doc/output/latex/group__pcibx.tex @@ -2,11 +2,11 @@ \label{group__pcibx}\index{P\+C\+I Security Services, Security functions dedicated to P\+C\+I P\+T\+S P\+O\+I security@{P\+C\+I Security Services, Security functions dedicated to P\+C\+I P\+T\+S P\+O\+I security}} \subsection*{Modules} \begin{DoxyCompactItemize} -\item +\item \hyperlink{group__pcibx__sc}{E\+M\+V-\/\+Level 1 Smart Card} -\item +\item \hyperlink{group__pcibx___m_s_r}{Magnetic Stripe} -\item +\item \hyperlink{group__pcibx___p_i_n}{P\+I\+N handling} \end{DoxyCompactItemize} @@ -26,6 +26,6 @@ \subsection{Detailed Description} \begin{DoxyImageNoCaption} - \mbox{\includegraphics[width=\textwidth,height=\textheight/2,keepaspectratio=true]{pci_cortex.png}} + \mbox{\includegraphics[width=\textwidth, height=\textheight/2, keepaspectratio=true]{pci_cortex.png}} \end{DoxyImageNoCaption} \ No newline at end of file diff --git a/Libraries/FCL/doc/output/latex/group__pcibx___m_s_r.aux b/Libraries/FCL/doc/output/latex/group__pcibx___m_s_r.aux index 63c99285378..cf70ae38a60 100644 --- a/Libraries/FCL/doc/output/latex/group__pcibx___m_s_r.aux +++ b/Libraries/FCL/doc/output/latex/group__pcibx___m_s_r.aux @@ -1,4 +1,4 @@ -\relax +\relax \providecommand\hyper@newdestlabel[2]{} \@writefile{toc}{\contentsline {subsection}{\numberline {6.6.4}Magnetic Stripe}{46}{subsection.6.6.4}} \newlabel{group__pcibx___m_s_r}{{6.6.4}{46}{Magnetic Stripe}{subsection.6.6.4}{}} diff --git a/Libraries/FCL/doc/output/latex/group__pcibx__sc.aux b/Libraries/FCL/doc/output/latex/group__pcibx__sc.aux index cc1f150ad00..de6f6ca565b 100644 --- a/Libraries/FCL/doc/output/latex/group__pcibx__sc.aux +++ b/Libraries/FCL/doc/output/latex/group__pcibx__sc.aux @@ -1,12 +1,12 @@ -\relax +\relax \providecommand\hyper@newdestlabel[2]{} -\gdef \LT@xiii {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{33.50972pt}\LT@entry +\gdef \LT@xiii {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{33.50972pt}\LT@entry {3}{128.2089pt}} -\gdef \LT@xiv {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{74.02968pt}\LT@entry +\gdef \LT@xiv {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{74.02968pt}\LT@entry {3}{113.75922pt}} \@writefile{toc}{\contentsline {subsection}{\numberline {6.6.2}E\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}M\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}V-\/\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Level 1 Smart Card}{41}{subsection.6.6.2}} \newlabel{group__pcibx__sc}{{6.6.2}{41}{E\+M\+V-\/\+Level 1 Smart Card}{subsection.6.6.2}{}} @@ -16,13 +16,13 @@ \@writefile{toc}{\contentsline {paragraph}{\numberline {6.6.2.2.1}pci\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}smartcard\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}config()}{41}{paragraph.6.6.2.2.1}} \newlabel{group__pcibx__sc_gaa97512bc1e0389c8528b90e2d2d05ad0}{{6.6.2.2.1}{41}{\texorpdfstring {pci\+\_\+smartcard\+\_\+config()}{pci\_smartcard\_config()}}{table.6.11}{}} \@writefile{toc}{\contentsline {paragraph}{\numberline {6.6.2.2.2}pci\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}smartcard\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}transact\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}P\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}D\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}U()}{41}{paragraph.6.6.2.2.2}} -\gdef \LT@xv {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{42.39958pt}\LT@entry +\gdef \LT@xv {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{42.39958pt}\LT@entry {3}{61.00943pt}} -\gdef \LT@xvi {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{42.39958pt}\LT@entry +\gdef \LT@xvi {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{42.39958pt}\LT@entry {3}{61.00943pt}} \newlabel{group__pcibx__sc_gad022b65b3032486431f926be08dc58ba}{{6.6.2.2.2}{42}{\texorpdfstring {pci\+\_\+smartcard\+\_\+transact\+\_\+\+A\+P\+D\+U()}{pci\_smartcard\_transact\_APDU()}}{table.6.12}{}} \@writefile{toc}{\contentsline {paragraph}{\numberline {6.6.2.2.3}pci\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}smartcard\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}wait\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}card\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}insertion()}{42}{paragraph.6.6.2.2.3}} diff --git a/Libraries/FCL/doc/output/latex/group__pcibx__sc.tex b/Libraries/FCL/doc/output/latex/group__pcibx__sc.tex index ecc04972dc7..627115df867 100644 --- a/Libraries/FCL/doc/output/latex/group__pcibx__sc.tex +++ b/Libraries/FCL/doc/output/latex/group__pcibx__sc.tex @@ -2,22 +2,22 @@ \label{group__pcibx__sc}\index{E\+M\+V-\/\+Level 1 Smart Card@{E\+M\+V-\/\+Level 1 Smart Card}} \subsection*{List of functions} \begin{DoxyCompactItemize} -\item +\item int \hyperlink{group__pcibx__sc_gac227636b4a270677ea489d54bfa9262e}{pci\+\_\+smartcard\+\_\+config} (S\+C\+A\+R\+D\+\_\+\+C\+O\+NF sconf) -\begin{DoxyCompactList}\small\item\em Configures the Smart Card communication. \end{DoxyCompactList}\item -int \hyperlink{group__pcibx__sc_gaa97512bc1e0389c8528b90e2d2d05ad0}{pci\+\_\+smartcard\+\_\+transact\+\_\+\+A\+P\+DU} (unsigned char A\+P\+D\+U\+\_\+\+Res\mbox{[}$\,$\mbox{]}, unsigned int $\ast$A\+P\+D\+U\+\_\+\+Res\+\_\+len, unsigned int timeout, unsigned char A\+P\+D\+U\+\_\+\+Req\mbox{[}$\,$\mbox{]}, unsigned int $\ast$A\+P\+D\+U\+\_\+\+Req\+\_\+len) -\begin{DoxyCompactList}\small\item\em Performs an A\+P\+DU exchange with the smart card. This function conforms to the E\+M\+V-\/\+Level 1 specification. \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Configures the Smart Card communication. \end{DoxyCompactList}\item +int \hyperlink{group__pcibx__sc_gaa97512bc1e0389c8528b90e2d2d05ad0}{pci\+\_\+smartcard\+\_\+transact\+\_\+\+A\+P\+DU} (unsigned char A\+P\+D\+U\+\_\+\+Res\mbox{[}$\, $\mbox{]}, unsigned int $\ast$A\+P\+D\+U\+\_\+\+Res\+\_\+len, unsigned int timeout, unsigned char A\+P\+D\+U\+\_\+\+Req\mbox{[}$\, $\mbox{]}, unsigned int $\ast$A\+P\+D\+U\+\_\+\+Req\+\_\+len) +\begin{DoxyCompactList}\small\item\em Performs an A\+P\+DU exchange with the smart card. This function conforms to the E\+M\+V-\/\+Level 1 specification. \end{DoxyCompactList}\item int \hyperlink{group__pcibx__sc_gad022b65b3032486431f926be08dc58ba}{pci\+\_\+smartcard\+\_\+wait\+\_\+card\+\_\+insertion} (unsigned int timeout) -\begin{DoxyCompactList}\small\item\em Wait for the smart card being inserted. \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Wait for the smart card being inserted. \end{DoxyCompactList}\item int \hyperlink{group__pcibx__sc_gab0d9d214315edba6757eb7a56508e7fb}{pci\+\_\+smartcard\+\_\+wait\+\_\+card\+\_\+removal} (unsigned int timeout) \begin{DoxyCompactList}\small\item\em Wait for the smart card being removed. \end{DoxyCompactList}\end{DoxyCompactItemize} \subsection{Detailed Description} -This of module is in charge of handling communication with Smart Cards while conforming to the E\+MV Level-\/1 specification. +This of module is in charge of handling communication with Smart Cards while conforming to the E\+MV Level-\/1 specification. \subsection{Function Documentation} -\hypertarget{group__pcibx__sc_gac227636b4a270677ea489d54bfa9262e}{}\label{group__pcibx__sc_gac227636b4a270677ea489d54bfa9262e} +\hypertarget{group__pcibx__sc_gac227636b4a270677ea489d54bfa9262e}{}\label{group__pcibx__sc_gac227636b4a270677ea489d54bfa9262e} \index{E\+M\+V-\/\+Level 1 Smart Card@{E\+M\+V-\/\+Level 1 Smart Card}!pci\+\_\+smartcard\+\_\+config@{pci\+\_\+smartcard\+\_\+config}} \index{pci\+\_\+smartcard\+\_\+config@{pci\+\_\+smartcard\+\_\+config}!E\+M\+V-\/\+Level 1 Smart Card@{E\+M\+V-\/\+Level 1 Smart Card}} \subsubsection{\texorpdfstring{pci\+\_\+smartcard\+\_\+config()}{pci\_smartcard\_config()}} @@ -25,7 +25,7 @@ \subsubsection{\texorpdfstring{pci\+\_\+smartcard\+\_\+config()}{pci\_smartcard\ -Configures the Smart Card communication. +Configures the Smart Card communication. \begin{DoxyParams}[1]{Parameters} @@ -33,17 +33,17 @@ \subsubsection{\texorpdfstring{pci\+\_\+smartcard\+\_\+config()}{pci\_smartcard\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} -See error codes +See error codes \end{DoxyReturn} -\hypertarget{group__pcibx__sc_gaa97512bc1e0389c8528b90e2d2d05ad0}{}\label{group__pcibx__sc_gaa97512bc1e0389c8528b90e2d2d05ad0} +\hypertarget{group__pcibx__sc_gaa97512bc1e0389c8528b90e2d2d05ad0}{}\label{group__pcibx__sc_gaa97512bc1e0389c8528b90e2d2d05ad0} \index{E\+M\+V-\/\+Level 1 Smart Card@{E\+M\+V-\/\+Level 1 Smart Card}!pci\+\_\+smartcard\+\_\+transact\+\_\+\+A\+P\+DU@{pci\+\_\+smartcard\+\_\+transact\+\_\+\+A\+P\+DU}} \index{pci\+\_\+smartcard\+\_\+transact\+\_\+\+A\+P\+DU@{pci\+\_\+smartcard\+\_\+transact\+\_\+\+A\+P\+DU}!E\+M\+V-\/\+Level 1 Smart Card@{E\+M\+V-\/\+Level 1 Smart Card}} \subsubsection{\texorpdfstring{pci\+\_\+smartcard\+\_\+transact\+\_\+\+A\+P\+D\+U()}{pci\_smartcard\_transact\_APDU()}} -{\footnotesize\ttfamily int pci\+\_\+smartcard\+\_\+transact\+\_\+\+A\+P\+DU (\begin{DoxyParamCaption}\item[{unsigned char}]{A\+P\+D\+U\+\_\+\+Res\mbox{[}$\,$\mbox{]}, }\item[{unsigned int $\ast$}]{A\+P\+D\+U\+\_\+\+Res\+\_\+len, }\item[{unsigned int}]{timeout, }\item[{unsigned char}]{A\+P\+D\+U\+\_\+\+Req\mbox{[}$\,$\mbox{]}, }\item[{unsigned int $\ast$}]{A\+P\+D\+U\+\_\+\+Req\+\_\+len }\end{DoxyParamCaption})} +{\footnotesize\ttfamily int pci\+\_\+smartcard\+\_\+transact\+\_\+\+A\+P\+DU (\begin{DoxyParamCaption}\item[{unsigned char}]{A\+P\+D\+U\+\_\+\+Res\mbox{[}$\, $\mbox{]}, }\item[{unsigned int $\ast$}]{A\+P\+D\+U\+\_\+\+Res\+\_\+len, }\item[{unsigned int}]{timeout, }\item[{unsigned char}]{A\+P\+D\+U\+\_\+\+Req\mbox{[}$\, $\mbox{]}, }\item[{unsigned int $\ast$}]{A\+P\+D\+U\+\_\+\+Req\+\_\+len }\end{DoxyParamCaption})} -Performs an A\+P\+DU exchange with the smart card. This function conforms to the E\+M\+V-\/\+Level 1 specification. +Performs an A\+P\+DU exchange with the smart card. This function conforms to the E\+M\+V-\/\+Level 1 specification. \begin{DoxyParams}[1]{Parameters} @@ -59,9 +59,9 @@ \subsubsection{\texorpdfstring{pci\+\_\+smartcard\+\_\+transact\+\_\+\+A\+P\+D\+ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} -See error codes +See error codes \end{DoxyReturn} -\hypertarget{group__pcibx__sc_gad022b65b3032486431f926be08dc58ba}{}\label{group__pcibx__sc_gad022b65b3032486431f926be08dc58ba} +\hypertarget{group__pcibx__sc_gad022b65b3032486431f926be08dc58ba}{}\label{group__pcibx__sc_gad022b65b3032486431f926be08dc58ba} \index{E\+M\+V-\/\+Level 1 Smart Card@{E\+M\+V-\/\+Level 1 Smart Card}!pci\+\_\+smartcard\+\_\+wait\+\_\+card\+\_\+insertion@{pci\+\_\+smartcard\+\_\+wait\+\_\+card\+\_\+insertion}} \index{pci\+\_\+smartcard\+\_\+wait\+\_\+card\+\_\+insertion@{pci\+\_\+smartcard\+\_\+wait\+\_\+card\+\_\+insertion}!E\+M\+V-\/\+Level 1 Smart Card@{E\+M\+V-\/\+Level 1 Smart Card}} \subsubsection{\texorpdfstring{pci\+\_\+smartcard\+\_\+wait\+\_\+card\+\_\+insertion()}{pci\_smartcard\_wait\_card\_insertion()}} @@ -69,7 +69,7 @@ \subsubsection{\texorpdfstring{pci\+\_\+smartcard\+\_\+wait\+\_\+card\+\_\+inser -Wait for the smart card being inserted. +Wait for the smart card being inserted. \begin{DoxyParams}[1]{Parameters} @@ -77,9 +77,9 @@ \subsubsection{\texorpdfstring{pci\+\_\+smartcard\+\_\+wait\+\_\+card\+\_\+inser \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} -See error codes +See error codes \end{DoxyReturn} -\hypertarget{group__pcibx__sc_gab0d9d214315edba6757eb7a56508e7fb}{}\label{group__pcibx__sc_gab0d9d214315edba6757eb7a56508e7fb} +\hypertarget{group__pcibx__sc_gab0d9d214315edba6757eb7a56508e7fb}{}\label{group__pcibx__sc_gab0d9d214315edba6757eb7a56508e7fb} \index{E\+M\+V-\/\+Level 1 Smart Card@{E\+M\+V-\/\+Level 1 Smart Card}!pci\+\_\+smartcard\+\_\+wait\+\_\+card\+\_\+removal@{pci\+\_\+smartcard\+\_\+wait\+\_\+card\+\_\+removal}} \index{pci\+\_\+smartcard\+\_\+wait\+\_\+card\+\_\+removal@{pci\+\_\+smartcard\+\_\+wait\+\_\+card\+\_\+removal}!E\+M\+V-\/\+Level 1 Smart Card@{E\+M\+V-\/\+Level 1 Smart Card}} \subsubsection{\texorpdfstring{pci\+\_\+smartcard\+\_\+wait\+\_\+card\+\_\+removal()}{pci\_smartcard\_wait\_card\_removal()}} @@ -87,7 +87,7 @@ \subsubsection{\texorpdfstring{pci\+\_\+smartcard\+\_\+wait\+\_\+card\+\_\+remov -Wait for the smart card being removed. +Wait for the smart card being removed. \begin{DoxyParams}[1]{Parameters} @@ -95,5 +95,5 @@ \subsubsection{\texorpdfstring{pci\+\_\+smartcard\+\_\+wait\+\_\+card\+\_\+remov \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} -See error codes +See error codes \end{DoxyReturn} diff --git a/Libraries/FCL/doc/output/latex/group__smbx.aux b/Libraries/FCL/doc/output/latex/group__smbx.aux index efc6a89585e..886ab2478af 100644 --- a/Libraries/FCL/doc/output/latex/group__smbx.aux +++ b/Libraries/FCL/doc/output/latex/group__smbx.aux @@ -1,4 +1,4 @@ -\relax +\relax \providecommand\hyper@newdestlabel[2]{} \@writefile{toc}{\contentsline {section}{\numberline {6.4}Security Monitor}{29}{section.6.4}} \newlabel{group__smbx}{{6.4}{29}{Security Monitor}{section.6.4}{}} diff --git a/Libraries/FCL/doc/output/latex/group__smbx.tex b/Libraries/FCL/doc/output/latex/group__smbx.tex index 249f2cabf7f..70f3de68d0d 100644 --- a/Libraries/FCL/doc/output/latex/group__smbx.tex +++ b/Libraries/FCL/doc/output/latex/group__smbx.tex @@ -20,6 +20,6 @@ \begin{DoxyImageNoCaption} - \mbox{\includegraphics[width=\textwidth,height=\textheight/2,keepaspectratio=true]{pci_cortex.png}} + \mbox{\includegraphics[width=\textwidth, height=\textheight/2, keepaspectratio=true]{pci_cortex.png}} \end{DoxyImageNoCaption} \ No newline at end of file diff --git a/Libraries/FCL/doc/output/latex/group__ssbx.aux b/Libraries/FCL/doc/output/latex/group__ssbx.aux index 6a03cdbde21..90f9340d7a0 100644 --- a/Libraries/FCL/doc/output/latex/group__ssbx.aux +++ b/Libraries/FCL/doc/output/latex/group__ssbx.aux @@ -1,4 +1,4 @@ -\relax +\relax \providecommand\hyper@newdestlabel[2]{} \@writefile{toc}{\contentsline {section}{\numberline {6.5}Secure Sandbox services (Generic Security functions)}{30}{section.6.5}} \newlabel{group__ssbx}{{6.5}{30}{Secure Sandbox services (Generic Security functions)}{section.6.5}{}} diff --git a/Libraries/FCL/doc/output/latex/group__ssbx.tex b/Libraries/FCL/doc/output/latex/group__ssbx.tex index 1a36bd5e2fc..bee97be309b 100644 --- a/Libraries/FCL/doc/output/latex/group__ssbx.tex +++ b/Libraries/FCL/doc/output/latex/group__ssbx.tex @@ -2,15 +2,15 @@ \label{group__ssbx}\index{Secure Sandbox services (\+Generic Security functions)@{Secure Sandbox services (\+Generic Security functions)}} \subsection*{Modules} \begin{DoxyCompactItemize} -\item +\item \hyperlink{group__ssbx___crypto}{Cryptography} -\item +\item \hyperlink{group__ssbx___main}{Global management functions} -\item +\item \hyperlink{group__ssbx___i_o}{I/\+O A\+PI} -\item +\item \hyperlink{group__ssbx___key_management}{Key Manager} -\item +\item \hyperlink{group__ssbx___mem}{Memory Manager} \end{DoxyCompactItemize} @@ -45,6 +45,6 @@ \subsection{Detailed Description} \begin{DoxyImageNoCaption} - \mbox{\includegraphics[width=\textwidth,height=\textheight/2,keepaspectratio=true]{pci_cortex.png}} + \mbox{\includegraphics[width=\textwidth, height=\textheight/2, keepaspectratio=true]{pci_cortex.png}} \end{DoxyImageNoCaption} \ No newline at end of file diff --git a/Libraries/FCL/doc/output/latex/group__ssbx___crypto.aux b/Libraries/FCL/doc/output/latex/group__ssbx___crypto.aux index abcb4d3b3d5..aa6514acf0c 100644 --- a/Libraries/FCL/doc/output/latex/group__ssbx___crypto.aux +++ b/Libraries/FCL/doc/output/latex/group__ssbx___crypto.aux @@ -1,4 +1,4 @@ -\relax +\relax \providecommand\hyper@newdestlabel[2]{} \@writefile{toc}{\contentsline {subsection}{\numberline {6.5.2}Cryptography}{32}{subsection.6.5.2}} \newlabel{group__ssbx___crypto}{{6.5.2}{32}{Cryptography}{subsection.6.5.2}{}} diff --git a/Libraries/FCL/doc/output/latex/group__ssbx___i_o.aux b/Libraries/FCL/doc/output/latex/group__ssbx___i_o.aux index 176c90c6f2b..d4faee8449e 100644 --- a/Libraries/FCL/doc/output/latex/group__ssbx___i_o.aux +++ b/Libraries/FCL/doc/output/latex/group__ssbx___i_o.aux @@ -1,8 +1,8 @@ -\relax +\relax \providecommand\hyper@newdestlabel[2]{} -\gdef \LT@v {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{48.01971pt}\LT@entry +\gdef \LT@v {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{48.01971pt}\LT@entry {3}{93.49904pt}} \@writefile{toc}{\contentsline {subsection}{\numberline {6.5.4}I/O A\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}PI}{35}{subsection.6.5.4}} \newlabel{group__ssbx___i_o}{{6.5.4}{35}{I/O A\+PI}{subsection.6.5.4}{}} @@ -12,17 +12,17 @@ \@writefile{toc}{\contentsline {paragraph}{\numberline {6.5.4.2.1}ssbx\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}display\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}display\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}image()}{35}{paragraph.6.5.4.2.1}} \newlabel{group__ssbx___i_o_ga701c4c43823bad80a39745de2b5ad3af}{{6.5.4.2.1}{35}{\texorpdfstring {ssbx\+\_\+display\+\_\+display\+\_\+image()}{ssbx\_display\_display\_image()}}{table.6.3}{}} \@writefile{toc}{\contentsline {paragraph}{\numberline {6.5.4.2.2}ssbx\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}display\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}prompt()}{35}{paragraph.6.5.4.2.2}} -\gdef \LT@vi {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{57.45955pt}\LT@entry +\gdef \LT@vi {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{57.45955pt}\LT@entry {3}{219.2978pt}} -\gdef \LT@vii {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{57.45955pt}\LT@entry +\gdef \LT@vii {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{57.45955pt}\LT@entry {3}{102.93887pt}} -\gdef \LT@viii {\LT@entry - {3}{44.29971pt}\LT@entry - {3}{28.50972pt}\LT@entry +\gdef \LT@viii {\LT@entry + {3}{44.29971pt}\LT@entry + {3}{28.50972pt}\LT@entry {3}{74.33926pt}} \newlabel{group__ssbx___i_o_ga40574f625e50f59357a9c363305bf76e}{{6.5.4.2.2}{36}{\texorpdfstring {ssbx\+\_\+display\+\_\+prompt()}{ssbx\_display\_prompt()}}{table.6.4}{}} \@writefile{toc}{\contentsline {paragraph}{\numberline {6.5.4.2.3}ssbx\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}display\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}write\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}message()}{36}{paragraph.6.5.4.2.3}} diff --git a/Libraries/FCL/doc/output/latex/group__ssbx___i_o.tex b/Libraries/FCL/doc/output/latex/group__ssbx___i_o.tex index a2a322e271d..6dd2139e6df 100644 --- a/Libraries/FCL/doc/output/latex/group__ssbx___i_o.tex +++ b/Libraries/FCL/doc/output/latex/group__ssbx___i_o.tex @@ -2,22 +2,22 @@ \label{group__ssbx___i_o}\index{I/\+O A\+PI@{I/\+O A\+PI}} \subsection*{List of functions} \begin{DoxyCompactItemize} -\item +\item int \hyperlink{group__ssbx___i_o_ga52d5005d7bb36355592b9ef2309281e2}{ssbx\+\_\+display\+\_\+display\+\_\+image} (int image\+\_\+id) -\begin{DoxyCompactList}\small\item\em Displays a pre-\/defined image on the display. \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Displays a pre-\/defined image on the display. \end{DoxyCompactList}\item int \hyperlink{group__ssbx___i_o_ga701c4c43823bad80a39745de2b5ad3af}{ssbx\+\_\+display\+\_\+prompt} (unsigned char $\ast$kbd\+\_\+str, int $\ast$max\+\_\+length, int timeout, int message\+\_\+id, char mask, int font\+\_\+id) -\begin{DoxyCompactList}\small\item\em Displays a pre-\/defined prompt on the display and waits for user entry. \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Displays a pre-\/defined prompt on the display and waits for user entry. \end{DoxyCompactList}\item int \hyperlink{group__ssbx___i_o_ga40574f625e50f59357a9c363305bf76e}{ssbx\+\_\+display\+\_\+write\+\_\+message} (int message\+\_\+id) -\begin{DoxyCompactList}\small\item\em Displays a pre-\/defined text message on the display. \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Displays a pre-\/defined text message on the display. \end{DoxyCompactList}\item int \hyperlink{group__ssbx___i_o_gaefc88ab3af9c2f984281ac32723d0633}{ssbx\+\_\+touch\+\_\+get\+\_\+entry} (char $\ast$dest, int $\ast$len) \begin{DoxyCompactList}\small\item\em Gets input from the virtual keypad on the touchscreen. \end{DoxyCompactList}\end{DoxyCompactItemize} \subsection{Detailed Description} -This module offers some input-\/output services that allow interaction with users (keypad, touchscreen, display) +This module offers some input-\/output services that allow interaction with users (keypad, touchscreen, display) \subsection{Function Documentation} -\hypertarget{group__ssbx___i_o_ga52d5005d7bb36355592b9ef2309281e2}{}\label{group__ssbx___i_o_ga52d5005d7bb36355592b9ef2309281e2} +\hypertarget{group__ssbx___i_o_ga52d5005d7bb36355592b9ef2309281e2}{}\label{group__ssbx___i_o_ga52d5005d7bb36355592b9ef2309281e2} \index{I/\+O A\+PI@{I/\+O A\+PI}!ssbx\+\_\+display\+\_\+display\+\_\+image@{ssbx\+\_\+display\+\_\+display\+\_\+image}} \index{ssbx\+\_\+display\+\_\+display\+\_\+image@{ssbx\+\_\+display\+\_\+display\+\_\+image}!I/\+O A\+PI@{I/\+O A\+PI}} \subsubsection{\texorpdfstring{ssbx\+\_\+display\+\_\+display\+\_\+image()}{ssbx\_display\_display\_image()}} @@ -25,7 +25,7 @@ \subsubsection{\texorpdfstring{ssbx\+\_\+display\+\_\+display\+\_\+image()}{ssbx -Displays a pre-\/defined image on the display. +Displays a pre-\/defined image on the display. Depending on the current state (see ssbx\+\_\+set\+\_\+state), the image will be displayed or an error will be returned. @@ -35,17 +35,17 @@ \subsubsection{\texorpdfstring{ssbx\+\_\+display\+\_\+display\+\_\+image()}{ssbx \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} -See error codes +See error codes \end{DoxyReturn} -\hypertarget{group__ssbx___i_o_ga701c4c43823bad80a39745de2b5ad3af}{}\label{group__ssbx___i_o_ga701c4c43823bad80a39745de2b5ad3af} +\hypertarget{group__ssbx___i_o_ga701c4c43823bad80a39745de2b5ad3af}{}\label{group__ssbx___i_o_ga701c4c43823bad80a39745de2b5ad3af} \index{I/\+O A\+PI@{I/\+O A\+PI}!ssbx\+\_\+display\+\_\+prompt@{ssbx\+\_\+display\+\_\+prompt}} \index{ssbx\+\_\+display\+\_\+prompt@{ssbx\+\_\+display\+\_\+prompt}!I/\+O A\+PI@{I/\+O A\+PI}} \subsubsection{\texorpdfstring{ssbx\+\_\+display\+\_\+prompt()}{ssbx\_display\_prompt()}} -{\footnotesize\ttfamily int ssbx\+\_\+display\+\_\+prompt (\begin{DoxyParamCaption}\item[{unsigned char $\ast$}]{kbd\+\_\+str, }\item[{int $\ast$}]{max\+\_\+length, }\item[{int}]{timeout, }\item[{int}]{message\+\_\+id, }\item[{char}]{mask, }\item[{int}]{font\+\_\+id }\end{DoxyParamCaption})} +{\footnotesize\ttfamily int ssbx\+\_\+display\+\_\+prompt (\begin{DoxyParamCaption}\item[{unsigned char $\ast$}]{kbd\+\_\+str, }\item[{int $\ast$}]{max\+\_\+length, }\item[{int}]{timeout, }\item[{int}]{message\+\_\+id, }\item[{char}]{mask, }\item[{int}]{font\+\_\+id }\end{DoxyParamCaption})} -Displays a pre-\/defined prompt on the display and waits for user entry. +Displays a pre-\/defined prompt on the display and waits for user entry. Depending on the current state (see ssbx\+\_\+set\+\_\+state), the prompt will be displayed or an error will be returned. @@ -61,9 +61,9 @@ \subsubsection{\texorpdfstring{ssbx\+\_\+display\+\_\+prompt()}{ssbx\_display\_p \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} -See error codes +See error codes \end{DoxyReturn} -\hypertarget{group__ssbx___i_o_ga40574f625e50f59357a9c363305bf76e}{}\label{group__ssbx___i_o_ga40574f625e50f59357a9c363305bf76e} +\hypertarget{group__ssbx___i_o_ga40574f625e50f59357a9c363305bf76e}{}\label{group__ssbx___i_o_ga40574f625e50f59357a9c363305bf76e} \index{I/\+O A\+PI@{I/\+O A\+PI}!ssbx\+\_\+display\+\_\+write\+\_\+message@{ssbx\+\_\+display\+\_\+write\+\_\+message}} \index{ssbx\+\_\+display\+\_\+write\+\_\+message@{ssbx\+\_\+display\+\_\+write\+\_\+message}!I/\+O A\+PI@{I/\+O A\+PI}} \subsubsection{\texorpdfstring{ssbx\+\_\+display\+\_\+write\+\_\+message()}{ssbx\_display\_write\_message()}} @@ -71,7 +71,7 @@ \subsubsection{\texorpdfstring{ssbx\+\_\+display\+\_\+write\+\_\+message()}{ssbx -Displays a pre-\/defined text message on the display. +Displays a pre-\/defined text message on the display. Depending on the current state (see ssbx\+\_\+set\+\_\+state), the text message will be displayed or an error will be returned. @@ -81,17 +81,17 @@ \subsubsection{\texorpdfstring{ssbx\+\_\+display\+\_\+write\+\_\+message()}{ssbx \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} -See error codes +See error codes \end{DoxyReturn} -\hypertarget{group__ssbx___i_o_gaefc88ab3af9c2f984281ac32723d0633}{}\label{group__ssbx___i_o_gaefc88ab3af9c2f984281ac32723d0633} +\hypertarget{group__ssbx___i_o_gaefc88ab3af9c2f984281ac32723d0633}{}\label{group__ssbx___i_o_gaefc88ab3af9c2f984281ac32723d0633} \index{I/\+O A\+PI@{I/\+O A\+PI}!ssbx\+\_\+touch\+\_\+get\+\_\+entry@{ssbx\+\_\+touch\+\_\+get\+\_\+entry}} \index{ssbx\+\_\+touch\+\_\+get\+\_\+entry@{ssbx\+\_\+touch\+\_\+get\+\_\+entry}!I/\+O A\+PI@{I/\+O A\+PI}} \subsubsection{\texorpdfstring{ssbx\+\_\+touch\+\_\+get\+\_\+entry()}{ssbx\_touch\_get\_entry()}} -{\footnotesize\ttfamily int ssbx\+\_\+touch\+\_\+get\+\_\+entry (\begin{DoxyParamCaption}\item[{char $\ast$}]{dest, }\item[{int $\ast$}]{len }\end{DoxyParamCaption})} +{\footnotesize\ttfamily int ssbx\+\_\+touch\+\_\+get\+\_\+entry (\begin{DoxyParamCaption}\item[{char $\ast$}]{dest, }\item[{int $\ast$}]{len }\end{DoxyParamCaption})} -Gets input from the virtual keypad on the touchscreen. +Gets input from the virtual keypad on the touchscreen. This operation is allowed only if the P\+CI Secure Services box is not processing a P\+IN. @@ -99,9 +99,9 @@ \subsubsection{\texorpdfstring{ssbx\+\_\+touch\+\_\+get\+\_\+entry()}{ssbx\_touc \begin{DoxyParams}[1]{Parameters} & {\em dest} & The destination \\ \hline -\mbox{\tt in,out} & {\em len} & The key length\\ +\mbox{\tt in, out} & {\em len} & The key length\\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} -See error codes +See error codes \end{DoxyReturn} diff --git a/Libraries/FCL/doc/output/latex/group__ssbx___key_management.aux b/Libraries/FCL/doc/output/latex/group__ssbx___key_management.aux index aee2b468f7e..96775484e0a 100644 --- a/Libraries/FCL/doc/output/latex/group__ssbx___key_management.aux +++ b/Libraries/FCL/doc/output/latex/group__ssbx___key_management.aux @@ -1,4 +1,4 @@ -\relax +\relax \providecommand\hyper@newdestlabel[2]{} \@writefile{toc}{\contentsline {subsection}{\numberline {6.5.5}Key Manager}{37}{subsection.6.5.5}} \newlabel{group__ssbx___key_management}{{6.5.5}{37}{Key Manager}{subsection.6.5.5}{}} diff --git a/Libraries/FCL/doc/output/latex/group__ssbx___main.aux b/Libraries/FCL/doc/output/latex/group__ssbx___main.aux index a578bfd4aae..e916ecfb224 100644 --- a/Libraries/FCL/doc/output/latex/group__ssbx___main.aux +++ b/Libraries/FCL/doc/output/latex/group__ssbx___main.aux @@ -1,12 +1,12 @@ -\relax +\relax \providecommand\hyper@newdestlabel[2]{} -\gdef \LT@iii {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{73.7694pt}\LT@entry +\gdef \LT@iii {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{73.7694pt}\LT@entry {3}{185.96837pt}} -\gdef \LT@iv {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{47.66965pt}\LT@entry +\gdef \LT@iv {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{47.66965pt}\LT@entry {3}{91.829pt}} \@writefile{toc}{\contentsline {subsection}{\numberline {6.5.3}Global management functions}{33}{subsection.6.5.3}} \newlabel{group__ssbx___main}{{6.5.3}{33}{Global management functions}{subsection.6.5.3}{}} diff --git a/Libraries/FCL/doc/output/latex/group__ssbx___main.tex b/Libraries/FCL/doc/output/latex/group__ssbx___main.tex index 8521674d42b..17589b63b6b 100644 --- a/Libraries/FCL/doc/output/latex/group__ssbx___main.tex +++ b/Libraries/FCL/doc/output/latex/group__ssbx___main.tex @@ -2,28 +2,28 @@ \label{group__ssbx___main}\index{Global management functions@{Global management functions}} \subsection*{List of functions} \begin{DoxyCompactItemize} -\item +\item int \hyperlink{group__ssbx___main_ga242681afc2ef11a1ecff51d1fecefd2b}{ssbx\+\_\+rtc\+\_\+set\+\_\+alarm} (uint32\+\_\+t period\+\_\+seconds, uint32\+\_\+t type, uint32\+\_\+t code, void($\ast$callback)(uint32\+\_\+t)) -\begin{DoxyCompactList}\small\item\em Sets an R\+TC based alarm. \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Sets an R\+TC based alarm. \end{DoxyCompactList}\item int \hyperlink{group__ssbx___main_gacbaeac49c40f20084b80c4d6b942a331}{ssbx\+\_\+rtc\+\_\+unset\+\_\+alarm} (uint32\+\_\+t alarm\+\_\+id) -\begin{DoxyCompactList}\small\item\em Disables an alarm. \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Disables an alarm. \end{DoxyCompactList}\item int \hyperlink{group__ssbx___main_gabade948f2d1354f81824d6dc2ea93d83}{ssbx\+\_\+start} (void) \begin{DoxyCompactList}\small\item\em Starts the system, with various integrity checks. \end{DoxyCompactList}\end{DoxyCompactItemize} \subsection{Detailed Description} -Additional management services come from the u\+Visor A\+PI\+: \href{https://github.com/ARMmbed/uvisor/blob/master/docs/api/API.md}{\tt https\+://github.\+com/\+A\+R\+Mmbed/uvisor/blob/master/docs/api/\+A\+P\+I.\+md} +Additional management services come from the u\+Visor A\+PI\+: \href{https://github.com/ARMmbed/uvisor/blob/master/docs/api/API.md}{\tt https\+://github.\+com/\+A\+R\+Mmbed/uvisor/blob/master/docs/api/\+A\+P\+I.\+md} \subsection{Function Documentation} -\hypertarget{group__ssbx___main_ga242681afc2ef11a1ecff51d1fecefd2b}{}\label{group__ssbx___main_ga242681afc2ef11a1ecff51d1fecefd2b} +\hypertarget{group__ssbx___main_ga242681afc2ef11a1ecff51d1fecefd2b}{}\label{group__ssbx___main_ga242681afc2ef11a1ecff51d1fecefd2b} \index{Global management functions@{Global management functions}!ssbx\+\_\+rtc\+\_\+set\+\_\+alarm@{ssbx\+\_\+rtc\+\_\+set\+\_\+alarm}} \index{ssbx\+\_\+rtc\+\_\+set\+\_\+alarm@{ssbx\+\_\+rtc\+\_\+set\+\_\+alarm}!Global management functions@{Global management functions}} \subsubsection{\texorpdfstring{ssbx\+\_\+rtc\+\_\+set\+\_\+alarm()}{ssbx\_rtc\_set\_alarm()}} -{\footnotesize\ttfamily int ssbx\+\_\+rtc\+\_\+set\+\_\+alarm (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{period\+\_\+seconds, }\item[{uint32\+\_\+t}]{type, }\item[{uint32\+\_\+t}]{code, }\item[{void($\ast$)(uint32\+\_\+t)}]{callback }\end{DoxyParamCaption})} +{\footnotesize\ttfamily int ssbx\+\_\+rtc\+\_\+set\+\_\+alarm (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{period\+\_\+seconds, }\item[{uint32\+\_\+t}]{type, }\item[{uint32\+\_\+t}]{code, }\item[{void($\ast$)(uint32\+\_\+t)}]{callback }\end{DoxyParamCaption})} -Sets an R\+TC based alarm. +Sets an R\+TC based alarm. \begin{DoxyParams}[1]{Parameters} @@ -33,9 +33,9 @@ \subsubsection{\texorpdfstring{ssbx\+\_\+rtc\+\_\+set\+\_\+alarm()}{ssbx\_rtc\_s \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} -ID of the alarm +ID of the alarm \end{DoxyReturn} -\hypertarget{group__ssbx___main_gacbaeac49c40f20084b80c4d6b942a331}{}\label{group__ssbx___main_gacbaeac49c40f20084b80c4d6b942a331} +\hypertarget{group__ssbx___main_gacbaeac49c40f20084b80c4d6b942a331}{}\label{group__ssbx___main_gacbaeac49c40f20084b80c4d6b942a331} \index{Global management functions@{Global management functions}!ssbx\+\_\+rtc\+\_\+unset\+\_\+alarm@{ssbx\+\_\+rtc\+\_\+unset\+\_\+alarm}} \index{ssbx\+\_\+rtc\+\_\+unset\+\_\+alarm@{ssbx\+\_\+rtc\+\_\+unset\+\_\+alarm}!Global management functions@{Global management functions}} \subsubsection{\texorpdfstring{ssbx\+\_\+rtc\+\_\+unset\+\_\+alarm()}{ssbx\_rtc\_unset\_alarm()}} @@ -43,7 +43,7 @@ \subsubsection{\texorpdfstring{ssbx\+\_\+rtc\+\_\+unset\+\_\+alarm()}{ssbx\_rtc\ -Disables an alarm. +Disables an alarm. \begin{DoxyParams}[1]{Parameters} @@ -51,9 +51,9 @@ \subsubsection{\texorpdfstring{ssbx\+\_\+rtc\+\_\+unset\+\_\+alarm()}{ssbx\_rtc\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} --\/1 if error (caller is not the owner of the alarm), 0 if OK +-\/1 if error (caller is not the owner of the alarm), 0 if OK \end{DoxyReturn} -\hypertarget{group__ssbx___main_gabade948f2d1354f81824d6dc2ea93d83}{}\label{group__ssbx___main_gabade948f2d1354f81824d6dc2ea93d83} +\hypertarget{group__ssbx___main_gabade948f2d1354f81824d6dc2ea93d83}{}\label{group__ssbx___main_gabade948f2d1354f81824d6dc2ea93d83} \index{Global management functions@{Global management functions}!ssbx\+\_\+start@{ssbx\+\_\+start}} \index{ssbx\+\_\+start@{ssbx\+\_\+start}!Global management functions@{Global management functions}} \subsubsection{\texorpdfstring{ssbx\+\_\+start()}{ssbx\_start()}} @@ -61,8 +61,8 @@ \subsubsection{\texorpdfstring{ssbx\+\_\+start()}{ssbx\_start()}} -Starts the system, with various integrity checks. +Starts the system, with various integrity checks. \begin{DoxyReturn}{Returns} -See error codes +See error codes \end{DoxyReturn} diff --git a/Libraries/FCL/doc/output/latex/group__ssbx___mem.aux b/Libraries/FCL/doc/output/latex/group__ssbx___mem.aux index 05e4b1904a3..1fc04559786 100644 --- a/Libraries/FCL/doc/output/latex/group__ssbx___mem.aux +++ b/Libraries/FCL/doc/output/latex/group__ssbx___mem.aux @@ -1,8 +1,8 @@ -\relax +\relax \providecommand\hyper@newdestlabel[2]{} -\gdef \LT@ix {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{27.39961pt}\LT@entry +\gdef \LT@ix {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{27.39961pt}\LT@entry {3}{186.54826pt}} \@writefile{toc}{\contentsline {subsection}{\numberline {6.5.6}Memory Manager}{38}{subsection.6.5.6}} \newlabel{group__ssbx___mem}{{6.5.6}{38}{Memory Manager}{subsection.6.5.6}{}} @@ -12,16 +12,16 @@ \@writefile{toc}{\contentsline {paragraph}{\numberline {6.5.6.2.1}ssbx\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}memsec\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}alloc()}{38}{paragraph.6.5.6.2.1}} \newlabel{group__ssbx___mem_ga7bdb13c9e820522a2dd962852e39d17d}{{6.5.6.2.1}{38}{\texorpdfstring {ssbx\+\_\+memsec\+\_\+alloc()}{ssbx\_memsec\_alloc()}}{table.6.7}{}} \@writefile{toc}{\contentsline {paragraph}{\numberline {6.5.6.2.2}ssbx\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}memsec\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}free()}{38}{paragraph.6.5.6.2.2}} -\gdef \LT@x {\LT@entry - {3}{17.79999pt}\LT@entry +\gdef \LT@x {\LT@entry + {3}{17.79999pt}\LT@entry {3}{130.71886pt}} -\gdef \LT@xi {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{33.88959pt}\LT@entry +\gdef \LT@xi {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{33.88959pt}\LT@entry {3}{130.71886pt}} -\gdef \LT@xii {\LT@entry - {3}{23.2999pt}\LT@entry - {3}{33.88959pt}\LT@entry +\gdef \LT@xii {\LT@entry + {3}{23.2999pt}\LT@entry + {3}{33.88959pt}\LT@entry {3}{130.71886pt}} \newlabel{group__ssbx___mem_gae2a833e9b4c47b6c2eed6cbfb53e272a}{{6.5.6.2.2}{39}{\texorpdfstring {ssbx\+\_\+memsec\+\_\+free()}{ssbx\_memsec\_free()}}{table.6.8}{}} \@writefile{toc}{\contentsline {paragraph}{\numberline {6.5.6.2.3}ssbx\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}memsec\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}\_\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}read()}{39}{paragraph.6.5.6.2.3}} diff --git a/Libraries/FCL/doc/output/latex/group__ssbx___mem.tex b/Libraries/FCL/doc/output/latex/group__ssbx___mem.tex index 6606f418207..f4ce209f5b9 100644 --- a/Libraries/FCL/doc/output/latex/group__ssbx___mem.tex +++ b/Libraries/FCL/doc/output/latex/group__ssbx___mem.tex @@ -2,30 +2,30 @@ \label{group__ssbx___mem}\index{Memory Manager@{Memory Manager}} \subsection*{List of functions} \begin{DoxyCompactItemize} -\item +\item int \hyperlink{group__ssbx___mem_ga96810d67a710b2b5c6bdf36e8be9264d}{ssbx\+\_\+memsec\+\_\+alloc} (\hyperlink{struct_m_e_m_s_e_c___h_a_n_d_l_e}{M\+E\+M\+S\+E\+C\+\_\+\+H\+A\+N\+D\+LE} $\ast$h, unsigned int size) -\begin{DoxyCompactList}\small\item\em Allocates memory in the N\+V\+S\+R\+AM. \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Allocates memory in the N\+V\+S\+R\+AM. \end{DoxyCompactList}\item int \hyperlink{group__ssbx___mem_ga7bdb13c9e820522a2dd962852e39d17d}{ssbx\+\_\+memsec\+\_\+free} (\hyperlink{struct_m_e_m_s_e_c___h_a_n_d_l_e}{M\+E\+M\+S\+E\+C\+\_\+\+H\+A\+N\+D\+LE} $\ast$h) -\begin{DoxyCompactList}\small\item\em Releases allocated secure memory (N\+V\+S\+R\+AM) \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Releases allocated secure memory (N\+V\+S\+R\+AM) \end{DoxyCompactList}\item int \hyperlink{group__ssbx___mem_gae2a833e9b4c47b6c2eed6cbfb53e272a}{ssbx\+\_\+memsec\+\_\+read} (\hyperlink{struct_m_e_m_s_e_c___h_a_n_d_l_e}{M\+E\+M\+S\+E\+C\+\_\+\+H\+A\+N\+D\+LE} $\ast$h, unsigned int offset, unsigned int size) -\begin{DoxyCompactList}\small\item\em Reads from secure memory (N\+V\+S\+R\+AM) \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Reads from secure memory (N\+V\+S\+R\+AM) \end{DoxyCompactList}\item int \hyperlink{group__ssbx___mem_gae04ea24bdad83f4943013677e489a87b}{ssbx\+\_\+memsec\+\_\+write} (\hyperlink{struct_m_e_m_s_e_c___h_a_n_d_l_e}{M\+E\+M\+S\+E\+C\+\_\+\+H\+A\+N\+D\+LE} $\ast$h, unsigned int offset, unsigned int size) \begin{DoxyCompactList}\small\item\em Writes to secure memory (N\+V\+S\+R\+AM) \end{DoxyCompactList}\end{DoxyCompactItemize} \subsection{Detailed Description} -This of module is in charge of securely handling the memory allocation/deallocation in N\+V\+S\+R\+AM. +This of module is in charge of securely handling the memory allocation/deallocation in N\+V\+S\+R\+AM. \subsection{Function Documentation} -\hypertarget{group__ssbx___mem_ga96810d67a710b2b5c6bdf36e8be9264d}{}\label{group__ssbx___mem_ga96810d67a710b2b5c6bdf36e8be9264d} +\hypertarget{group__ssbx___mem_ga96810d67a710b2b5c6bdf36e8be9264d}{}\label{group__ssbx___mem_ga96810d67a710b2b5c6bdf36e8be9264d} \index{Memory Manager@{Memory Manager}!ssbx\+\_\+memsec\+\_\+alloc@{ssbx\+\_\+memsec\+\_\+alloc}} \index{ssbx\+\_\+memsec\+\_\+alloc@{ssbx\+\_\+memsec\+\_\+alloc}!Memory Manager@{Memory Manager}} \subsubsection{\texorpdfstring{ssbx\+\_\+memsec\+\_\+alloc()}{ssbx\_memsec\_alloc()}} -{\footnotesize\ttfamily int ssbx\+\_\+memsec\+\_\+alloc (\begin{DoxyParamCaption}\item[{\hyperlink{struct_m_e_m_s_e_c___h_a_n_d_l_e}{M\+E\+M\+S\+E\+C\+\_\+\+H\+A\+N\+D\+LE} $\ast$}]{h, }\item[{unsigned int}]{size }\end{DoxyParamCaption})} +{\footnotesize\ttfamily int ssbx\+\_\+memsec\+\_\+alloc (\begin{DoxyParamCaption}\item[{\hyperlink{struct_m_e_m_s_e_c___h_a_n_d_l_e}{M\+E\+M\+S\+E\+C\+\_\+\+H\+A\+N\+D\+LE} $\ast$}]{h, }\item[{unsigned int}]{size }\end{DoxyParamCaption})} -Allocates memory in the N\+V\+S\+R\+AM. +Allocates memory in the N\+V\+S\+R\+AM. The battery backed N\+V\+S\+R\+AM holds automatically encrypted/decrypted data. This memory is wiped in case of tamper attack on the system. @@ -39,9 +39,9 @@ \subsubsection{\texorpdfstring{ssbx\+\_\+memsec\+\_\+alloc()}{ssbx\_memsec\_allo \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} -See error codes +See error codes \end{DoxyReturn} -\hypertarget{group__ssbx___mem_ga7bdb13c9e820522a2dd962852e39d17d}{}\label{group__ssbx___mem_ga7bdb13c9e820522a2dd962852e39d17d} +\hypertarget{group__ssbx___mem_ga7bdb13c9e820522a2dd962852e39d17d}{}\label{group__ssbx___mem_ga7bdb13c9e820522a2dd962852e39d17d} \index{Memory Manager@{Memory Manager}!ssbx\+\_\+memsec\+\_\+free@{ssbx\+\_\+memsec\+\_\+free}} \index{ssbx\+\_\+memsec\+\_\+free@{ssbx\+\_\+memsec\+\_\+free}!Memory Manager@{Memory Manager}} \subsubsection{\texorpdfstring{ssbx\+\_\+memsec\+\_\+free()}{ssbx\_memsec\_free()}} @@ -49,7 +49,7 @@ \subsubsection{\texorpdfstring{ssbx\+\_\+memsec\+\_\+free()}{ssbx\_memsec\_free( -Releases allocated secure memory (N\+V\+S\+R\+AM) +Releases allocated secure memory (N\+V\+S\+R\+AM) \begin{DoxyParams}{Parameters} @@ -57,17 +57,17 @@ \subsubsection{\texorpdfstring{ssbx\+\_\+memsec\+\_\+free()}{ssbx\_memsec\_free( \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} -See error codes +See error codes \end{DoxyReturn} -\hypertarget{group__ssbx___mem_gae2a833e9b4c47b6c2eed6cbfb53e272a}{}\label{group__ssbx___mem_gae2a833e9b4c47b6c2eed6cbfb53e272a} +\hypertarget{group__ssbx___mem_gae2a833e9b4c47b6c2eed6cbfb53e272a}{}\label{group__ssbx___mem_gae2a833e9b4c47b6c2eed6cbfb53e272a} \index{Memory Manager@{Memory Manager}!ssbx\+\_\+memsec\+\_\+read@{ssbx\+\_\+memsec\+\_\+read}} \index{ssbx\+\_\+memsec\+\_\+read@{ssbx\+\_\+memsec\+\_\+read}!Memory Manager@{Memory Manager}} \subsubsection{\texorpdfstring{ssbx\+\_\+memsec\+\_\+read()}{ssbx\_memsec\_read()}} -{\footnotesize\ttfamily int ssbx\+\_\+memsec\+\_\+read (\begin{DoxyParamCaption}\item[{\hyperlink{struct_m_e_m_s_e_c___h_a_n_d_l_e}{M\+E\+M\+S\+E\+C\+\_\+\+H\+A\+N\+D\+LE} $\ast$}]{h, }\item[{unsigned int}]{offset, }\item[{unsigned int}]{size }\end{DoxyParamCaption})} +{\footnotesize\ttfamily int ssbx\+\_\+memsec\+\_\+read (\begin{DoxyParamCaption}\item[{\hyperlink{struct_m_e_m_s_e_c___h_a_n_d_l_e}{M\+E\+M\+S\+E\+C\+\_\+\+H\+A\+N\+D\+LE} $\ast$}]{h, }\item[{unsigned int}]{offset, }\item[{unsigned int}]{size }\end{DoxyParamCaption})} -Reads from secure memory (N\+V\+S\+R\+AM) +Reads from secure memory (N\+V\+S\+R\+AM) \begin{DoxyParams}[1]{Parameters} @@ -79,17 +79,17 @@ \subsubsection{\texorpdfstring{ssbx\+\_\+memsec\+\_\+read()}{ssbx\_memsec\_read( \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} -See error codes +See error codes \end{DoxyReturn} -\hypertarget{group__ssbx___mem_gae04ea24bdad83f4943013677e489a87b}{}\label{group__ssbx___mem_gae04ea24bdad83f4943013677e489a87b} +\hypertarget{group__ssbx___mem_gae04ea24bdad83f4943013677e489a87b}{}\label{group__ssbx___mem_gae04ea24bdad83f4943013677e489a87b} \index{Memory Manager@{Memory Manager}!ssbx\+\_\+memsec\+\_\+write@{ssbx\+\_\+memsec\+\_\+write}} \index{ssbx\+\_\+memsec\+\_\+write@{ssbx\+\_\+memsec\+\_\+write}!Memory Manager@{Memory Manager}} \subsubsection{\texorpdfstring{ssbx\+\_\+memsec\+\_\+write()}{ssbx\_memsec\_write()}} -{\footnotesize\ttfamily int ssbx\+\_\+memsec\+\_\+write (\begin{DoxyParamCaption}\item[{\hyperlink{struct_m_e_m_s_e_c___h_a_n_d_l_e}{M\+E\+M\+S\+E\+C\+\_\+\+H\+A\+N\+D\+LE} $\ast$}]{h, }\item[{unsigned int}]{offset, }\item[{unsigned int}]{size }\end{DoxyParamCaption})} +{\footnotesize\ttfamily int ssbx\+\_\+memsec\+\_\+write (\begin{DoxyParamCaption}\item[{\hyperlink{struct_m_e_m_s_e_c___h_a_n_d_l_e}{M\+E\+M\+S\+E\+C\+\_\+\+H\+A\+N\+D\+LE} $\ast$}]{h, }\item[{unsigned int}]{offset, }\item[{unsigned int}]{size }\end{DoxyParamCaption})} -Writes to secure memory (N\+V\+S\+R\+AM) +Writes to secure memory (N\+V\+S\+R\+AM) \begin{DoxyParams}[1]{Parameters} @@ -101,5 +101,5 @@ \subsubsection{\texorpdfstring{ssbx\+\_\+memsec\+\_\+write()}{ssbx\_memsec\_writ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} -See error codes +See error codes \end{DoxyReturn} diff --git a/Libraries/FCL/doc/output/latex/refman.ind b/Libraries/FCL/doc/output/latex/refman.ind index a1279b9ef24..5d1f3950e14 100644 --- a/Libraries/FCL/doc/output/latex/refman.ind +++ b/Libraries/FCL/doc/output/latex/refman.ind @@ -12,12 +12,12 @@ \item {E\+M\+V-\/\+Level 1 Smart Card}, \hyperpage{41} \subitem {pci\+\_\+smartcard\+\_\+config}, \hyperpage{41} - \subitem {pci\+\_\+smartcard\+\_\+transact\+\_\+\+A\+P\+DU}, - \hyperpage{41} - \subitem {pci\+\_\+smartcard\+\_\+wait\+\_\+card\+\_\+insertion}, - \hyperpage{42} - \subitem {pci\+\_\+smartcard\+\_\+wait\+\_\+card\+\_\+removal}, - \hyperpage{42} + \subitem {pci\+\_\+smartcard\+\_\+transact\+\_\+\+A\+P\+DU}, + \hyperpage{41} + \subitem {pci\+\_\+smartcard\+\_\+wait\+\_\+card\+\_\+insertion}, + \hyperpage{42} + \subitem {pci\+\_\+smartcard\+\_\+wait\+\_\+card\+\_\+removal}, + \hyperpage{42} \indexspace @@ -29,11 +29,11 @@ \indexspace \item {I/\+O A\+PI}, \hyperpage{35} - \subitem {ssbx\+\_\+display\+\_\+display\+\_\+image}, - \hyperpage{35} + \subitem {ssbx\+\_\+display\+\_\+display\+\_\+image}, + \hyperpage{35} \subitem {ssbx\+\_\+display\+\_\+prompt}, \hyperpage{35} - \subitem {ssbx\+\_\+display\+\_\+write\+\_\+message}, - \hyperpage{36} + \subitem {ssbx\+\_\+display\+\_\+write\+\_\+message}, + \hyperpage{36} \subitem {ssbx\+\_\+touch\+\_\+get\+\_\+entry}, \hyperpage{36} \indexspace @@ -51,16 +51,16 @@ \indexspace - \item {Operating system, drivers, C library, other libraries...}, - \hyperpage{28} + \item {Operating system, drivers, C library, other libraries...}, + \hyperpage{28} \indexspace - \item {P\+C\+I Security Services, Security functions dedicated to P\+C\+I P\+T\+S P\+O\+I security}, - \hyperpage{40} + \item {P\+C\+I Security Services, Security functions dedicated to P\+C\+I P\+T\+S P\+O\+I security}, + \hyperpage{40} \item {P\+I\+N handling}, \hyperpage{43} - \subitem {pci\+\_\+authenticate\+\_\+issuer\+\_\+and\+\_\+icc\+\_\+public\+\_\+key}, - \hyperpage{43} + \subitem {pci\+\_\+authenticate\+\_\+issuer\+\_\+and\+\_\+icc\+\_\+public\+\_\+key}, + \hyperpage{43} \subitem {pci\+\_\+get\+\_\+online\+\_\+pin}, \hyperpage{44} \subitem {pci\+\_\+pin\+\_\+entry}, \hyperpage{44} \subitem {pci\+\_\+verify\+\_\+offline\+\_\+pin}, \hyperpage{45} @@ -88,8 +88,8 @@ \indexspace - \item {Secure Sandbox services (\+Generic Security functions)}, - \hyperpage{30} + \item {Secure Sandbox services (\+Generic Security functions)}, + \hyperpage{30} \item {Security Monitor}, \hyperpage{29} \item {ssbx\+\_\+display\+\_\+display\+\_\+image} \subitem {I/\+O A\+PI}, \hyperpage{35} @@ -127,14 +127,14 @@ \item {u\+Visor A\+PI}, \hyperpage{47} \subitem {check\+\_\+acl}, \hyperpage{51} \subitem {rpc\+\_\+fncall\+\_\+waitfor}, \hyperpage{52} - \subitem {U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+C\+O\+N\+F\+IG}, - \hyperpage{49} - \subitem {U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+N\+A\+M\+E\+S\+P\+A\+CE}, - \hyperpage{49} - \subitem {U\+V\+I\+S\+O\+R\+\_\+\+S\+E\+T\+\_\+\+M\+O\+D\+E\+\_\+\+A\+CL}, - \hyperpage{50} - \subitem {U\+V\+I\+S\+O\+R\+\_\+\+S\+E\+T\+\_\+\+M\+O\+DE}, - \hyperpage{50} + \subitem {U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+C\+O\+N\+F\+IG}, + \hyperpage{49} + \subitem {U\+V\+I\+S\+O\+R\+\_\+\+B\+O\+X\+\_\+\+N\+A\+M\+E\+S\+P\+A\+CE}, + \hyperpage{49} + \subitem {U\+V\+I\+S\+O\+R\+\_\+\+S\+E\+T\+\_\+\+M\+O\+D\+E\+\_\+\+A\+CL}, + \hyperpage{50} + \subitem {U\+V\+I\+S\+O\+R\+\_\+\+S\+E\+T\+\_\+\+M\+O\+DE}, + \hyperpage{50} \subitem {uvisor\+\_\+box\+\_\+id\+\_\+self}, \hyperpage{52} \subitem {uvisor\+\_\+box\+\_\+namespace}, \hyperpage{52} \subitem {uvisor\+\_\+box\+\_\+signingkey}, \hyperpage{53} diff --git a/Libraries/FCL/doc/output/latex/refman.out b/Libraries/FCL/doc/output/latex/refman.out index 67fa252e357..d05c814929c 100644 --- a/Libraries/FCL/doc/output/latex/refman.out +++ b/Libraries/FCL/doc/output/latex/refman.out @@ -10,20 +10,20 @@ \BOOKMARK [2][-]{subsection.5.2.2}{\376\377\0005\000.\0002\000.\0002\000\040\000H\000y\000p\000e\000r\000v\000i\000s\000o\000r\000\040\000i\000n\000i\000t\000i\000a\000l\000i\000z\000a\000t\000i\000o\000n}{section.5.2}% 10 \BOOKMARK [2][-]{subsection.5.2.3}{\376\377\0005\000.\0002\000.\0003\000\040\000C\000o\000n\000t\000e\000x\000t\000\040\000s\000w\000i\000t\000c\000h\000e\000s}{section.5.2}% 11 \BOOKMARK [2][-]{subsection.5.2.4}{\376\377\0005\000.\0002\000.\0004\000\040\000S\000u\000m\000m\000a\000r\000y\000\040\000o\000f\000\040\000M\000P\000U\000\040\000p\000r\000o\000t\000e\000c\000t\000i\000o\000n\000\040\000e\000f\000f\000e\000c\000t\000s}{section.5.2}% 12 -\BOOKMARK [1][-]{section.5.3}{\376\377\0005\000.\0003\000\040\000C\000h\000a\000i\000n\000-\000o\000f\000-\000T\000r\000u\000s\000t\000,\000\040\000f\000i\000r\000m\000w\000a\000r\000e\000\040\000i\000n\000t\000e\000g\000r\000i\000t\000y\000\040\000a\000n\000d\000\040\000a\000u\000t\000h\000e\000n\000t\000i\000c\000i\000t\000y}{chapter.5}% 13 +\BOOKMARK [1][-]{section.5.3}{\376\377\0005\000.\0003\000\040\000C\000h\000a\000i\000n\000-\000o\000f\000-\000T\000r\000u\000s\000t\000, \000\040\000f\000i\000r\000m\000w\000a\000r\000e\000\040\000i\000n\000t\000e\000g\000r\000i\000t\000y\000\040\000a\000n\000d\000\040\000a\000u\000t\000h\000e\000n\000t\000i\000c\000i\000t\000y}{chapter.5}% 13 \BOOKMARK [2][-]{subsection.5.3.1}{\376\377\0005\000.\0003\000.\0001\000\040\000S\000e\000c\000u\000r\000e\000\040\000B\000o\000o\000t\000\040\000f\000i\000r\000m\000w\000a\000r\000e\000\040\000a\000n\000d\000\040\000v\000e\000r\000i\000f\000i\000c\000a\000t\000i\000o\000n\000\040\000k\000e\000y\000\040\000a\000r\000e\000\040\000i\000n\000\040\000i\000m\000m\000u\000t\000a\000b\000l\000e\000\040\000m\000e\000m\000o\000r\000i\000e\000s\000\040\000w\000i\000t\000h\000\040\000i\000n\000t\000e\000g\000r\000i\000t\000y\000\040\000c\000h\000e\000c\000k}{section.5.3}% 14 \BOOKMARK [2][-]{subsection.5.3.2}{\376\377\0005\000.\0003\000.\0002\000\040\000N\000o\000\040\000c\000o\000d\000e\000\040\000l\000o\000a\000d\000i\000n\000g\000/\000i\000n\000j\000e\000c\000t\000i\000o\000n\000\040\000i\000s\000\040\000p\000o\000s\000s\000i\000b\000l\000e\000\040\000e\000x\000c\000e\000p\000t\000\040\000t\000h\000r\000o\000u\000g\000h\000\040\000a\000\040\000s\000e\000c\000u\000r\000e\000\040\000l\000o\000a\000d\000e\000r}{section.5.3}% 15 -\BOOKMARK [1][-]{section.5.4}{\376\377\0005\000.\0004\000\040\000S\000u\000m\000m\000a\000r\000y\000\040\000o\000f\000\040\000s\000o\000f\000t\000w\000a\000r\000e\000\040\000i\000t\000e\000m\000s\000,\000\040\000k\000e\000y\000s\000\040\000a\000n\000d\000\040\000t\000h\000e\000i\000r\000\040\000p\000r\000o\000t\000e\000c\000t\000i\000o\000n}{chapter.5}% 16 +\BOOKMARK [1][-]{section.5.4}{\376\377\0005\000.\0004\000\040\000S\000u\000m\000m\000a\000r\000y\000\040\000o\000f\000\040\000s\000o\000f\000t\000w\000a\000r\000e\000\040\000i\000t\000e\000m\000s\000, \000\040\000k\000e\000y\000s\000\040\000a\000n\000d\000\040\000t\000h\000e\000i\000r\000\040\000p\000r\000o\000t\000e\000c\000t\000i\000o\000n}{chapter.5}% 16 \BOOKMARK [1][-]{section.5.5}{\376\377\0005\000.\0005\000\040\000A\000d\000d\000i\000t\000i\000o\000n\000a\000l\000\040\000c\000o\000n\000s\000i\000d\000e\000r\000a\000t\000i\000o\000n\000s}{chapter.5}% 17 \BOOKMARK [2][-]{subsection.5.5.1}{\376\377\0005\000.\0005\000.\0001\000\040\000A\000b\000s\000e\000n\000c\000e\000\040\000o\000f\000\040\000b\000a\000c\000k\000d\000o\000o\000r\000s}{section.5.5}% 18 \BOOKMARK [2][-]{subsection.5.5.2}{\376\377\0005\000.\0005\000.\0002\000\040\000E\000x\000e\000c\000u\000t\000i\000o\000n\000\040\000f\000r\000o\000m\000\040\000i\000n\000t\000e\000r\000n\000a\000l\000\040\000m\000e\000m\000o\000r\000i\000e\000s}{section.5.5}% 19 \BOOKMARK [2][-]{subsection.5.5.3}{\376\377\0005\000.\0005\000.\0003\000\040\000P\000r\000o\000t\000e\000c\000t\000i\000o\000n\000\040\000o\000f\000\040\000e\000x\000t\000e\000r\000n\000a\000l\000\040\000m\000e\000m\000o\000r\000i\000e\000s}{section.5.5}% 20 \BOOKMARK [2][-]{subsection.5.5.4}{\376\377\0005\000.\0005\000.\0004\000\040\000E\000a\000r\000l\000y\000\040\000e\000x\000e\000c\000u\000t\000i\000o\000n\000\040\000t\000h\000e\000\040\000S\000e\000c\000u\000r\000e\000\040\000B\000o\000o\000t\000\040\000R\000O\000M\000\040\000a\000n\000d\000\040\000o\000f\000\040\000t\000h\000e\000\040\000i\000s\000o\000l\000a\000t\000i\000o\000n\000\040\000m\000e\000c\000h\000a\000n\000i\000s\000m}{section.5.5}% 21 \BOOKMARK [1][-]{section.5.6}{\376\377\0005\000.\0006\000\040\000H\000a\000r\000d\000w\000a\000r\000e\000\040\000e\000n\000f\000o\000r\000c\000e\000d\000\040\000s\000e\000c\000u\000r\000i\000t\000y}{chapter.5}% 22 -\BOOKMARK [2][-]{subsection.5.6.1}{\376\377\0005\000.\0006\000.\0001\000\040\000C\000o\000r\000t\000e\000x\000-\000M\000\040\000m\000e\000c\000h\000a\000n\000i\000s\000m\000s\000:\000\040\000M\000P\000U\000,\000\040\000p\000r\000i\000v\000i\000l\000e\000g\000e\000s\000,\000\040\000N\000V\000I\000C}{section.5.6}% 23 +\BOOKMARK [2][-]{subsection.5.6.1}{\376\377\0005\000.\0006\000.\0001\000\040\000C\000o\000r\000t\000e\000x\000-\000M\000\040\000m\000e\000c\000h\000a\000n\000i\000s\000m\000s\000:\000\040\000M\000P\000U\000, \000\040\000p\000r\000i\000v\000i\000l\000e\000g\000e\000s\000, \000\040\000N\000V\000I\000C}{section.5.6}% 23 \BOOKMARK [2][-]{subsection.5.6.2}{\376\377\0005\000.\0006\000.\0002\000\040\000N\000V\000S\000R\000A\000M\000\040\000-\000\040\000B\000a\000t\000t\000e\000r\000y\000\040\000b\000a\000c\000k\000e\000d\000\040\000n\000o\000n\000\040\000v\000o\000l\000a\000t\000i\000l\000e\000\040\000R\000A\000M}{section.5.6}% 24 \BOOKMARK [2][-]{subsection.5.6.3}{\376\377\0005\000.\0006\000.\0003\000\040\000S\000e\000n\000s\000o\000r\000s}{section.5.6}% 25 -\BOOKMARK [2][-]{subsection.5.6.4}{\376\377\0005\000.\0006\000.\0004\000\040\000R\000e\000a\000d\000-\000O\000n\000l\000y\000\040\000M\000e\000m\000o\000r\000y\000,\000\040\000O\000n\000e\000-\000T\000i\000m\000e\000\040\000p\000r\000o\000g\000r\000a\000m\000m\000a\000b\000l\000e\000\040\000m\000e\000m\000o\000r\000y}{section.5.6}% 26 +\BOOKMARK [2][-]{subsection.5.6.4}{\376\377\0005\000.\0006\000.\0004\000\040\000R\000e\000a\000d\000-\000O\000n\000l\000y\000\040\000M\000e\000m\000o\000r\000y\000, \000\040\000O\000n\000e\000-\000T\000i\000m\000e\000\040\000p\000r\000o\000g\000r\000a\000m\000m\000a\000b\000l\000e\000\040\000m\000e\000m\000o\000r\000y}{section.5.6}% 26 \BOOKMARK [1][-]{section.5.7}{\376\377\0005\000.\0007\000\040\000S\000e\000c\000u\000r\000e\000\040\000A\000P\000I}{chapter.5}% 27 \BOOKMARK [1][-]{section.5.8}{\376\377\0005\000.\0008\000\040\000M\000a\000x\000i\000m\000\040\000I\000n\000t\000e\000g\000r\000a\000t\000e\000d\000\040\000d\000e\000v\000e\000l\000o\000p\000m\000e\000n\000t\000\040\000p\000r\000o\000c\000e\000s\000s}{chapter.5}% 28 \BOOKMARK [2][-]{subsection.5.8.1}{\376\377\0005\000.\0008\000.\0001\000\040\000S\000o\000u\000r\000c\000e\000\040\000c\000o\000d\000e\000\040\000c\000o\000n\000t\000r\000o\000l}{section.5.8}% 29 @@ -33,11 +33,11 @@ \BOOKMARK [2][-]{subsection.5.8.5}{\376\377\0005\000.\0008\000.\0005\000\040\000D\000e\000v\000e\000l\000o\000p\000e\000r\000\047\000s\000\040\000g\000u\000i\000d\000e\000l\000i\000n\000e\000s}{section.5.8}% 33 \BOOKMARK [2][-]{subsection.5.8.6}{\376\377\0005\000.\0008\000.\0006\000\040\000F\000i\000r\000m\000w\000a\000r\000e\000\040\000v\000e\000r\000s\000i\000o\000n\000i\000n\000g\000\040\000a\000n\000d\000\040\000m\000a\000n\000a\000g\000e\000m\000e\000n\000t}{section.5.8}% 34 \BOOKMARK [1][-]{section.5.9}{\376\377\0005\000.\0009\000\040\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n}{chapter.5}% 35 -\BOOKMARK [2][-]{subsection.5.9.1}{\376\377\0005\000.\0009\000.\0001\000\040\000A\000r\000c\000h\000i\000t\000e\000c\000t\000u\000r\000e\000\040\000d\000i\000a\000g\000r\000a\000m\000,\000\040\000P\000C\000I\000\040\000f\000i\000r\000m\000w\000a\000r\000e\000\040\000p\000e\000r\000i\000m\000e\000t\000e\000r}{section.5.9}% 36 +\BOOKMARK [2][-]{subsection.5.9.1}{\376\377\0005\000.\0009\000.\0001\000\040\000A\000r\000c\000h\000i\000t\000e\000c\000t\000u\000r\000e\000\040\000d\000i\000a\000g\000r\000a\000m\000, \000\040\000P\000C\000I\000\040\000f\000i\000r\000m\000w\000a\000r\000e\000\040\000p\000e\000r\000i\000m\000e\000t\000e\000r}{section.5.9}% 36 \BOOKMARK [0][-]{chapter.6}{\376\377\0006\000\040\000D\000e\000s\000i\000g\000n\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n}{}% 37 \BOOKMARK [1][-]{section.6.1}{\376\377\0006\000.\0001\000\040\000S\000o\000f\000t\000w\000a\000r\000e\000\040\000A\000P\000I\000\040\000S\000p\000e\000c\000i\000f\000i\000c\000a\000t\000i\000o\000n}{chapter.6}% 38 \BOOKMARK [1][-]{section.6.2}{\376\377\0006\000.\0002\000\040\000A\000p\000p\000l\000i\000c\000a\000t\000i\000o\000n\000\040\000b\000o\000x\000\050\000e\000s\000\051}{chapter.6}% 39 -\BOOKMARK [1][-]{section.6.3}{\376\377\0006\000.\0003\000\040\000O\000p\000e\000r\000a\000t\000i\000n\000g\000\040\000s\000y\000s\000t\000e\000m\000,\000\040\000d\000r\000i\000v\000e\000r\000s\000,\000\040\000C\000\040\000l\000i\000b\000r\000a\000r\000y\000,\000\040\000o\000t\000h\000e\000r\000\040\000l\000i\000b\000r\000a\000r\000i\000e\000s\000.\000.\000.}{chapter.6}% 40 +\BOOKMARK [1][-]{section.6.3}{\376\377\0006\000.\0003\000\040\000O\000p\000e\000r\000a\000t\000i\000n\000g\000\040\000s\000y\000s\000t\000e\000m\000, \000\040\000d\000r\000i\000v\000e\000r\000s\000, \000\040\000C\000\040\000l\000i\000b\000r\000a\000r\000y\000, \000\040\000o\000t\000h\000e\000r\000\040\000l\000i\000b\000r\000a\000r\000i\000e\000s\000.\000.\000.}{chapter.6}% 40 \BOOKMARK [1][-]{section.6.4}{\376\377\0006\000.\0004\000\040\000S\000e\000c\000u\000r\000i\000t\000y\000\040\000M\000o\000n\000i\000t\000o\000r}{chapter.6}% 41 \BOOKMARK [1][-]{section.6.5}{\376\377\0006\000.\0005\000\040\000S\000e\000c\000u\000r\000e\000\040\000S\000a\000n\000d\000b\000o\000x\000\040\000s\000e\000r\000v\000i\000c\000e\000s\000\040\000\050\000G\000e\000n\000e\000r\000i\000c\000\040\000S\000e\000c\000u\000r\000i\000t\000y\000\040\000f\000u\000n\000c\000t\000i\000o\000n\000s\000\051}{chapter.6}% 42 \BOOKMARK [2][-]{subsection.6.5.1}{\376\377\0006\000.\0005\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n}{section.6.5}% 43 @@ -52,7 +52,7 @@ \BOOKMARK [2][-]{subsection.6.5.6}{\376\377\0006\000.\0005\000.\0006\000\040\000M\000e\000m\000o\000r\000y\000\040\000M\000a\000n\000a\000g\000e\000r}{section.6.5}% 52 \BOOKMARK [3][-]{subsubsection.6.5.6.1}{\376\377\0006\000.\0005\000.\0006\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n}{subsection.6.5.6}% 53 \BOOKMARK [3][-]{subsubsection.6.5.6.2}{\376\377\0006\000.\0005\000.\0006\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{subsection.6.5.6}% 54 -\BOOKMARK [1][-]{section.6.6}{\376\377\0006\000.\0006\000\040\000P\000C\000I\000\040\000S\000e\000c\000u\000r\000i\000t\000y\000\040\000S\000e\000r\000v\000i\000c\000e\000s\000,\000\040\000S\000e\000c\000u\000r\000i\000t\000y\000\040\000f\000u\000n\000c\000t\000i\000o\000n\000s\000\040\000d\000e\000d\000i\000c\000a\000t\000e\000d\000\040\000t\000o\000\040\000P\000C\000I\000\040\000P\000T\000S\000\040\000P\000O\000I\000\040\000s\000e\000c\000u\000r\000i\000t\000y}{chapter.6}% 55 +\BOOKMARK [1][-]{section.6.6}{\376\377\0006\000.\0006\000\040\000P\000C\000I\000\040\000S\000e\000c\000u\000r\000i\000t\000y\000\040\000S\000e\000r\000v\000i\000c\000e\000s\000, \000\040\000S\000e\000c\000u\000r\000i\000t\000y\000\040\000f\000u\000n\000c\000t\000i\000o\000n\000s\000\040\000d\000e\000d\000i\000c\000a\000t\000e\000d\000\040\000t\000o\000\040\000P\000C\000I\000\040\000P\000T\000S\000\040\000P\000O\000I\000\040\000s\000e\000c\000u\000r\000i\000t\000y}{chapter.6}% 55 \BOOKMARK [2][-]{subsection.6.6.1}{\376\377\0006\000.\0006\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n}{section.6.6}% 56 \BOOKMARK [2][-]{subsection.6.6.2}{\376\377\0006\000.\0006\000.\0002\000\040\000E\000M\000V\000-\000L\000e\000v\000e\000l\000\040\0001\000\040\000S\000m\000a\000r\000t\000\040\000C\000a\000r\000d}{section.6.6}% 57 \BOOKMARK [3][-]{subsubsection.6.6.2.1}{\376\377\0006\000.\0006\000.\0002\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n}{subsection.6.6.2}% 58 diff --git a/Libraries/FCL/doc/output/latex/refman.tex b/Libraries/FCL/doc/output/latex/refman.tex index e9427153f9e..ed5d8e2a223 100644 --- a/Libraries/FCL/doc/output/latex/refman.tex +++ b/Libraries/FCL/doc/output/latex/refman.tex @@ -43,10 +43,10 @@ % Page & text layout \usepackage{geometry} \geometry{% - a4paper,% - top=2.5cm,% - bottom=2.5cm,% - left=2.5cm,% + a4paper, % + top=2.5cm, % + bottom=2.5cm, % + left=2.5cm, % right=2.5cm% } \tolerance=750 @@ -105,14 +105,14 @@ % Hyperlinks (required, but should be loaded last) \usepackage{ifpdf} \ifpdf - \usepackage[pdftex,pagebackref=true]{hyperref} + \usepackage[pdftex, pagebackref=true]{hyperref} \else - \usepackage[ps2pdf,pagebackref=true]{hyperref} + \usepackage[ps2pdf, pagebackref=true]{hyperref} \fi \hypersetup{% - colorlinks=true,% - linkcolor=blue,% - citecolor=blue,% + colorlinks=true, % + linkcolor=blue, % + citecolor=blue, % unicode% } @@ -122,7 +122,7 @@ } \usepackage{caption} -\captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top} +\captionsetup{labelsep=space, justification=centering, font={bf}, singlelinecheck=off, skip=4pt, position=top} %CUSTOMIZATION % @@ -208,13 +208,13 @@ \section*{Disclaimer} \subsection*{LIFE SUPPORT POLICY} -MAXIM’S PRODUCTS ARE NOT AUTHORIZED FOR USE AS CRITICAL COMPONENTS IN LIFE SUPPORT DEVICES OR SYSTEMS WITHOUT THE EXPRESS PRIOR WRITTEN APPROVAL OF THE PRESIDENT AND GENERAL COUNSEL OF MAXIM INTEGRATED PRODUCTS, INC. +MAXIM’S PRODUCTS ARE NOT AUTHORIZED FOR USE AS CRITICAL COMPONENTS IN LIFE SUPPORT DEVICES OR SYSTEMS WITHOUT THE EXPRESS PRIOR WRITTEN APPROVAL OF THE PRESIDENT AND GENERAL COUNSEL OF MAXIM INTEGRATED PRODUCTS, INC. \subsection*{As used herein} Life support devices or systems are devices which (a) are intended for surgical implant into the body, or (b) support or sustain life and whose failure to perform when properly used in accordance with instructions for use provided in the labeling can be reasonably expected to result in a significant injury to the user. A critical component is any component in a life support device or system whose failure to perform can be reasonably expected to cause the failure of the life support device or system or to affect its safety or effectiveness. \subsection*{Document Disclaimer} -©\docyear by Maxim Integrated, Inc. All rights reserved. Information in this publication concerning the devices, applications, or technology described is intended to suggest possible uses and may be superseded. MAXIM INTEGRATED, INC. DOES NOT ASSUME LIABILITY FOR OR PROVIDE A REPRESENTATION OF ACCURACY OF THE INFORMATION, DEVICES, OR TECHNOLOGY DESCRIBED IN THIS DOCUMENT. MAXIM ALSO DOES NOT ASSUME LIABILITY FOR INTELLECTUAL PROPERTY INFRINGEMENT RELATED IN ANY MANNER TO USE OF INFORMATION, DEVICES, OR TECHNOLOGY DESCRIBED HEREIN OR OTHERWISE. The information contained within this document has been verified according to the general principles of electrical and mechanical engineering or registered trademarks of Maxim Integrated, Inc. All other product or service names are the property of their respective owners. +©\docyear by Maxim Integrated, Inc. All rights reserved. Information in this publication concerning the devices, applications, or technology described is intended to suggest possible uses and may be superseded. MAXIM INTEGRATED, INC. DOES NOT ASSUME LIABILITY FOR OR PROVIDE A REPRESENTATION OF ACCURACY OF THE INFORMATION, DEVICES, OR TECHNOLOGY DESCRIBED IN THIS DOCUMENT. MAXIM ALSO DOES NOT ASSUME LIABILITY FOR INTELLECTUAL PROPERTY INFRINGEMENT RELATED IN ANY MANNER TO USE OF INFORMATION, DEVICES, OR TECHNOLOGY DESCRIBED HEREIN OR OTHERWISE. The information contained within this document has been verified according to the general principles of electrical and mechanical engineering or registered trademarks of Maxim Integrated, Inc. All other product or service names are the property of their respective owners. ARM® and Thumb® are registered trademarks of ARM Limited in the European Union and other countries. All other product or service names are the property of their respective owners. diff --git a/Libraries/FCL/doc/output/latex/struct__msg__lcd.tex b/Libraries/FCL/doc/output/latex/struct__msg__lcd.tex index 65f7a2399dc..1fe3172eb2f 100644 --- a/Libraries/FCL/doc/output/latex/struct__msg__lcd.tex +++ b/Libraries/FCL/doc/output/latex/struct__msg__lcd.tex @@ -2,41 +2,41 @@ \label{struct__msg__lcd}\index{\+\_\+msg\+\_\+lcd@{\+\_\+msg\+\_\+lcd}} \subsection*{Data Fields} \begin{DoxyCompactItemize} -\item -\hypertarget{struct__msg__lcd_a920bed898c8aa0c621de98b072beb7d7}{}\label{struct__msg__lcd_a920bed898c8aa0c621de98b072beb7d7} +\item +\hypertarget{struct__msg__lcd_a920bed898c8aa0c621de98b072beb7d7}{}\label{struct__msg__lcd_a920bed898c8aa0c621de98b072beb7d7} int {\bfseries idfont} -\item -\hypertarget{struct__msg__lcd_ae4f3f55be5de649fd367081b9d1b4b0c}{}\label{struct__msg__lcd_ae4f3f55be5de649fd367081b9d1b4b0c} +\item +\hypertarget{struct__msg__lcd_ae4f3f55be5de649fd367081b9d1b4b0c}{}\label{struct__msg__lcd_ae4f3f55be5de649fd367081b9d1b4b0c} char {\bfseries msg} \mbox{[}50\mbox{]} -\item -\hypertarget{struct__msg__lcd_a439227feff9d7f55384e8780cfc2eb82}{}\label{struct__msg__lcd_a439227feff9d7f55384e8780cfc2eb82} +\item +\hypertarget{struct__msg__lcd_a439227feff9d7f55384e8780cfc2eb82}{}\label{struct__msg__lcd_a439227feff9d7f55384e8780cfc2eb82} int {\bfseries size} -\item -\hypertarget{struct__msg__lcd_a4e3cffd47e372183af356a20d713d7d4}{}\label{struct__msg__lcd_a4e3cffd47e372183af356a20d713d7d4} +\item +\hypertarget{struct__msg__lcd_a4e3cffd47e372183af356a20d713d7d4}{}\label{struct__msg__lcd_a4e3cffd47e372183af356a20d713d7d4} int {\bfseries xy} \mbox{[}2\mbox{]} \end{DoxyCompactItemize} \subsection{Field Documentation} -\hypertarget{struct__msg__lcd_a920bed898c8aa0c621de98b072beb7d7}{}\label{struct__msg__lcd_a920bed898c8aa0c621de98b072beb7d7} +\hypertarget{struct__msg__lcd_a920bed898c8aa0c621de98b072beb7d7}{}\label{struct__msg__lcd_a920bed898c8aa0c621de98b072beb7d7} \index{\+\_\+msg\+\_\+lcd@{\+\_\+msg\+\_\+lcd}!idfont@{idfont}} \index{idfont@{idfont}!\+\_\+msg\+\_\+lcd@{\+\_\+msg\+\_\+lcd}} \subsubsection{\texorpdfstring{idfont}{idfont}} {\footnotesize\ttfamily int idfont} -\hypertarget{struct__msg__lcd_ae4f3f55be5de649fd367081b9d1b4b0c}{}\label{struct__msg__lcd_ae4f3f55be5de649fd367081b9d1b4b0c} +\hypertarget{struct__msg__lcd_ae4f3f55be5de649fd367081b9d1b4b0c}{}\label{struct__msg__lcd_ae4f3f55be5de649fd367081b9d1b4b0c} \index{\+\_\+msg\+\_\+lcd@{\+\_\+msg\+\_\+lcd}!msg@{msg}} \index{msg@{msg}!\+\_\+msg\+\_\+lcd@{\+\_\+msg\+\_\+lcd}} \subsubsection{\texorpdfstring{msg}{msg}} {\footnotesize\ttfamily char msg\mbox{[}50\mbox{]}} -\hypertarget{struct__msg__lcd_a439227feff9d7f55384e8780cfc2eb82}{}\label{struct__msg__lcd_a439227feff9d7f55384e8780cfc2eb82} +\hypertarget{struct__msg__lcd_a439227feff9d7f55384e8780cfc2eb82}{}\label{struct__msg__lcd_a439227feff9d7f55384e8780cfc2eb82} \index{\+\_\+msg\+\_\+lcd@{\+\_\+msg\+\_\+lcd}!size@{size}} \index{size@{size}!\+\_\+msg\+\_\+lcd@{\+\_\+msg\+\_\+lcd}} \subsubsection{\texorpdfstring{size}{size}} {\footnotesize\ttfamily int size} -\hypertarget{struct__msg__lcd_a4e3cffd47e372183af356a20d713d7d4}{}\label{struct__msg__lcd_a4e3cffd47e372183af356a20d713d7d4} +\hypertarget{struct__msg__lcd_a4e3cffd47e372183af356a20d713d7d4}{}\label{struct__msg__lcd_a4e3cffd47e372183af356a20d713d7d4} \index{\+\_\+msg\+\_\+lcd@{\+\_\+msg\+\_\+lcd}!xy@{xy}} \index{xy@{xy}!\+\_\+msg\+\_\+lcd@{\+\_\+msg\+\_\+lcd}} \subsubsection{\texorpdfstring{xy}{xy}} diff --git a/Libraries/FCL/doc/output/latex/struct_certification_authorities.tex b/Libraries/FCL/doc/output/latex/struct_certification_authorities.tex index 09fe8dc2852..4903074afca 100644 --- a/Libraries/FCL/doc/output/latex/struct_certification_authorities.tex +++ b/Libraries/FCL/doc/output/latex/struct_certification_authorities.tex @@ -2,86 +2,86 @@ \label{struct_certification_authorities}\index{Certification\+Authorities@{Certification\+Authorities}} \subsection*{Data Fields} \begin{DoxyCompactItemize} -\item -\hypertarget{struct_certification_authorities_a9414fe6ffc23bcd6aecf04b73815de4c}{}\label{struct_certification_authorities_a9414fe6ffc23bcd6aecf04b73815de4c} +\item +\hypertarget{struct_certification_authorities_a9414fe6ffc23bcd6aecf04b73815de4c}{}\label{struct_certification_authorities_a9414fe6ffc23bcd6aecf04b73815de4c} uint8\+\_\+t {\bfseries C\+Aindex} -\item -\hypertarget{struct_certification_authorities_a74db2d4c720927689793d17e8f7aa201}{}\label{struct_certification_authorities_a74db2d4c720927689793d17e8f7aa201} +\item +\hypertarget{struct_certification_authorities_a74db2d4c720927689793d17e8f7aa201}{}\label{struct_certification_authorities_a74db2d4c720927689793d17e8f7aa201} int {\bfseries expdate} \mbox{[}3\mbox{]} -\item -\hypertarget{struct_certification_authorities_af05d5abe7656953548edfb3eb5117659}{}\label{struct_certification_authorities_af05d5abe7656953548edfb3eb5117659} +\item +\hypertarget{struct_certification_authorities_af05d5abe7656953548edfb3eb5117659}{}\label{struct_certification_authorities_af05d5abe7656953548edfb3eb5117659} uint8\+\_\+t {\bfseries exponent} -\item -\hypertarget{struct_certification_authorities_a759b7e96d51c83032b1b2b3b044c603b}{}\label{struct_certification_authorities_a759b7e96d51c83032b1b2b3b044c603b} +\item +\hypertarget{struct_certification_authorities_a759b7e96d51c83032b1b2b3b044c603b}{}\label{struct_certification_authorities_a759b7e96d51c83032b1b2b3b044c603b} uint8\+\_\+t {\bfseries hash\+\_\+len} -\item -\hypertarget{struct_certification_authorities_a0e534707786c3202ce6e8b7e0e09fcfc}{}\label{struct_certification_authorities_a0e534707786c3202ce6e8b7e0e09fcfc} +\item +\hypertarget{struct_certification_authorities_a0e534707786c3202ce6e8b7e0e09fcfc}{}\label{struct_certification_authorities_a0e534707786c3202ce6e8b7e0e09fcfc} uint8\+\_\+t $\ast$ {\bfseries hash\+\_\+val} -\item -\hypertarget{struct_certification_authorities_acb88a5708b7b7b661cbf957c102af84d}{}\label{struct_certification_authorities_acb88a5708b7b7b661cbf957c102af84d} +\item +\hypertarget{struct_certification_authorities_acb88a5708b7b7b661cbf957c102af84d}{}\label{struct_certification_authorities_acb88a5708b7b7b661cbf957c102af84d} uint8\+\_\+t {\bfseries hashalgoindicator} -\item -\hypertarget{struct_certification_authorities_a284a4fa5e7ccf25f33e813d99e72e1e0}{}\label{struct_certification_authorities_a284a4fa5e7ccf25f33e813d99e72e1e0} +\item +\hypertarget{struct_certification_authorities_a284a4fa5e7ccf25f33e813d99e72e1e0}{}\label{struct_certification_authorities_a284a4fa5e7ccf25f33e813d99e72e1e0} uint8\+\_\+t {\bfseries modulus\+\_\+len} -\item -\hypertarget{struct_certification_authorities_ababec13341cbe30053f9f6b21de153e9}{}\label{struct_certification_authorities_ababec13341cbe30053f9f6b21de153e9} +\item +\hypertarget{struct_certification_authorities_ababec13341cbe30053f9f6b21de153e9}{}\label{struct_certification_authorities_ababec13341cbe30053f9f6b21de153e9} uint8\+\_\+t $\ast$ {\bfseries modulus\+\_\+val} -\item -\hypertarget{struct_certification_authorities_a3a073291e447e9d7472092cb8d2d2e26}{}\label{struct_certification_authorities_a3a073291e447e9d7472092cb8d2d2e26} +\item +\hypertarget{struct_certification_authorities_a3a073291e447e9d7472092cb8d2d2e26}{}\label{struct_certification_authorities_a3a073291e447e9d7472092cb8d2d2e26} uint8\+\_\+t {\bfseries publickeyalgoindicator} \end{DoxyCompactItemize} \subsection{Field Documentation} -\hypertarget{struct_certification_authorities_a9414fe6ffc23bcd6aecf04b73815de4c}{}\label{struct_certification_authorities_a9414fe6ffc23bcd6aecf04b73815de4c} +\hypertarget{struct_certification_authorities_a9414fe6ffc23bcd6aecf04b73815de4c}{}\label{struct_certification_authorities_a9414fe6ffc23bcd6aecf04b73815de4c} \index{Certification\+Authorities@{Certification\+Authorities}!C\+Aindex@{C\+Aindex}} \index{C\+Aindex@{C\+Aindex}!Certification\+Authorities@{Certification\+Authorities}} \subsubsection{\texorpdfstring{C\+Aindex}{CAindex}} {\footnotesize\ttfamily uint8\+\_\+t C\+Aindex} -\hypertarget{struct_certification_authorities_a74db2d4c720927689793d17e8f7aa201}{}\label{struct_certification_authorities_a74db2d4c720927689793d17e8f7aa201} +\hypertarget{struct_certification_authorities_a74db2d4c720927689793d17e8f7aa201}{}\label{struct_certification_authorities_a74db2d4c720927689793d17e8f7aa201} \index{Certification\+Authorities@{Certification\+Authorities}!expdate@{expdate}} \index{expdate@{expdate}!Certification\+Authorities@{Certification\+Authorities}} \subsubsection{\texorpdfstring{expdate}{expdate}} {\footnotesize\ttfamily int expdate\mbox{[}3\mbox{]}} -\hypertarget{struct_certification_authorities_af05d5abe7656953548edfb3eb5117659}{}\label{struct_certification_authorities_af05d5abe7656953548edfb3eb5117659} +\hypertarget{struct_certification_authorities_af05d5abe7656953548edfb3eb5117659}{}\label{struct_certification_authorities_af05d5abe7656953548edfb3eb5117659} \index{Certification\+Authorities@{Certification\+Authorities}!exponent@{exponent}} \index{exponent@{exponent}!Certification\+Authorities@{Certification\+Authorities}} \subsubsection{\texorpdfstring{exponent}{exponent}} {\footnotesize\ttfamily uint8\+\_\+t exponent} -\hypertarget{struct_certification_authorities_a759b7e96d51c83032b1b2b3b044c603b}{}\label{struct_certification_authorities_a759b7e96d51c83032b1b2b3b044c603b} +\hypertarget{struct_certification_authorities_a759b7e96d51c83032b1b2b3b044c603b}{}\label{struct_certification_authorities_a759b7e96d51c83032b1b2b3b044c603b} \index{Certification\+Authorities@{Certification\+Authorities}!hash\+\_\+len@{hash\+\_\+len}} \index{hash\+\_\+len@{hash\+\_\+len}!Certification\+Authorities@{Certification\+Authorities}} \subsubsection{\texorpdfstring{hash\+\_\+len}{hash\_len}} {\footnotesize\ttfamily uint8\+\_\+t hash\+\_\+len} -\hypertarget{struct_certification_authorities_a0e534707786c3202ce6e8b7e0e09fcfc}{}\label{struct_certification_authorities_a0e534707786c3202ce6e8b7e0e09fcfc} +\hypertarget{struct_certification_authorities_a0e534707786c3202ce6e8b7e0e09fcfc}{}\label{struct_certification_authorities_a0e534707786c3202ce6e8b7e0e09fcfc} \index{Certification\+Authorities@{Certification\+Authorities}!hash\+\_\+val@{hash\+\_\+val}} \index{hash\+\_\+val@{hash\+\_\+val}!Certification\+Authorities@{Certification\+Authorities}} \subsubsection{\texorpdfstring{hash\+\_\+val}{hash\_val}} {\footnotesize\ttfamily uint8\+\_\+t$\ast$ hash\+\_\+val} -\hypertarget{struct_certification_authorities_acb88a5708b7b7b661cbf957c102af84d}{}\label{struct_certification_authorities_acb88a5708b7b7b661cbf957c102af84d} +\hypertarget{struct_certification_authorities_acb88a5708b7b7b661cbf957c102af84d}{}\label{struct_certification_authorities_acb88a5708b7b7b661cbf957c102af84d} \index{Certification\+Authorities@{Certification\+Authorities}!hashalgoindicator@{hashalgoindicator}} \index{hashalgoindicator@{hashalgoindicator}!Certification\+Authorities@{Certification\+Authorities}} \subsubsection{\texorpdfstring{hashalgoindicator}{hashalgoindicator}} {\footnotesize\ttfamily uint8\+\_\+t hashalgoindicator} -\hypertarget{struct_certification_authorities_a284a4fa5e7ccf25f33e813d99e72e1e0}{}\label{struct_certification_authorities_a284a4fa5e7ccf25f33e813d99e72e1e0} +\hypertarget{struct_certification_authorities_a284a4fa5e7ccf25f33e813d99e72e1e0}{}\label{struct_certification_authorities_a284a4fa5e7ccf25f33e813d99e72e1e0} \index{Certification\+Authorities@{Certification\+Authorities}!modulus\+\_\+len@{modulus\+\_\+len}} \index{modulus\+\_\+len@{modulus\+\_\+len}!Certification\+Authorities@{Certification\+Authorities}} \subsubsection{\texorpdfstring{modulus\+\_\+len}{modulus\_len}} {\footnotesize\ttfamily uint8\+\_\+t modulus\+\_\+len} -\hypertarget{struct_certification_authorities_ababec13341cbe30053f9f6b21de153e9}{}\label{struct_certification_authorities_ababec13341cbe30053f9f6b21de153e9} +\hypertarget{struct_certification_authorities_ababec13341cbe30053f9f6b21de153e9}{}\label{struct_certification_authorities_ababec13341cbe30053f9f6b21de153e9} \index{Certification\+Authorities@{Certification\+Authorities}!modulus\+\_\+val@{modulus\+\_\+val}} \index{modulus\+\_\+val@{modulus\+\_\+val}!Certification\+Authorities@{Certification\+Authorities}} \subsubsection{\texorpdfstring{modulus\+\_\+val}{modulus\_val}} {\footnotesize\ttfamily uint8\+\_\+t$\ast$ modulus\+\_\+val} -\hypertarget{struct_certification_authorities_a3a073291e447e9d7472092cb8d2d2e26}{}\label{struct_certification_authorities_a3a073291e447e9d7472092cb8d2d2e26} +\hypertarget{struct_certification_authorities_a3a073291e447e9d7472092cb8d2d2e26}{}\label{struct_certification_authorities_a3a073291e447e9d7472092cb8d2d2e26} \index{Certification\+Authorities@{Certification\+Authorities}!publickeyalgoindicator@{publickeyalgoindicator}} \index{publickeyalgoindicator@{publickeyalgoindicator}!Certification\+Authorities@{Certification\+Authorities}} \subsubsection{\texorpdfstring{publickeyalgoindicator}{publickeyalgoindicator}} diff --git a/Libraries/FCL/doc/output/latex/struct_m_e_m_s_e_c___h_a_n_d_l_e.tex b/Libraries/FCL/doc/output/latex/struct_m_e_m_s_e_c___h_a_n_d_l_e.tex index 3cd25d3a1cc..73064e561c0 100644 --- a/Libraries/FCL/doc/output/latex/struct_m_e_m_s_e_c___h_a_n_d_l_e.tex +++ b/Libraries/FCL/doc/output/latex/struct_m_e_m_s_e_c___h_a_n_d_l_e.tex @@ -2,23 +2,23 @@ \label{struct_m_e_m_s_e_c___h_a_n_d_l_e}\index{M\+E\+M\+S\+E\+C\+\_\+\+H\+A\+N\+D\+LE@{M\+E\+M\+S\+E\+C\+\_\+\+H\+A\+N\+D\+LE}} \subsection*{Data Fields} \begin{DoxyCompactItemize} -\item -\hypertarget{struct_m_e_m_s_e_c___h_a_n_d_l_e_ac24cea2bfcc927fd29bc74d1086707d8}{}\label{struct_m_e_m_s_e_c___h_a_n_d_l_e_ac24cea2bfcc927fd29bc74d1086707d8} +\item +\hypertarget{struct_m_e_m_s_e_c___h_a_n_d_l_e_ac24cea2bfcc927fd29bc74d1086707d8}{}\label{struct_m_e_m_s_e_c___h_a_n_d_l_e_ac24cea2bfcc927fd29bc74d1086707d8} unsigned char $\ast$ {\bfseries data} -\item -\hypertarget{struct_m_e_m_s_e_c___h_a_n_d_l_e_acdfd526bb392e1ee59a3c6c545891b48}{}\label{struct_m_e_m_s_e_c___h_a_n_d_l_e_acdfd526bb392e1ee59a3c6c545891b48} +\item +\hypertarget{struct_m_e_m_s_e_c___h_a_n_d_l_e_acdfd526bb392e1ee59a3c6c545891b48}{}\label{struct_m_e_m_s_e_c___h_a_n_d_l_e_acdfd526bb392e1ee59a3c6c545891b48} uint32\+\_\+t {\bfseries total\+\_\+size} \end{DoxyCompactItemize} \subsection{Field Documentation} -\hypertarget{struct_m_e_m_s_e_c___h_a_n_d_l_e_ac24cea2bfcc927fd29bc74d1086707d8}{}\label{struct_m_e_m_s_e_c___h_a_n_d_l_e_ac24cea2bfcc927fd29bc74d1086707d8} +\hypertarget{struct_m_e_m_s_e_c___h_a_n_d_l_e_ac24cea2bfcc927fd29bc74d1086707d8}{}\label{struct_m_e_m_s_e_c___h_a_n_d_l_e_ac24cea2bfcc927fd29bc74d1086707d8} \index{M\+E\+M\+S\+E\+C\+\_\+\+H\+A\+N\+D\+LE@{M\+E\+M\+S\+E\+C\+\_\+\+H\+A\+N\+D\+LE}!data@{data}} \index{data@{data}!M\+E\+M\+S\+E\+C\+\_\+\+H\+A\+N\+D\+LE@{M\+E\+M\+S\+E\+C\+\_\+\+H\+A\+N\+D\+LE}} \subsubsection{\texorpdfstring{data}{data}} {\footnotesize\ttfamily unsigned char$\ast$ \hyperlink{structdata}{data}} -\hypertarget{struct_m_e_m_s_e_c___h_a_n_d_l_e_acdfd526bb392e1ee59a3c6c545891b48}{}\label{struct_m_e_m_s_e_c___h_a_n_d_l_e_acdfd526bb392e1ee59a3c6c545891b48} +\hypertarget{struct_m_e_m_s_e_c___h_a_n_d_l_e_acdfd526bb392e1ee59a3c6c545891b48}{}\label{struct_m_e_m_s_e_c___h_a_n_d_l_e_acdfd526bb392e1ee59a3c6c545891b48} \index{M\+E\+M\+S\+E\+C\+\_\+\+H\+A\+N\+D\+LE@{M\+E\+M\+S\+E\+C\+\_\+\+H\+A\+N\+D\+LE}!total\+\_\+size@{total\+\_\+size}} \index{total\+\_\+size@{total\+\_\+size}!M\+E\+M\+S\+E\+C\+\_\+\+H\+A\+N\+D\+LE@{M\+E\+M\+S\+E\+C\+\_\+\+H\+A\+N\+D\+LE}} \subsubsection{\texorpdfstring{total\+\_\+size}{total\_size}} diff --git a/Libraries/FCL/doc/output/latex/struct_t_r_a_c_e__log__display.tex b/Libraries/FCL/doc/output/latex/struct_t_r_a_c_e__log__display.tex index a6e7ff8987f..a21f3c4d3fe 100644 --- a/Libraries/FCL/doc/output/latex/struct_t_r_a_c_e__log__display.tex +++ b/Libraries/FCL/doc/output/latex/struct_t_r_a_c_e__log__display.tex @@ -2,23 +2,23 @@ \label{struct_t_r_a_c_e__log__display}\index{T\+R\+A\+C\+E\+\_\+log\+\_\+display@{T\+R\+A\+C\+E\+\_\+log\+\_\+display}} \subsection*{Data Fields} \begin{DoxyCompactItemize} -\item -\hypertarget{struct_t_r_a_c_e__log__display_a711a6fa02335f49ddd69d7e64c8e74b5}{}\label{struct_t_r_a_c_e__log__display_a711a6fa02335f49ddd69d7e64c8e74b5} +\item +\hypertarget{struct_t_r_a_c_e__log__display_a711a6fa02335f49ddd69d7e64c8e74b5}{}\label{struct_t_r_a_c_e__log__display_a711a6fa02335f49ddd69d7e64c8e74b5} int {\bfseries arg\+\_\+size} -\item -\hypertarget{struct_t_r_a_c_e__log__display_ae352c8d5925ee6d646efff5a13428dbd}{}\label{struct_t_r_a_c_e__log__display_ae352c8d5925ee6d646efff5a13428dbd} +\item +\hypertarget{struct_t_r_a_c_e__log__display_ae352c8d5925ee6d646efff5a13428dbd}{}\label{struct_t_r_a_c_e__log__display_ae352c8d5925ee6d646efff5a13428dbd} \hyperlink{struct__msg__lcd}{msg\+\_\+lcd} {\bfseries trace\+\_\+msgs} \end{DoxyCompactItemize} \subsection{Field Documentation} -\hypertarget{struct_t_r_a_c_e__log__display_a711a6fa02335f49ddd69d7e64c8e74b5}{}\label{struct_t_r_a_c_e__log__display_a711a6fa02335f49ddd69d7e64c8e74b5} +\hypertarget{struct_t_r_a_c_e__log__display_a711a6fa02335f49ddd69d7e64c8e74b5}{}\label{struct_t_r_a_c_e__log__display_a711a6fa02335f49ddd69d7e64c8e74b5} \index{T\+R\+A\+C\+E\+\_\+log\+\_\+display@{T\+R\+A\+C\+E\+\_\+log\+\_\+display}!arg\+\_\+size@{arg\+\_\+size}} \index{arg\+\_\+size@{arg\+\_\+size}!T\+R\+A\+C\+E\+\_\+log\+\_\+display@{T\+R\+A\+C\+E\+\_\+log\+\_\+display}} \subsubsection{\texorpdfstring{arg\+\_\+size}{arg\_size}} {\footnotesize\ttfamily int arg\+\_\+size} -\hypertarget{struct_t_r_a_c_e__log__display_ae352c8d5925ee6d646efff5a13428dbd}{}\label{struct_t_r_a_c_e__log__display_ae352c8d5925ee6d646efff5a13428dbd} +\hypertarget{struct_t_r_a_c_e__log__display_ae352c8d5925ee6d646efff5a13428dbd}{}\label{struct_t_r_a_c_e__log__display_ae352c8d5925ee6d646efff5a13428dbd} \index{T\+R\+A\+C\+E\+\_\+log\+\_\+display@{T\+R\+A\+C\+E\+\_\+log\+\_\+display}!trace\+\_\+msgs@{trace\+\_\+msgs}} \index{trace\+\_\+msgs@{trace\+\_\+msgs}!T\+R\+A\+C\+E\+\_\+log\+\_\+display@{T\+R\+A\+C\+E\+\_\+log\+\_\+display}} \subsubsection{\texorpdfstring{trace\+\_\+msgs}{trace\_msgs}} diff --git a/Libraries/FCL/doc/output/latex/struct_tracehandlers_config.tex b/Libraries/FCL/doc/output/latex/struct_tracehandlers_config.tex index 2cd8886272e..bf13776562e 100644 --- a/Libraries/FCL/doc/output/latex/struct_tracehandlers_config.tex +++ b/Libraries/FCL/doc/output/latex/struct_tracehandlers_config.tex @@ -2,10 +2,10 @@ \label{struct_tracehandlers_config}\index{Tracehandlers\+Config@{Tracehandlers\+Config}} \subsection*{Data Fields} \begin{DoxyCompactItemize} -\item -\hypertarget{struct_tracehandlers_config_a8a207cd3094ad3179b990c1dd4be8417}{}\label{struct_tracehandlers_config_a8a207cd3094ad3179b990c1dd4be8417} +\item +\hypertarget{struct_tracehandlers_config_a8a207cd3094ad3179b990c1dd4be8417}{}\label{struct_tracehandlers_config_a8a207cd3094ad3179b990c1dd4be8417} void($\ast$ {\bfseries System\+Reset} )(void) -\item -\hypertarget{struct_tracehandlers_config_a79e207c44e3900ab7c4140f6bbdf0c19}{}\label{struct_tracehandlers_config_a79e207c44e3900ab7c4140f6bbdf0c19} +\item +\hypertarget{struct_tracehandlers_config_a79e207c44e3900ab7c4140f6bbdf0c19}{}\label{struct_tracehandlers_config_a79e207c44e3900ab7c4140f6bbdf0c19} void($\ast$ {\bfseries T\+R\+A\+C\+E\+\_\+\+Handler} )(int, int) \end{DoxyCompactItemize} diff --git a/Libraries/FCL/doc/output/latex/structdata.tex b/Libraries/FCL/doc/output/latex/structdata.tex index 1a14c13773d..e4168c15cfa 100644 --- a/Libraries/FCL/doc/output/latex/structdata.tex +++ b/Libraries/FCL/doc/output/latex/structdata.tex @@ -2,23 +2,23 @@ \label{structdata}\index{data@{data}} \subsection*{Data Fields} \begin{DoxyCompactItemize} -\item -\hypertarget{structdata_a6f3d37631dba01e26032fe578e2f5d8d}{}\label{structdata_a6f3d37631dba01e26032fe578e2f5d8d} +\item +\hypertarget{structdata_a6f3d37631dba01e26032fe578e2f5d8d}{}\label{structdata_a6f3d37631dba01e26032fe578e2f5d8d} unsigned short {\bfseries data\+\_\+len} -\item -\hypertarget{structdata_a2f4466e4bad9395ffd9a9c03b208d4eb}{}\label{structdata_a2f4466e4bad9395ffd9a9c03b208d4eb} +\item +\hypertarget{structdata_a2f4466e4bad9395ffd9a9c03b208d4eb}{}\label{structdata_a2f4466e4bad9395ffd9a9c03b208d4eb} uint8\+\_\+t $\ast$ {\bfseries data\+\_\+val} \end{DoxyCompactItemize} \subsection{Field Documentation} -\hypertarget{structdata_a6f3d37631dba01e26032fe578e2f5d8d}{}\label{structdata_a6f3d37631dba01e26032fe578e2f5d8d} +\hypertarget{structdata_a6f3d37631dba01e26032fe578e2f5d8d}{}\label{structdata_a6f3d37631dba01e26032fe578e2f5d8d} \index{data@{data}!data\+\_\+len@{data\+\_\+len}} \index{data\+\_\+len@{data\+\_\+len}!data@{data}} \subsubsection{\texorpdfstring{data\+\_\+len}{data\_len}} {\footnotesize\ttfamily unsigned short data\+\_\+len} -\hypertarget{structdata_a2f4466e4bad9395ffd9a9c03b208d4eb}{}\label{structdata_a2f4466e4bad9395ffd9a9c03b208d4eb} +\hypertarget{structdata_a2f4466e4bad9395ffd9a9c03b208d4eb}{}\label{structdata_a2f4466e4bad9395ffd9a9c03b208d4eb} \index{data@{data}!data\+\_\+val@{data\+\_\+val}} \index{data\+\_\+val@{data\+\_\+val}!data@{data}} \subsubsection{\texorpdfstring{data\+\_\+val}{data\_val}} diff --git a/Libraries/FCL/doc/res/doxygen.sty b/Libraries/FCL/doc/res/doxygen.sty index 2510b410984..ee9c38fec43 100644 --- a/Libraries/FCL/doc/res/doxygen.sty +++ b/Libraries/FCL/doc/res/doxygen.sty @@ -273,10 +273,10 @@ \tabulinesep=1mm% \par% \ifthenelse{\equal{#1}{}}% - {\begin{longtabu} spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description + {\begin{longtabu} spread 0pt [l]{|X[-1, l]|X[-1, l]|}}% name + description {\ifthenelse{\equal{#1}{1}}% - {\begin{longtabu} spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc - {\begin{longtabu} spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc + {\begin{longtabu} spread 0pt [l]{|X[-1, l]|X[-1, l]|X[-1, l]|}}% in/out + name + desc + {\begin{longtabu} spread 0pt [l]{|X[-1, l]|X[-1, l]|X[-1, l]|X[-1, l]|}}% in/out + type + name + desc } \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% \hline% @@ -293,7 +293,7 @@ \newenvironment{DoxyFields}[1]{% \tabulinesep=1mm% \par% - \begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}% + \begin{longtabu} spread 0pt [l]{|X[-1, r]|X[-1, l]|X[-1, l]|}% \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% \hline% \endfirsthead% @@ -309,7 +309,7 @@ \newenvironment{DoxyEnumFields}[1]{% \tabulinesep=1mm% \par% - \begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \begin{longtabu} spread 0pt [l]{|X[-1, r]|X[-1, l]|}% \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% \hline% \endfirsthead% @@ -323,7 +323,7 @@ % Used for parameters within a detailed function description \newenvironment{DoxyParamCaption}{% - \renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}% + \renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}% }{% } @@ -331,7 +331,7 @@ \newenvironment{DoxyRetVals}[1]{% \tabulinesep=1mm% \par% - \begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \begin{longtabu} spread 0pt [l]{|X[-1, r]|X[-1, l]|}% \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% \hline% \endfirsthead% @@ -347,7 +347,7 @@ \newenvironment{DoxyExceptions}[1]{% \tabulinesep=1mm% \par% - \begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \begin{longtabu} spread 0pt [l]{|X[-1, r]|X[-1, l]|}% \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% \hline% \endfirsthead% @@ -363,7 +363,7 @@ \newenvironment{DoxyTemplParams}[1]{% \tabulinesep=1mm% \par% - \begin{longtabu} spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \begin{longtabu} spread 0pt [l]{|X[-1, r]|X[-1, l]|}% \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% \hline% \endfirsthead% @@ -459,7 +459,7 @@ % Used when hyperlinks are turned off \newcommand{\doxyref}[3]{% - \textbf{#1} (\textnormal{#2}\,\pageref{#3})% + \textbf{#1} (\textnormal{#2}\, \pageref{#3})% } % Used to link to a table when hyperlinks are turned on @@ -477,17 +477,17 @@ \newcommand{\rcurly}{\}} % Colors used for syntax highlighting -\definecolor{comment}{rgb}{0.5,0.0,0.0} -\definecolor{keyword}{rgb}{0.0,0.5,0.0} -\definecolor{keywordtype}{rgb}{0.38,0.25,0.125} -\definecolor{keywordflow}{rgb}{0.88,0.5,0.0} -\definecolor{preprocessor}{rgb}{0.5,0.38,0.125} -\definecolor{stringliteral}{rgb}{0.0,0.125,0.25} -\definecolor{charliteral}{rgb}{0.0,0.5,0.5} -\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0} -\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43} -\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0} -\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0} +\definecolor{comment}{rgb}{0.5, 0.0, 0.0} +\definecolor{keyword}{rgb}{0.0, 0.5, 0.0} +\definecolor{keywordtype}{rgb}{0.38, 0.25, 0.125} +\definecolor{keywordflow}{rgb}{0.88, 0.5, 0.0} +\definecolor{preprocessor}{rgb}{0.5, 0.38, 0.125} +\definecolor{stringliteral}{rgb}{0.0, 0.125, 0.25} +\definecolor{charliteral}{rgb}{0.0, 0.5, 0.5} +\definecolor{vhdldigit}{rgb}{1.0, 0.0, 1.0} +\definecolor{vhdlkeyword}{rgb}{0.43, 0.0, 0.43} +\definecolor{vhdllogic}{rgb}{1.0, 0.0, 0.0} +\definecolor{vhdlchar}{rgb}{0.0, 0.0, 0.0} % Color used for table heading \newcommand{\tableheadbgcolor}{lightgray}% diff --git a/Libraries/FCL/doc/res/doxygen_old.sty b/Libraries/FCL/doc/res/doxygen_old.sty index b06516389a7..8cebaec9079 100644 --- a/Libraries/FCL/doc/res/doxygen_old.sty +++ b/Libraries/FCL/doc/res/doxygen_old.sty @@ -366,7 +366,7 @@ \end{DoxyDesc}% } -\newcommand{\doxyref}[3]{\textbf{#1} (\textnormal{#2}\,\pageref{#3})} +\newcommand{\doxyref}[3]{\textbf{#1} (\textnormal{#2}\, \pageref{#3})} \newenvironment{DoxyCompactList} {\begin{list}{}{ \setlength{\leftmargin}{0.5cm} @@ -460,14 +460,14 @@ \allsectionsfont{\usefont{OT1}{phv}{bc}{n}\selectfont\color{darkgray}} \stepcounter{secnumdepth} \stepcounter{tocdepth} -\definecolor{comment}{rgb}{0.5,0.0,0.0} -\definecolor{keyword}{rgb}{0.0,0.5,0.0} -\definecolor{keywordtype}{rgb}{0.38,0.25,0.125} -\definecolor{keywordflow}{rgb}{0.88,0.5,0.0} -\definecolor{preprocessor}{rgb}{0.5,0.38,0.125} -\definecolor{stringliteral}{rgb}{0.0,0.125,0.25} -\definecolor{charliteral}{rgb}{0.0,0.5,0.5} -\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0} -\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43} -\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0} -\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0} \ No newline at end of file +\definecolor{comment}{rgb}{0.5, 0.0, 0.0} +\definecolor{keyword}{rgb}{0.0, 0.5, 0.0} +\definecolor{keywordtype}{rgb}{0.38, 0.25, 0.125} +\definecolor{keywordflow}{rgb}{0.88, 0.5, 0.0} +\definecolor{preprocessor}{rgb}{0.5, 0.38, 0.125} +\definecolor{stringliteral}{rgb}{0.0, 0.125, 0.25} +\definecolor{charliteral}{rgb}{0.0, 0.5, 0.5} +\definecolor{vhdldigit}{rgb}{1.0, 0.0, 1.0} +\definecolor{vhdlkeyword}{rgb}{0.43, 0.0, 0.43} +\definecolor{vhdllogic}{rgb}{1.0, 0.0, 0.0} +\definecolor{vhdlchar}{rgb}{0.0, 0.0, 0.0} \ No newline at end of file diff --git a/Libraries/FCL/doc/res/header.tex b/Libraries/FCL/doc/res/header.tex index b6b2ca8bf81..ddb4c80c49d 100644 --- a/Libraries/FCL/doc/res/header.tex +++ b/Libraries/FCL/doc/res/header.tex @@ -43,10 +43,10 @@ % Page & text layout \usepackage{geometry} \geometry{% - a4paper,% - top=2.5cm,% - bottom=2.5cm,% - left=2.5cm,% + a4paper, % + top=2.5cm, % + bottom=2.5cm, % + left=2.5cm, % right=2.5cm% } \tolerance=750 @@ -105,14 +105,14 @@ % Hyperlinks (required, but should be loaded last) \usepackage{ifpdf} \ifpdf - \usepackage[pdftex,pagebackref=true]{hyperref} + \usepackage[pdftex, pagebackref=true]{hyperref} \else - \usepackage[ps2pdf,pagebackref=true]{hyperref} + \usepackage[ps2pdf, pagebackref=true]{hyperref} \fi \hypersetup{% - colorlinks=true,% - linkcolor=blue,% - citecolor=blue,% + colorlinks=true, % + linkcolor=blue, % + citecolor=blue, % unicode% } @@ -122,7 +122,7 @@ } \usepackage{caption} -\captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top} +\captionsetup{labelsep=space, justification=centering, font={bf}, singlelinecheck=off, skip=4pt, position=top} %CUSTOMIZATION % @@ -208,13 +208,13 @@ \section*{Disclaimer} \subsection*{LIFE SUPPORT POLICY} -MAXIM’S PRODUCTS ARE NOT AUTHORIZED FOR USE AS CRITICAL COMPONENTS IN LIFE SUPPORT DEVICES OR SYSTEMS WITHOUT THE EXPRESS PRIOR WRITTEN APPROVAL OF THE PRESIDENT AND GENERAL COUNSEL OF MAXIM INTEGRATED PRODUCTS, INC. +MAXIM’S PRODUCTS ARE NOT AUTHORIZED FOR USE AS CRITICAL COMPONENTS IN LIFE SUPPORT DEVICES OR SYSTEMS WITHOUT THE EXPRESS PRIOR WRITTEN APPROVAL OF THE PRESIDENT AND GENERAL COUNSEL OF MAXIM INTEGRATED PRODUCTS, INC. \subsection*{As used herein} Life support devices or systems are devices which (a) are intended for surgical implant into the body, or (b) support or sustain life and whose failure to perform when properly used in accordance with instructions for use provided in the labeling can be reasonably expected to result in a significant injury to the user. A critical component is any component in a life support device or system whose failure to perform can be reasonably expected to cause the failure of the life support device or system or to affect its safety or effectiveness. \subsection*{Document Disclaimer} -©\docyear by Maxim Integrated, Inc. All rights reserved. Information in this publication concerning the devices, applications, or technology described is intended to suggest possible uses and may be superseded. MAXIM INTEGRATED, INC. DOES NOT ASSUME LIABILITY FOR OR PROVIDE A REPRESENTATION OF ACCURACY OF THE INFORMATION, DEVICES, OR TECHNOLOGY DESCRIBED IN THIS DOCUMENT. MAXIM ALSO DOES NOT ASSUME LIABILITY FOR INTELLECTUAL PROPERTY INFRINGEMENT RELATED IN ANY MANNER TO USE OF INFORMATION, DEVICES, OR TECHNOLOGY DESCRIBED HEREIN OR OTHERWISE. The information contained within this document has been verified according to the general principles of electrical and mechanical engineering or registered trademarks of Maxim Integrated, Inc. All other product or service names are the property of their respective owners. +©\docyear by Maxim Integrated, Inc. All rights reserved. Information in this publication concerning the devices, applications, or technology described is intended to suggest possible uses and may be superseded. MAXIM INTEGRATED, INC. DOES NOT ASSUME LIABILITY FOR OR PROVIDE A REPRESENTATION OF ACCURACY OF THE INFORMATION, DEVICES, OR TECHNOLOGY DESCRIBED IN THIS DOCUMENT. MAXIM ALSO DOES NOT ASSUME LIABILITY FOR INTELLECTUAL PROPERTY INFRINGEMENT RELATED IN ANY MANNER TO USE OF INFORMATION, DEVICES, OR TECHNOLOGY DESCRIBED HEREIN OR OTHERWISE. The information contained within this document has been verified according to the general principles of electrical and mechanical engineering or registered trademarks of Maxim Integrated, Inc. All other product or service names are the property of their respective owners. ARM® and Thumb® are registered trademarks of ARM Limited in the European Union and other countries. All other product or service names are the property of their respective owners. diff --git a/Libraries/FCL/doc/res/layout.xml b/Libraries/FCL/doc/res/layout.xml index 0f5d27505bb..f287f71839d 100644 --- a/Libraries/FCL/doc/res/layout.xml +++ b/Libraries/FCL/doc/res/layout.xml @@ -11,7 +11,7 @@ - + @@ -20,7 +20,7 @@ - + diff --git a/Libraries/FCL/doc/res/main.dox b/Libraries/FCL/doc/res/main.dox index 7926fe0772e..65b276c5fb4 100644 --- a/Libraries/FCL/doc/res/main.dox +++ b/Libraries/FCL/doc/res/main.dox @@ -45,7 +45,7 @@ Confluence SWIP page: https://confluence.maxim-ic.com/pages/viewpage.action?page @section ReleaseNotes Release notes - 1.0.1: p192 initializers size corrected; hash functions number updated - - 1.1.0: sha-3 (sha-224,sha-256,sha-384, sha-512) has been added + - 1.1.0: sha-3 (sha-224, sha-256, sha-384, sha-512) has been added - 1.2.0: secp384r1, secp521r1, bp256r1, bp384r1, bp512r1 curves added; sha384 and sha512 added - - 1.2.1: AES (128,192, 256) in ECB, CBC modes and AES-CBC-MAC added + - 1.2.1: AES (128, 192, 256) in ECB, CBC modes and AES-CBC-MAC added */ diff --git a/Libraries/FCL/fcl.mk b/Libraries/FCL/fcl.mk index 85059ea4c50..07612f03d5c 100644 --- a/Libraries/FCL/fcl.mk +++ b/Libraries/FCL/fcl.mk @@ -47,13 +47,13 @@ # ownership rights. # ############################################################################## - + ifeq "$(FCL_DIR)" "" $(error FCL_DIR must be specified") endif -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +TARGET_UC := $(subst m, M, $(subst a, A, $(subst x, X, $(TARGET)))) +TARGET_LC := $(subst M, m, $(subst A, a, $(subst X, x, $(TARGET)))) # Specify the library variant. ifeq "$(MFLOAT_ABI)" "hardfp" @@ -97,7 +97,7 @@ export FCL_BUILD_DIR LIBS += ${FCL_BUILD_DIR}/${FCL_LIB} # Add rule to build the Driver Library ${FCL_BUILD_DIR}/${FCL_LIB}: ${FCL_C_FILES} ${FCL_H_FILES} - $(MAKE) -f ${FCL_DIR}/libfcl.mk lib BUILD_DIR=${FCL_BUILD_DIR} + $(MAKE) -f ${FCL_DIR}/libfcl.mk lib BUILD_DIR=${FCL_BUILD_DIR} clean.fcl: ############################################################################### @@ -149,4 +149,4 @@ clean.fcl: # ownership rights. # ############################################################################## - @rm -rf ${FCL_BUILD_DIR}/* \ No newline at end of file + @rm -rf ${FCL_BUILD_DIR}/* \ No newline at end of file diff --git a/Libraries/FCL/fcl_files.mk b/Libraries/FCL/fcl_files.mk index 1da5d0a9cd0..e7142eb5e29 100644 --- a/Libraries/FCL/fcl_files.mk +++ b/Libraries/FCL/fcl_files.mk @@ -54,8 +54,8 @@ ifeq "$(TARGET)" "" $(error TARGET must be specified) endif -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +TARGET_UC := $(subst m, M, $(subst a, A, $(subst x, X, $(TARGET)))) +TARGET_LC := $(subst M, m, $(subst A, a, $(subst X, x, $(TARGET)))) ifeq "$(COMPILER)" "" $(error COMPILER must be specified) endif @@ -130,4 +130,4 @@ FCL_C_FILES += $(sort $(wildcard $(FCL_DIR)/src/*.c)) # ownership rights. # ############################################################################## -FCL_H_FILES += $(wildcard $(addsuffix /*.h,$(FCL_INCLUDE_DIR))) +FCL_H_FILES += $(wildcard $(addsuffix /*.h, $(FCL_INCLUDE_DIR))) diff --git a/Libraries/FCL/include/hash/sha256.h b/Libraries/FCL/include/hash/sha256.h index 5ec6cd28f49..b826003883b 100644 --- a/Libraries/FCL/include/hash/sha256.h +++ b/Libraries/FCL/include/hash/sha256.h @@ -1,14 +1,29 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + * + * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -32,15 +47,16 @@ * ownership rights. * ******************************************************************************/ -#ifndef __UCL_SHA256_H_ -#define __UCL_SHA256_H_ + +#ifndef LIBRARIES_FCL_INCLUDE_HASH_SHA256_H_ +#define LIBRARIES_FCL_INCLUDE_HASH_SHA256_H_ #include /** The main loop of sha256. * - * @param[in,out] hash The intermediate hash, u32[8] - * @param[in] stone A "Stone" of the padded message,u32[16] + * @param[in, out] hash The intermediate hash, u32[8] + * @param[in] stone A "Stone" of the padded message, u32[16] * * @ingroup UCL_SHA256 * @internal @@ -48,4 +64,4 @@ void sha256_stone(u32 hash[8], u32 stone[16]); -#endif /* __UCL_SHA256_H_ */ +#endif // LIBRARIES_FCL_INCLUDE_HASH_SHA256_H_ diff --git a/Libraries/FCL/include/ucl/bignum_ecdsa_generic_api.h b/Libraries/FCL/include/ucl/bignum_ecdsa_generic_api.h index 2c88bf3df21..26d626a65c0 100644 --- a/Libraries/FCL/include/ucl/bignum_ecdsa_generic_api.h +++ b/Libraries/FCL/include/ucl/bignum_ecdsa_generic_api.h @@ -1,14 +1,29 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + * + * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -32,6 +47,10 @@ * ownership rights. * ******************************************************************************/ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_BIGNUM_ECDSA_GENERIC_API_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_BIGNUM_ECDSA_GENERIC_API_H_ + #include "ucl/ucl_config.h" #include "ucl/ucl_types.h" @@ -44,37 +63,38 @@ /* Length of digit in bytes */ #define DIGIT_LEN (DIGIT_BITS / 8) -void bignum_modsquare(u32 *r,u32 *a,u32 *m,u32 k); -int bignum_modmult(u32 *r,u32 *a,u32 *b,u32 *m,u32 k); -void bignum_d2us(u8 *a,u32 len,u32 *b,u32 digits); -void bignum_us2d(u32 *a,u32 digits,u8 *b,u32 len); -int bignum_cmp(u32 *a,u32 *b,u32 s); -int bignum_cmp_zero(u32 *a,int s); -int bignum_isnul(u32 *A,u32 tA); -u32 bignum_digits(u32 *N,u32 tn); +void bignum_modsquare(u32 *r, u32 *a, u32 *m, u32 k); +int bignum_modmult(u32 *r, u32 *a, u32 *b, u32 *m, u32 k); +void bignum_d2us(u8 *a, u32 len, u32 *b, u32 digits); +void bignum_us2d(u32 *a, u32 digits, u8 *b, u32 len); +int bignum_cmp(u32 *a, u32 *b, u32 s); +int bignum_cmp_zero(u32 *a, int s); +int bignum_isnul(u32 *A, u32 tA); +u32 bignum_digits(u32 *N, u32 tn); u32 bignum_digitbits(u32 a); -void bignum_copydigit(u32 *E,u32 F,u32 tE); -void bignum_copyzero(u32 *E,u32 tE); -void bignum_copy(u32 *E,u32 *F,u32 tE); +void bignum_copydigit(u32 *E, u32 F, u32 tE); +void bignum_copyzero(u32 *E, u32 tE); +void bignum_copy(u32 *E, u32 *F, u32 tE); -u32 bignum_add(u32 *w,u32 *x,u32 *y,u32 digits); -u32 bignum_sub(u32 *w,u32 *x,u32 *y,u32 digits); -void bignum_mult(u32 *t,u32 *a,u32 *b,u32 n); -void bignum_mult_operand_scanning_form(u32 *t,u32 *a,u32 *b,u32 n); -void bignum_multopt(u32 *t,u32 *a,u32 *b,u32 n); -void bignum_multlimited(u32 *t,u32 *a,u32 *b,u32 n); -void bignum_multscalar(u32 *t,u32 a,u32 *b,u32 n); -void bignum_mult2sizes(u32 *t,u32 *a,u32 na,u32 *b,u32 nb); -void bignum_square(u32 *a,u32 *b,u32 digits); -u32 bignum_leftshift(u32 *a,u32 *b,u32 c,u32 digits); -u32 bignum_rightshift(u32 *a,u32 *b,u32 c,u32 digits); +u32 bignum_add(u32 *w, u32 *x, u32 *y, u32 digits); +u32 bignum_sub(u32 *w, u32 *x, u32 *y, u32 digits); +void bignum_mult(u32 *t, u32 *a, u32 *b, u32 n); +void bignum_mult_operand_scanning_form(u32 *t, u32 *a, u32 *b, u32 n); +void bignum_multopt(u32 *t, u32 *a, u32 *b, u32 n); +void bignum_multlimited(u32 *t, u32 *a, u32 *b, u32 n); +void bignum_multscalar(u32 *t, u32 a, u32 *b, u32 n); +void bignum_mult2sizes(u32 *t, u32 *a, u32 na, u32 *b, u32 nb); +void bignum_square(u32 *a, u32 *b, u32 digits); +u32 bignum_leftshift(u32 *a, u32 *b, u32 c, u32 digits); +u32 bignum_rightshift(u32 *a, u32 *b, u32 c, u32 digits); -void bignum_modinv(u32 *x,u32 *a0,u32 *b0,u32 digits); -void bignum_modinv_subs(u32 *x,u32 *a0,u32 *b0,u32 digits); -void bignum_modinv3(u32 *x,u32 *a0,u32 *b0,u32 digits); -void bignum_modinv4(u32 *x,u32 *a0,u32 *b0,u32 digits); -void bignum_modadd(u32 *r,u32 *a,u32 *b,u32 *m,u32 k); -void bignum_modexp(u32 *r,u32 *a,u32 *b,u32 *m,u32 k); -void bignum_mod(u32 *b,u32 *c,u32 cDigits,u32 *d,u32 dDigits); -void bignum_div(u32 *rmd,u32 *b,u32 *c,u32 cDigits,u32 *d,u32 dDigits); +void bignum_modinv(u32 *x, u32 *a0, u32 *b0, u32 digits); +void bignum_modinv_subs(u32 *x, u32 *a0, u32 *b0, u32 digits); +void bignum_modinv3(u32 *x, u32 *a0, u32 *b0, u32 digits); +void bignum_modinv4(u32 *x, u32 *a0, u32 *b0, u32 digits); +void bignum_modadd(u32 *r, u32 *a, u32 *b, u32 *m, u32 k); +void bignum_modexp(u32 *r, u32 *a, u32 *b, u32 *m, u32 k); +void bignum_mod(u32 *b, u32 *c, u32 cDigits, u32 *d, u32 dDigits); +void bignum_div(u32 *rmd, u32 *b, u32 *c, u32 cDigits, u32 *d, u32 dDigits); +#endif // LIBRARIES_FCL_INCLUDE_UCL_BIGNUM_ECDSA_GENERIC_API_H_ diff --git a/Libraries/FCL/include/ucl/defs.h b/Libraries/FCL/include/ucl/defs.h index a0b35a52d38..491431ed47b 100644 --- a/Libraries/FCL/include/ucl/defs.h +++ b/Libraries/FCL/include/ucl/defs.h @@ -1,14 +1,29 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + * + * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -32,8 +47,9 @@ * ownership rights. * ******************************************************************************/ -#ifndef _DEFS_H_ -#define _DEFS_H_ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_DEFS_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_DEFS_H_ #include "ucl/ucl_config.h" #include "ucl/ucl_types.h" @@ -55,4 +71,4 @@ #define __nomips16__ #endif -#endif /* _DEFS_H_ */ +#endif // LIBRARIES_FCL_INCLUDE_UCL_DEFS_H_ diff --git a/Libraries/FCL/include/ucl/ecdsa_generic_api.h b/Libraries/FCL/include/ucl/ecdsa_generic_api.h index 9cab03f79c7..3eaee1a9aea 100644 --- a/Libraries/FCL/include/ucl/ecdsa_generic_api.h +++ b/Libraries/FCL/include/ucl/ecdsa_generic_api.h @@ -1,14 +1,29 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + * + * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -32,6 +47,7 @@ * ownership rights. * ******************************************************************************/ + /** @file ecdsa_generic_api.h * @defgroup UCL_ECDSA ECDSA * ECDSA, from FIPS 186-4. @@ -44,8 +60,8 @@ */ /** @brief ECDSA signatures computation and verification -* -* Long description of the module. This module is in charge of .... +* +* Long description of the module. This module is in charge of .... * * Elliptic curves have been studied by mathematicians for more than a century. * A rich theory have been developed around them, and cryptography have taken * the advantage to find a way to use it in practice. @@ -69,18 +85,19 @@ * admissible change of variable transforms the equation to :@n * @f$ E ~:~ y^{2} + x.y ~=~x^3+ a.x^2 + b @f$ @n * @n - * A point of the curve is a couple @f$ (x,y) @f$ verifying the equation @a E. @n + * A point of the curve is a couple @f$ (x, y) @f$ verifying the equation @a E. @n * @n * It exists an addition on @a E such as @a E is a group. - * If @a P is point of @a E, then we note @f$ Q = k.P @f$ the result of @p k + * If @a P is point of @a E, then we note @f$ Q = k.P @f$ the result of @p k * successive additions. @n - * The discrete logarithm problem is the problem which consists to find @p k + * The discrete logarithm problem is the problem which consists to find @p k * from @p Q and @p P. * ECDSA is the implementation of the DSA in ECC -*/ +*/ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_ECDSA_GENERIC_API_NEW_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_ECDSA_GENERIC_API_NEW_H_ -#ifndef _UCL_ECDSA_GENERIC_API_NEW_H_ -#define _UCL_ECDSA_GENERIC_API_NEW_H_ #include "ucl/ucl_config.h" #include "ucl/ucl_types.h" #include "ucl/bignum_ecdsa_generic_api.h" @@ -143,10 +160,10 @@ #define BP384 #define BP512 -static const u32 one[ECDSA_DIGITS]={0x00000001,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}; -static const u32 two[ECDSA_DIGITS]={0x00000002,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}; -static const u32 three[ECDSA_DIGITS]={0x00000003,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}; -static const u32 four[ECDSA_DIGITS]={0x00000004,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}; +static const u32 one[ECDSA_DIGITS]={0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}; +static const u32 two[ECDSA_DIGITS]={0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}; +static const u32 three[ECDSA_DIGITS]={0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}; +static const u32 four[ECDSA_DIGITS]={0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}; /** ECC Curve Structure. @@ -214,13 +231,13 @@ typedef struct _t_ecdsa_signature } ucl_type_ecdsa_signature; #ifdef P192 - static const u32 local_inv2_p192r1[SECP192R1_WORDSIZE]={0x00000000,0x80000000,0xffffffff,0xffffffff,0xffffffff,0x7fffffff,0x00000000,0x00000000}; - static const u32 local_xg_p192r1[SECP192R1_WORDSIZE]={0x82ff1012,0xf4ff0afd,0x43a18800,0x7cbf20eb,0xb03090f6,0x188da80e,0x00000000,0x00000000}; - static const u32 local_yg_p192r1[SECP192R1_WORDSIZE]={0x1e794811,0x73f977a1,0x6b24cdd5,0x631011ed,0xffc8da78,0x07192b95,0x00000000,0x00000000}; - static const u32 local_a_p192r1[SECP192R1_WORDSIZE]={0xfffffffc,0xffffffff,0xfffffffe,0xffffffff,0xffffffff,0xffffffff,0x00000000,0x00000000}; -static const u32 local_b_p192r1[SECP192R1_WORDSIZE]={0xc146b9b1,0xfeb8deec,0x72243049,0x0fa7e9ab,0xe59c80e7,0x64210519,0x00000000,0x00000000}; - static const u32 local_p_p192r1[SECP192R1_WORDSIZE]={0xffffffff,0xffffffff,0xfffffffe,0xffffffff,0xffffffff,0xffffffff,0x00000000,0x00000000}; - static const u32 local_n_p192r1[SECP192R1_WORDSIZE]={0xb4d22831,0x146bc9b1,0x99def836,0xffffffff,0xffffffff,0xffffffff,0x00000000,0x00000000}; + static const u32 local_inv2_p192r1[SECP192R1_WORDSIZE]={0x00000000, 0x80000000, 0xffffffff, 0xffffffff, 0xffffffff, 0x7fffffff, 0x00000000, 0x00000000}; + static const u32 local_xg_p192r1[SECP192R1_WORDSIZE]={0x82ff1012, 0xf4ff0afd, 0x43a18800, 0x7cbf20eb, 0xb03090f6, 0x188da80e, 0x00000000, 0x00000000}; + static const u32 local_yg_p192r1[SECP192R1_WORDSIZE]={0x1e794811, 0x73f977a1, 0x6b24cdd5, 0x631011ed, 0xffc8da78, 0x07192b95, 0x00000000, 0x00000000}; + static const u32 local_a_p192r1[SECP192R1_WORDSIZE]={0xfffffffc, 0xffffffff, 0xfffffffe, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000}; +static const u32 local_b_p192r1[SECP192R1_WORDSIZE]={0xc146b9b1, 0xfeb8deec, 0x72243049, 0x0fa7e9ab, 0xe59c80e7, 0x64210519, 0x00000000, 0x00000000}; + static const u32 local_p_p192r1[SECP192R1_WORDSIZE]={0xffffffff, 0xffffffff, 0xfffffffe, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000}; + static const u32 local_n_p192r1[SECP192R1_WORDSIZE]={0xb4d22831, 0x146bc9b1, 0x99def836, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000}; /** ECC Curve structure variable for SEC-P192r1. * * @ingroup UCL_ECDSA @@ -229,13 +246,13 @@ extern ucl_type_curve secp192r1; #endif//P192 #ifdef P256 - static const u32 local_inv2_p256r1[SECP256R1_WORDSIZE]={0x00000000,0x00000000,0x80000000,0x00000000,0x00000000,0x80000000,0x80000000,0x7fffffff}; - static const u32 local_xg_p256r1[SECP256R1_WORDSIZE]={0xd898c296,0xf4a13945,0x2deb33a0,0x77037d81,0x63a440f2,0xf8bce6e5,0xe12c4247,0x6b17d1f2}; - static const u32 local_yg_p256r1[SECP256R1_WORDSIZE]={0x37bf51f5,0xcbb64068,0x6b315ece,0x2bce3357,0x7c0f9e16,0x8ee7eb4a,0xfe1a7f9b,0x4fe342e2}; - static const u32 local_a_p256r1[SECP256R1_WORDSIZE]={0xfffffffc,0xffffffff,0xffffffff,0x00000000,0x00000000,0x00000000,0x00000001,0xffffffff}; -static const u32 local_b_p256r1[SECP256R1_WORDSIZE]={0x27d2604b,0x3bce3c3e,0xcc53b0f6,0x651d06b0,0x769886bc,0xb3ebbd55,0xaa3a93e7,0x5ac635d8}; - static const u32 local_p_p256r1[SECP256R1_WORDSIZE]={0xffffffff,0xffffffff,0xffffffff,0x00000000,0x00000000,0x00000000,0x00000001,0xffffffff}; - static const u32 local_n_p256r1[SECP256R1_WORDSIZE]={0xfc632551,0xf3b9cac2,0xa7179e84,0xbce6faad,0xffffffff,0xffffffff,0x00000000,0xffffffff}; + static const u32 local_inv2_p256r1[SECP256R1_WORDSIZE]={0x00000000, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x80000000, 0x80000000, 0x7fffffff}; + static const u32 local_xg_p256r1[SECP256R1_WORDSIZE]={0xd898c296, 0xf4a13945, 0x2deb33a0, 0x77037d81, 0x63a440f2, 0xf8bce6e5, 0xe12c4247, 0x6b17d1f2}; + static const u32 local_yg_p256r1[SECP256R1_WORDSIZE]={0x37bf51f5, 0xcbb64068, 0x6b315ece, 0x2bce3357, 0x7c0f9e16, 0x8ee7eb4a, 0xfe1a7f9b, 0x4fe342e2}; + static const u32 local_a_p256r1[SECP256R1_WORDSIZE]={0xfffffffc, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0xffffffff}; +static const u32 local_b_p256r1[SECP256R1_WORDSIZE]={0x27d2604b, 0x3bce3c3e, 0xcc53b0f6, 0x651d06b0, 0x769886bc, 0xb3ebbd55, 0xaa3a93e7, 0x5ac635d8}; + static const u32 local_p_p256r1[SECP256R1_WORDSIZE]={0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0xffffffff}; + static const u32 local_n_p256r1[SECP256R1_WORDSIZE]={0xfc632551, 0xf3b9cac2, 0xa7179e84, 0xbce6faad, 0xffffffff, 0xffffffff, 0x00000000, 0xffffffff}; /** ECC Curve structure variable for SEC-P256r1. * * @ingroup UCL_ECDSA @@ -245,13 +262,13 @@ extern ucl_type_curve secp256r1; #ifdef BP256 - static const u32 local_inv2_bp256r1[BP256R1_WORDSIZE]={0x8fb729bc,0x1009a40e,0xea931014,0x371dfb11,0x4ec1c6b9,0x1f330548,0xd0f754de,0x54fdabed}; - static const u32 local_xg_bp256r1[BP256R1_WORDSIZE]={0x9ace3262,0x3a4453bd,0xe3bd23c2,0xb9de27e1,0xfc81b7af,0x2c4b482f,0xcb7e57cb,0x8bd2aeb9}; - static const u32 local_yg_bp256r1[BP256R1_WORDSIZE]={0x2f046997,0x5c1d54c7,0x2ded8e54,0xc2774513,0x14611dc9,0x97f8461a,0xc3dac4fd,0x547ef835}; - static const u32 local_a_bp256r1[BP256R1_WORDSIZE]={0xf330b5d9,0xe94a4b44,0x26dc5c6c,0xfb8055c1,0x417affe7,0xeef67530,0xfc2c3057,0x7d5a0975}; -static const u32 local_b_bp256r1[BP256R1_WORDSIZE]={0xff8c07b6,0x6bccdc18,0x5cf7e1ce,0x95841629,0xbbd77cbf,0xf330b5d9,0xe94a4b44,0x26dc5c6c}; - static const u32 local_p_bp256r1[BP256R1_WORDSIZE]={0x1f6e5377,0x2013481d,0xd5262028,0x6e3bf623,0x9d838d72,0x3e660a90,0xa1eea9bc,0xa9fb57db}; - static const u32 local_n_bp256r1[BP256R1_WORDSIZE]={0x974856a7,0x901e0e82,0xb561a6f7,0x8c397aa3,0x9d838d71,0x3e660a90,0xa1eea9bc,0xa9fb57db}; + static const u32 local_inv2_bp256r1[BP256R1_WORDSIZE]={0x8fb729bc, 0x1009a40e, 0xea931014, 0x371dfb11, 0x4ec1c6b9, 0x1f330548, 0xd0f754de, 0x54fdabed}; + static const u32 local_xg_bp256r1[BP256R1_WORDSIZE]={0x9ace3262, 0x3a4453bd, 0xe3bd23c2, 0xb9de27e1, 0xfc81b7af, 0x2c4b482f, 0xcb7e57cb, 0x8bd2aeb9}; + static const u32 local_yg_bp256r1[BP256R1_WORDSIZE]={0x2f046997, 0x5c1d54c7, 0x2ded8e54, 0xc2774513, 0x14611dc9, 0x97f8461a, 0xc3dac4fd, 0x547ef835}; + static const u32 local_a_bp256r1[BP256R1_WORDSIZE]={0xf330b5d9, 0xe94a4b44, 0x26dc5c6c, 0xfb8055c1, 0x417affe7, 0xeef67530, 0xfc2c3057, 0x7d5a0975}; +static const u32 local_b_bp256r1[BP256R1_WORDSIZE]={0xff8c07b6, 0x6bccdc18, 0x5cf7e1ce, 0x95841629, 0xbbd77cbf, 0xf330b5d9, 0xe94a4b44, 0x26dc5c6c}; + static const u32 local_p_bp256r1[BP256R1_WORDSIZE]={0x1f6e5377, 0x2013481d, 0xd5262028, 0x6e3bf623, 0x9d838d72, 0x3e660a90, 0xa1eea9bc, 0xa9fb57db}; + static const u32 local_n_bp256r1[BP256R1_WORDSIZE]={0x974856a7, 0x901e0e82, 0xb561a6f7, 0x8c397aa3, 0x9d838d71, 0x3e660a90, 0xa1eea9bc, 0xa9fb57db}; /** ECC Curve structure variable for Brainpool P256r1. * @@ -261,13 +278,13 @@ extern ucl_type_curve bp256r1; #endif//BP256 #ifdef BP384 - static const u32 local_inv2_bp384r1[BP384R1_WORDSIZE]={0x9883f62a,0xc3a38009,0xc80e8d38,0xd669d394,0xbfdb8891,0x0958ed0c,0xf6aa2b5a,0x8a97b884,0x287320ef,0x07aeb7bf,0x519c3694,0x465c8f41}; - static const u32 local_xg_bp384r1[BP384R1_WORDSIZE]={0x47d4af1e,0xef87b2e2,0x36d646aa,0xe826e034,0x0cbd10e8,0xdb7fcafe,0x7ef14fe3,0x8847a3e7,0xb7c13f6b,0xa2a63a81,0x68cf45ff,0x1d1c64f0}; - static const u32 local_yg_bp384r1[BP384R1_WORDSIZE]={0x263c5315,0x42820341,0x77918111,0x0e464621,0xf9912928,0xe19c054f,0xfeec5864,0x62b70b29,0x95cfd552,0x5cb1eb8e,0x20f9c2a4,0x8abe1d75}; - static const u32 local_a_bp384r1[BP384R1_WORDSIZE]={0x22ce2826,0x04a8c7dd,0x503ad4eb,0x8aa5814a,0xba91f90f,0x139165ef,0x4fb22787,0xc2bea28e,0xce05afa0,0x3c72080a,0x3d8c150c,0x7bc382c6}; -static const u32 local_b_bp384r1[BP384R1_WORDSIZE]={0xfa504c11,0x3ab78696,0x95dbc994,0x7cb43902,0x3eeb62d5,0x2e880ea5,0x07dcd2a6,0x2fb77de1,0x16f0447c,0x8b39b554,0x22ce2826,0x04a8c7dd}; -static const u32 local_p_bp384r1[BP384R1_WORDSIZE]={0x3107ec53,0x87470013,0x901d1a71,0xacd3a729,0x7fb71123,0x12b1da19,0xed5456b4,0x152f7109,0x50e641df,0x0f5d6f7e,0xa3386d28,0x8cb91e82}; - static const u32 local_n_bp384r1[BP384R1_WORDSIZE]={0xe9046565,0x3b883202,0x6b7fc310,0xcf3ab6af,0xac0425a7,0x1f166e6c,0xed5456b3,0x152f7109,0x50e641df,0x0f5d6f7e,0xa3386d28,0x8cb91e82}; + static const u32 local_inv2_bp384r1[BP384R1_WORDSIZE]={0x9883f62a, 0xc3a38009, 0xc80e8d38, 0xd669d394, 0xbfdb8891, 0x0958ed0c, 0xf6aa2b5a, 0x8a97b884, 0x287320ef, 0x07aeb7bf, 0x519c3694, 0x465c8f41}; + static const u32 local_xg_bp384r1[BP384R1_WORDSIZE]={0x47d4af1e, 0xef87b2e2, 0x36d646aa, 0xe826e034, 0x0cbd10e8, 0xdb7fcafe, 0x7ef14fe3, 0x8847a3e7, 0xb7c13f6b, 0xa2a63a81, 0x68cf45ff, 0x1d1c64f0}; + static const u32 local_yg_bp384r1[BP384R1_WORDSIZE]={0x263c5315, 0x42820341, 0x77918111, 0x0e464621, 0xf9912928, 0xe19c054f, 0xfeec5864, 0x62b70b29, 0x95cfd552, 0x5cb1eb8e, 0x20f9c2a4, 0x8abe1d75}; + static const u32 local_a_bp384r1[BP384R1_WORDSIZE]={0x22ce2826, 0x04a8c7dd, 0x503ad4eb, 0x8aa5814a, 0xba91f90f, 0x139165ef, 0x4fb22787, 0xc2bea28e, 0xce05afa0, 0x3c72080a, 0x3d8c150c, 0x7bc382c6}; +static const u32 local_b_bp384r1[BP384R1_WORDSIZE]={0xfa504c11, 0x3ab78696, 0x95dbc994, 0x7cb43902, 0x3eeb62d5, 0x2e880ea5, 0x07dcd2a6, 0x2fb77de1, 0x16f0447c, 0x8b39b554, 0x22ce2826, 0x04a8c7dd}; +static const u32 local_p_bp384r1[BP384R1_WORDSIZE]={0x3107ec53, 0x87470013, 0x901d1a71, 0xacd3a729, 0x7fb71123, 0x12b1da19, 0xed5456b4, 0x152f7109, 0x50e641df, 0x0f5d6f7e, 0xa3386d28, 0x8cb91e82}; + static const u32 local_n_bp384r1[BP384R1_WORDSIZE]={0xe9046565, 0x3b883202, 0x6b7fc310, 0xcf3ab6af, 0xac0425a7, 0x1f166e6c, 0xed5456b3, 0x152f7109, 0x50e641df, 0x0f5d6f7e, 0xa3386d28, 0x8cb91e82}; /** ECC Curve structure variable for Brainpool P384r1. * * @ingroup UCL_ECDSA @@ -276,13 +293,13 @@ extern ucl_type_curve bp384r1; #endif #ifdef P384 -static const u32 local_inv2_p384r1[SECP384R1_WORDSIZE]={0x80000000,0x00000000,0x80000000,0x7fffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x7fffffff}; -static const u32 local_xg_p384r1[SECP384R1_WORDSIZE]={0x72760ab7,0x3a545e38,0xbf55296c,0x5502f25d,0x82542a38,0x59f741e0,0x8ba79b98,0x6e1d3b62,0xf320ad74,0x8eb1c71e,0xbe8b0537,0xaa87ca22}; -static const u32 local_yg_p384r1[SECP384R1_WORDSIZE]={0x90ea0e5f,0x7a431d7c,0x1d7e819d,0x0a60b1ce,0xb5f0b8c0,0xe9da3113,0x289a147c,0xf8f41dbd,0x9292dc29,0x5d9e98bf,0x96262c6f,0x3617de4a}; - static const u32 local_a_p384r1[SECP384R1_WORDSIZE]={0xfffffffc,0x00000000,0x00000000,0xffffffff,0xfffffffe,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff}; - static const u32 local_b_p384r1[SECP384R1_WORDSIZE]={0xd3ec2aef,0x2a85c8ed,0x8a2ed19d,0xc656398d,0x5013875a,0x0314088f,0xfe814112,0x181d9c6e,0xe3f82d19,0x988e056b,0xe23ee7e4,0xb3312fa7}; - static const u32 local_p_p384r1[SECP384R1_WORDSIZE]={0xffffffff,0x00000000,0x00000000,0xffffffff,0xfffffffe,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff}; - static const u32 local_n_p384r1[SECP384R1_WORDSIZE]={0xccc52973,0xecec196a,0x48b0a77a,0x581a0db2,0xf4372ddf,0xc7634d81,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff}; +static const u32 local_inv2_p384r1[SECP384R1_WORDSIZE]={0x80000000, 0x00000000, 0x80000000, 0x7fffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x7fffffff}; +static const u32 local_xg_p384r1[SECP384R1_WORDSIZE]={0x72760ab7, 0x3a545e38, 0xbf55296c, 0x5502f25d, 0x82542a38, 0x59f741e0, 0x8ba79b98, 0x6e1d3b62, 0xf320ad74, 0x8eb1c71e, 0xbe8b0537, 0xaa87ca22}; +static const u32 local_yg_p384r1[SECP384R1_WORDSIZE]={0x90ea0e5f, 0x7a431d7c, 0x1d7e819d, 0x0a60b1ce, 0xb5f0b8c0, 0xe9da3113, 0x289a147c, 0xf8f41dbd, 0x9292dc29, 0x5d9e98bf, 0x96262c6f, 0x3617de4a}; + static const u32 local_a_p384r1[SECP384R1_WORDSIZE]={0xfffffffc, 0x00000000, 0x00000000, 0xffffffff, 0xfffffffe, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}; + static const u32 local_b_p384r1[SECP384R1_WORDSIZE]={0xd3ec2aef, 0x2a85c8ed, 0x8a2ed19d, 0xc656398d, 0x5013875a, 0x0314088f, 0xfe814112, 0x181d9c6e, 0xe3f82d19, 0x988e056b, 0xe23ee7e4, 0xb3312fa7}; + static const u32 local_p_p384r1[SECP384R1_WORDSIZE]={0xffffffff, 0x00000000, 0x00000000, 0xffffffff, 0xfffffffe, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}; + static const u32 local_n_p384r1[SECP384R1_WORDSIZE]={0xccc52973, 0xecec196a, 0x48b0a77a, 0x581a0db2, 0xf4372ddf, 0xc7634d81, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}; /** ECC Curve structure variable for SEC-P384r1. * @@ -292,13 +309,13 @@ extern ucl_type_curve secp384r1; #endif//P384 #ifdef P521 - static const u32 local_inv2_p521r1[SECP521R1_WORDSIZE]={0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000100}; - static const u32 local_xg_p521r1[SECP521R1_WORDSIZE]={0xc2e5bd66,0xf97e7e31,0x856a429b,0x3348b3c1,0xa2ffa8de,0xfe1dc127,0xefe75928,0xa14b5e77,0x6b4d3dba,0xf828af60,0x053fb521,0x9c648139,0x2395b442,0x9e3ecb66,0x0404e9cd,0x858e06b7,0x000000c6}; - static const u32 local_yg_p521r1[SECP521R1_WORDSIZE]={0x9fd16650,0x88be9476,0xa272c240,0x353c7086,0x3fad0761,0xc550b901,0x5ef42640,0x97ee7299,0x273e662c,0x17afbd17,0x579b4468,0x98f54449,0x2c7d1bd9,0x5c8a5fb4,0x9a3bc004,0x39296a78,0x00000118}; - static const u32 local_a_p521r1[SECP521R1_WORDSIZE]={0xfffffffc,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x000001ff}; -static const u32 local_b_p521r1[SECP521R1_WORDSIZE]={0x6b503f00,0xef451fd4,0x3d2c34f1,0x3573df88,0x3bb1bf07,0x1652c0bd,0xec7e937b,0x56193951,0x8ef109e1,0xb8b48991,0x99b315f3,0xa2da725b,0xb68540ee,0x929a21a0,0x8e1c9a1f,0x953eb961,0x00000051}; - static const u32 local_p_p521r1[SECP521R1_WORDSIZE]={0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x000001ff}; - static const u32 local_n_p521r1[SECP521R1_WORDSIZE]={0x91386409,0xbb6fb71e,0x899c47ae,0x3bb5c9b8,0xf709a5d0,0x7fcc0148,0xbf2f966b,0x51868783,0xfffffffa,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x000001ff}; + static const u32 local_inv2_p521r1[SECP521R1_WORDSIZE]={0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100}; + static const u32 local_xg_p521r1[SECP521R1_WORDSIZE]={0xc2e5bd66, 0xf97e7e31, 0x856a429b, 0x3348b3c1, 0xa2ffa8de, 0xfe1dc127, 0xefe75928, 0xa14b5e77, 0x6b4d3dba, 0xf828af60, 0x053fb521, 0x9c648139, 0x2395b442, 0x9e3ecb66, 0x0404e9cd, 0x858e06b7, 0x000000c6}; + static const u32 local_yg_p521r1[SECP521R1_WORDSIZE]={0x9fd16650, 0x88be9476, 0xa272c240, 0x353c7086, 0x3fad0761, 0xc550b901, 0x5ef42640, 0x97ee7299, 0x273e662c, 0x17afbd17, 0x579b4468, 0x98f54449, 0x2c7d1bd9, 0x5c8a5fb4, 0x9a3bc004, 0x39296a78, 0x00000118}; + static const u32 local_a_p521r1[SECP521R1_WORDSIZE]={0xfffffffc, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x000001ff}; +static const u32 local_b_p521r1[SECP521R1_WORDSIZE]={0x6b503f00, 0xef451fd4, 0x3d2c34f1, 0x3573df88, 0x3bb1bf07, 0x1652c0bd, 0xec7e937b, 0x56193951, 0x8ef109e1, 0xb8b48991, 0x99b315f3, 0xa2da725b, 0xb68540ee, 0x929a21a0, 0x8e1c9a1f, 0x953eb961, 0x00000051}; + static const u32 local_p_p521r1[SECP521R1_WORDSIZE]={0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x000001ff}; + static const u32 local_n_p521r1[SECP521R1_WORDSIZE]={0x91386409, 0xbb6fb71e, 0x899c47ae, 0x3bb5c9b8, 0xf709a5d0, 0x7fcc0148, 0xbf2f966b, 0x51868783, 0xfffffffa, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x000001ff}; /** ECC Curve structure variable for SEC-P521r1. * @@ -308,13 +325,13 @@ extern ucl_type_curve secp521r1; #endif//P521 #ifdef BP512 - static const u32 local_inv2_bp512r1[BP512R1_WORDSIZE]={0x2c1d247a,0x9455302b,0x96c16342,0x1440ff97,0x7351c073,0x5766d095,0x4de33421,0xbea6cd80,0x38198438,0x6b31ce65,0xd9e4e907,0xe59846d9,0x19e4fe03,0x9fea7357,0x6df4e245,0x556ecedc}; - static const u32 local_xg_bp512r1[BP512R1_WORDSIZE]={0xbcb9f822,0x8b352209,0x406a5e68,0x7c6d5047,0x93b97d5f,0x50d1687b,0xe2d0d48d,0xff3b1f78,0xf4d0098e,0xb43b62ee,0xb5d916c1,0x85ed9f70,0x9c4c6a93,0x5a21322e,0xd82ed964,0x81aee4bd}; - static const u32 local_yg_bp512r1[BP512R1_WORDSIZE]={0x3ad80892,0x78cd1e0f,0xa8f05406,0xd1ca2b2f,0x8a2763ae,0x5bca4bd8,0x4a5f485e,0xb2dcde49,0x881f8111,0xa000c55b,0x24a57b1a,0xf209f700,0xcf7822fd,0xc0eabfa9,0x566332ec,0x7dde385d}; - static const u32 local_a_bp512r1[BP512R1_WORDSIZE]={0x77fc94ca,0xe7c1ac4d,0x2bf2c7b9,0x7f1117a7,0x8b9ac8b5,0x0a2ef1c9,0xa8253aa1,0x2ded5d5a,0xea9863bc,0xa83441ca,0x3df91610,0x94cbdd8d,0xac234cc5,0xe2327145,0x8b603b89,0x7830a331}; -static const u32 local_b_bp512r1[BP512R1_WORDSIZE]={0x8016f723,0x2809bd63,0x5ebae5dd,0x984050b7,0xdc083e67,0x77fc94ca,0xe7c1ac4d,0x2bf2c7b9,0x7f1117a7,0x8b9ac8b5,0x0a2ef1c9,0xa8253aa1,0x2ded5d5a,0xea9863bc,0xa83441ca,0x3df91610}; - static const u32 local_p_bp512r1[BP512R1_WORDSIZE]={0x583a48f3,0x28aa6056,0x2d82c685,0x2881ff2f,0xe6a380e6,0xaecda12a,0x9bc66842,0x7d4d9b00,0x70330871,0xd6639cca,0xb3c9d20e,0xcb308db3,0x33c9fc07,0x3fd4e6ae,0xdbe9c48b,0xaadd9db8}; - static const u32 local_n_bp512r1[BP512R1_WORDSIZE]={0x9ca90069,0xb5879682,0x085ddadd,0x1db1d381,0x7fac1047,0x41866119,0x4ca92619,0x553e5c41,0x70330870,0xd6639cca,0xb3c9d20e,0xcb308db3,0x33c9fc07,0x3fd4e6ae,0xdbe9c48b,0xaadd9db8}; + static const u32 local_inv2_bp512r1[BP512R1_WORDSIZE]={0x2c1d247a, 0x9455302b, 0x96c16342, 0x1440ff97, 0x7351c073, 0x5766d095, 0x4de33421, 0xbea6cd80, 0x38198438, 0x6b31ce65, 0xd9e4e907, 0xe59846d9, 0x19e4fe03, 0x9fea7357, 0x6df4e245, 0x556ecedc}; + static const u32 local_xg_bp512r1[BP512R1_WORDSIZE]={0xbcb9f822, 0x8b352209, 0x406a5e68, 0x7c6d5047, 0x93b97d5f, 0x50d1687b, 0xe2d0d48d, 0xff3b1f78, 0xf4d0098e, 0xb43b62ee, 0xb5d916c1, 0x85ed9f70, 0x9c4c6a93, 0x5a21322e, 0xd82ed964, 0x81aee4bd}; + static const u32 local_yg_bp512r1[BP512R1_WORDSIZE]={0x3ad80892, 0x78cd1e0f, 0xa8f05406, 0xd1ca2b2f, 0x8a2763ae, 0x5bca4bd8, 0x4a5f485e, 0xb2dcde49, 0x881f8111, 0xa000c55b, 0x24a57b1a, 0xf209f700, 0xcf7822fd, 0xc0eabfa9, 0x566332ec, 0x7dde385d}; + static const u32 local_a_bp512r1[BP512R1_WORDSIZE]={0x77fc94ca, 0xe7c1ac4d, 0x2bf2c7b9, 0x7f1117a7, 0x8b9ac8b5, 0x0a2ef1c9, 0xa8253aa1, 0x2ded5d5a, 0xea9863bc, 0xa83441ca, 0x3df91610, 0x94cbdd8d, 0xac234cc5, 0xe2327145, 0x8b603b89, 0x7830a331}; +static const u32 local_b_bp512r1[BP512R1_WORDSIZE]={0x8016f723, 0x2809bd63, 0x5ebae5dd, 0x984050b7, 0xdc083e67, 0x77fc94ca, 0xe7c1ac4d, 0x2bf2c7b9, 0x7f1117a7, 0x8b9ac8b5, 0x0a2ef1c9, 0xa8253aa1, 0x2ded5d5a, 0xea9863bc, 0xa83441ca, 0x3df91610}; + static const u32 local_p_bp512r1[BP512R1_WORDSIZE]={0x583a48f3, 0x28aa6056, 0x2d82c685, 0x2881ff2f, 0xe6a380e6, 0xaecda12a, 0x9bc66842, 0x7d4d9b00, 0x70330871, 0xd6639cca, 0xb3c9d20e, 0xcb308db3, 0x33c9fc07, 0x3fd4e6ae, 0xdbe9c48b, 0xaadd9db8}; + static const u32 local_n_bp512r1[BP512R1_WORDSIZE]={0x9ca90069, 0xb5879682, 0x085ddadd, 0x1db1d381, 0x7fac1047, 0x41866119, 0x4ca92619, 0x553e5c41, 0x70330870, 0xd6639cca, 0xb3c9d20e, 0xcb308db3, 0x33c9fc07, 0x3fd4e6ae, 0xdbe9c48b, 0xaadd9db8}; /** ECC Curve structure variable for Brainpool P512r1. * * @ingroup UCL_ECDSA @@ -325,13 +342,13 @@ extern ucl_type_curve bp512r1; /** ECDSA signature. * Compute a ECDSA signature, using curve domain parameters * -* @param[out] signature: pointer to a ucl_type_ecdsa_signature structure, containing the signature (r,s) values +* @param[out] signature: pointer to a ucl_type_ecdsa_signature structure, containing the signature (r, s) values * @param[in] *d: input, the secret key * @param[in] *ucl_hash: input, the pointer to the hash function (see hash functions documentation for already available ones) * @param[in] *input: input, the message or the hash digest to be signed, * @param[in] inputlength: input, the input length, in bytes -* @param[in] *curve_params: the pointer to a ucl_type_curve structure, containing the curve domain parameters (already existing ones are described in the documentation) -* @param[in] configuration (combination of any of these lines) +* @param[in] *curve_params: the pointer to a ucl_type_curve structure, containing the curve domain parameters (already existing ones are described in the documentation) +* @param[in] configuration (combination of any of these lines) - UCL_R_PRECOMP or UCL_PRECOMP_R: - UCL_R_PRECOMP: using precomputed r to finish the signature computation, - UCL_PRECOMP_R: to only pre-compute the r value, @@ -342,7 +359,7 @@ extern ucl_type_curve bp512r1; - Examples are: - UCL_HASH_INPUT<ECDSA signature verification. * Verify a ECDSA signature, using curve domain structure * * @param[in] public key: pointer to a ucl_type_ecc_u8_affine_point structure, containing the ECC public key, used for signature verification -* @param[in] signature: pointer to a ucl_type_ecdsa_signature structure, containing the signature (r,s) values +* @param[in] signature: pointer to a ucl_type_ecdsa_signature structure, containing the signature (r, s) values * @param[in] *ucl_hash: input, the pointer to the hash function (see hash functions documentation for already available ones) * @param[in] *input: input, the message or the hash digest to be signed, * @param[in] inputlength: input, the input length, in bytes -* @param[in] *curve_params: the pointer to a ucl_type_curve structure, containing the curve domain parameters (already existing ones are described in the documentation) -* @param[in] configuration (combination of any of these lines) -* @param[in] +* @param[in] *curve_params: the pointer to a ucl_type_curve structure, containing the curve domain parameters (already existing ones are described in the documentation) +* @param[in] configuration (combination of any of these lines) +* @param[in] * @param[in] *ucl_hash: input, the already hashed digest of the message, * @param[in] hashlength: input, the hash length, in bytes * @return Error code * @retval #UCL_OK if the signature is verified * @retval #UCL_ERROR if the signature is not verified - * @retval #UCL_INVALID_INPUT in case of wrong parameters + * @retval #UCL_INVALID_INPUT in case of wrong parameters * * @ingroup UCL_ECDSA */ -int ucl_ecdsa_verification(ucl_type_ecc_u8_affine_point Q,ucl_type_ecdsa_signature signature,int(*ucl_hash)(u8*,u8*,u32),u8 *input,u32 inputlength,ucl_type_curve *curve_params,u32 configuration); +int ucl_ecdsa_verification(ucl_type_ecc_u8_affine_point Q, ucl_type_ecdsa_signature signature, int(*ucl_hash)(u8*, u8*, u32), u8 *input, u32 inputlength, ucl_type_curve *curve_params, u32 configuration); /** ECC multiplication. * multiply a scalar by a ECC point, using affine parameters, computation performed in Jacobian parameters @@ -381,14 +398,14 @@ int ucl_ecdsa_verification(ucl_type_ecc_u8_affine_point Q,ucl_type_ecdsa_signatu * @param[out] Q: pointer to a ucl_ecc_digit_affine_point structure, containing the ECC result point, * @param[in] m: pointer to a word array containing the scalar, * @param[in] X1: pointer to a ucl_ecc_digit_affine_point structure, containing the ECC point, to be multiplied by the scalar, -* @param[in] *curve_params: the pointer to a ucl_type_curve structure, containing the curve domain parameters (already existing ones are described in the documentation) +* @param[in] *curve_params: the pointer to a ucl_type_curve structure, containing the curve domain parameters (already existing ones are described in the documentation) * @return Error code * @retval #UCL_OK if the signature is verified - * @retval #UCL_INVALID_INPUT in case of wrong parameters + * @retval #UCL_INVALID_INPUT in case of wrong parameters * * @ingroup UCL_ECDSA */ -int ecc_mult_jacobian(ucl_type_ecc_digit_affine_point Q, u32 *m, ucl_type_ecc_digit_affine_point X1,ucl_type_curve *curve_params); +int ecc_mult_jacobian(ucl_type_ecc_digit_affine_point Q, u32 *m, ucl_type_ecc_digit_affine_point X1, ucl_type_curve *curve_params); /** ECC addition. * add two ECC points in affine coordinates @@ -396,28 +413,28 @@ int ecc_mult_jacobian(ucl_type_ecc_digit_affine_point Q, u32 *m, ucl_type_ecc_di * @param[out] Q3: pointer to a ucl_ecc_digit_affine_point structure, containing the ECC result point, * @param[in] Q1: pointer to a ucl_ecc_digit_affine_point structure, containing the ECC point, to be added with, * @param[in] Q2: pointer to a ucl_ecc_digit_affine_point structure, containing the ECC point, to be added with, -* @param[in] *curve_params: the pointer to a ucl_type_curve structure, containing the curve domain parameters (already existing ones are described in the documentation) +* @param[in] *curve_params: the pointer to a ucl_type_curve structure, containing the curve domain parameters (already existing ones are described in the documentation) * @return Error code * @retval #UCL_OK if the signature is verified - * @retval #UCL_INVALID_INPUT in case of wrong parameters + * @retval #UCL_INVALID_INPUT in case of wrong parameters * * @ingroup UCL_ECDSA */ -int ecc_add(ucl_type_ecc_digit_affine_point Q3,ucl_type_ecc_digit_affine_point Q1,ucl_type_ecc_digit_affine_point Q2,ucl_type_curve *curve_params); +int ecc_add(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_point Q1, ucl_type_ecc_digit_affine_point Q2, ucl_type_curve *curve_params); /** ECC doubling. * doubling one ECC point in affine coordinates * * @param[out] Q3: pointer to a ucl_ecc_digit_affine_point structure, containing the ECC result point, * @param[in] Q1: pointer to a ucl_ecc_digit_affine_point structure, containing the ECC point, to be doubled -* @param[in] *curve_params: the pointer to a ucl_type_curve structure, containing the curve domain parameters (already existing ones are described in the documentation) +* @param[in] *curve_params: the pointer to a ucl_type_curve structure, containing the curve domain parameters (already existing ones are described in the documentation) * @return Error code * @retval #UCL_OK if the signature is verified - * @retval #UCL_INVALID_INPUT in case of wrong parameters + * @retval #UCL_INVALID_INPUT in case of wrong parameters * * @ingroup UCL_ECDSA */ -int ecc_double(ucl_type_ecc_digit_affine_point Q3,ucl_type_ecc_digit_affine_point Q1, ucl_type_curve *curve_params); +int ecc_double(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_point Q1, ucl_type_curve *curve_params); -#endif//ECDSA_GENERIC_API +#endif // LIBRARIES_FCL_INCLUDE_UCL_ECDSA_GENERIC_API_H_ diff --git a/Libraries/FCL/include/ucl/info.h b/Libraries/FCL/include/ucl/info.h index f1cd00ed58e..bb30fdd7c1e 100644 --- a/Libraries/FCL/include/ucl/info.h +++ b/Libraries/FCL/include/ucl/info.h @@ -1,14 +1,29 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + * + * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -32,9 +47,10 @@ * ownership rights. * ******************************************************************************/ -#ifndef OLD_INFO_H_ -#define OLD_INFO_H_ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_INFO_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_INFO_H_ #include "ucl/ucl_info.h" -#endif /* OLD_INFO_H_ */ +#endif // LIBRARIES_FCL_INCLUDE_UCL_INFO_H_ diff --git a/Libraries/FCL/include/ucl/types.h b/Libraries/FCL/include/ucl/types.h index dd7b2942f50..86c201ecacf 100644 --- a/Libraries/FCL/include/ucl/types.h +++ b/Libraries/FCL/include/ucl/types.h @@ -1,14 +1,29 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + * + * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -32,9 +47,10 @@ * ownership rights. * ******************************************************************************/ -#ifndef _OLD_TYPES_H_ -#define _OLD_TYPES_H_ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_TYPES_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_TYPES_H_ #include "ucl/ucl_types.h" -#endif /* _OLD_TYPES_H_ */ +#endif // LIBRARIES_FCL_INCLUDE_UCL_TYPES_H_ diff --git a/Libraries/FCL/include/ucl/ucl.h b/Libraries/FCL/include/ucl/ucl.h index 6732c5c2eef..b75736a81ce 100644 --- a/Libraries/FCL/include/ucl/ucl.h +++ b/Libraries/FCL/include/ucl/ucl.h @@ -1,14 +1,29 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + * + * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -32,12 +47,13 @@ * ownership rights. * ******************************************************************************/ -#ifndef UCL_H_ -#define UCL_H_ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_H_ #include "ucl/ucl_types.h" #include "ucl/ucl_config.h" #include "ucl/ucl_defs.h" #include "ucl/ucl_retdefs.h" -#endif /*UCL_H_*/ +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_H_ diff --git a/Libraries/FCL/include/ucl/ucl_aes.h b/Libraries/FCL/include/ucl/ucl_aes.h index 15753cf57a1..dfb8ff56365 100644 --- a/Libraries/FCL/include/ucl/ucl_aes.h +++ b/Libraries/FCL/include/ucl/ucl_aes.h @@ -1,14 +1,29 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + * + * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -32,8 +47,9 @@ * ownership rights. * ******************************************************************************/ -#ifndef _UCL_AES_H_ -#define _UCL_AES_H_ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_AES_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_AES_H_ #include "ucl_types.h" @@ -141,4 +157,4 @@ extern "C" { } #endif /* __cplusplus */ -#endif /*_UCL_AES_H_*/ +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_AES_H_ diff --git a/Libraries/FCL/include/ucl/ucl_aes_cbc.h b/Libraries/FCL/include/ucl/ucl_aes_cbc.h index a67d585e043..695d39e129f 100644 --- a/Libraries/FCL/include/ucl/ucl_aes_cbc.h +++ b/Libraries/FCL/include/ucl/ucl_aes_cbc.h @@ -1,14 +1,29 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + * + * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -32,8 +47,9 @@ * ownership rights. * ******************************************************************************/ -#ifndef _UCL_AES_CBC_H_ -#define _UCL_AES_CBC_H_ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_AES_CBC_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_AES_CBC_H_ #include "ucl/ucl_aes.h" @@ -106,7 +122,7 @@ int ucl_aes_cbc(u8 *dst, u8 *src, u32 len, u8 *key, u32 keylen, u8 *IV, * @retval #UCL_INVALID_ARG @p keylen is invalid * @retval #UCL_INVALID_MODE The mode is not one of those described * - * @ingroup UCL_CBC_AES + * @ingroup UCL_CBC_AES */ int ucl_aes_cbc_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen, u8 *IV, int mode); @@ -114,7 +130,7 @@ int ucl_aes_cbc_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen, u8 *IV, int mode); * Process the Data. * * @param[out] dst Pointer to the processed data - * @param[out,in] ctx Pointer to the context + * @param[out, in] ctx Pointer to the context * @param[in] src Pointer to the data * @param[in] len Data byte length * @@ -128,7 +144,7 @@ int ucl_aes_cbc_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen, u8 *IV, int mode); * @retval #UCL_INVALID_ARG The data byte length is not a multiple of * #UCL_AES_BLOCKSIZE * - * @ingroup UCL_CBC_AES + * @ingroup UCL_CBC_AES */ int ucl_aes_cbc_core(u8 *dst, ucl_aes_ctx_t *ctx, u8 *src, u32 len); @@ -136,14 +152,14 @@ int ucl_aes_cbc_core(u8 *dst, ucl_aes_ctx_t *ctx, u8 *src, /**AES-CBC Finish. * Zeroize the context. * - * @param[out,in] ctx Pointer to the context + * @param[out, in] ctx Pointer to the context * * @return Error code * * @retval #UCL_OK No error occurred * @retval #UCL_INVALID_OUTPUT The output is the pointer #NULL * - * @ingroup UCL_CBC_AES + * @ingroup UCL_CBC_AES */ int ucl_aes_cbc_finish(ucl_aes_ctx_t *ctx); @@ -152,7 +168,7 @@ int ucl_aes_cbc_finish(ucl_aes_ctx_t *ctx); * Process the Data. * * @param[out] dst Pointer to the output data - * @param[out,in] ctx AES context + * @param[out, in] ctx AES context * @param[in] src Pointer to the input data * @param[in] len Data byte length * @@ -174,4 +190,4 @@ int ucl_aes_cbc_finish(ucl_aes_ctx_t *ctx); } #endif /* __cplusplus */ -#endif /*_UCL_AES_CBC_H_*/ +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_AES_CBC_H_ diff --git a/Libraries/FCL/include/ucl/ucl_aes_cbc_mac.h b/Libraries/FCL/include/ucl/ucl_aes_cbc_mac.h index 1e0c86afc28..b08dfdc6013 100644 --- a/Libraries/FCL/include/ucl/ucl_aes_cbc_mac.h +++ b/Libraries/FCL/include/ucl/ucl_aes_cbc_mac.h @@ -1,14 +1,29 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + * + * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -32,8 +47,9 @@ * ownership rights. * ******************************************************************************/ -#ifndef _UCL_AES_CBC_MAC_H_ -#define _UCL_AES_CBC_MAC_H_ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_AES_CBC_MAC_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_AES_CBC_MAC_H_ #include "ucl/ucl_aes.h" @@ -94,14 +110,14 @@ extern "C" { * @retval #UCL_INVALID_OUTPUT The output is the pointer #NULL * @retval #UCL_INVALID_ARG @p keylen is invalid * - * @ingroup UCL_CBC_MAC_AES + * @ingroup UCL_CBC_MAC_AES */ int ucl_aes_cbc_mac_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen); /** AES-CBC_MAC Core. * Process the Data. * - * @param[out,in] ctx Pointer to the context + * @param[out, in] ctx Pointer to the context * @param[in] src Pointer to the data * @param[in] len Data byte length * @@ -115,7 +131,7 @@ int ucl_aes_cbc_mac_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen); * @retval #UCL_INVALID_ARG The data byte length is not a multiple of * #UCL_AES_BLOCKSIZE * - * @ingroup UCL_CBC_MAC_AES + * @ingroup UCL_CBC_MAC_AES */ int ucl_aes_cbc_mac_core(ucl_aes_ctx_t *ctx, u8 *src, u32 len); @@ -124,14 +140,14 @@ int ucl_aes_cbc_mac_core(ucl_aes_ctx_t *ctx, u8 *src, u32 len); * * @param[out] tmac Pointer to the outputted MAC * @param[in] tmac_byteLen outputted MAC byte length - * @param[out,in] ctx Pointer to the context + * @param[out, in] ctx Pointer to the context * * @return Error code * * @retval #UCL_OK No error occurred * @retval #UCL_INVALID_OUTPUT The output is the pointer #NULL * - * @ingroup UCL_CBC_MAC_AES + * @ingroup UCL_CBC_MAC_AES */ int ucl_aes_cbc_mac_finish(u8 *tmac, u32 tmac_byteLen, ucl_aes_ctx_t *ctx); @@ -139,4 +155,4 @@ int ucl_aes_cbc_mac_core(ucl_aes_ctx_t *ctx, u8 *src, u32 len); } #endif /* __cplusplus */ -#endif /*_UCL_AES_CBC_MAC_H_*/ +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_AES_CBC_MAC_H_ diff --git a/Libraries/FCL/include/ucl/ucl_aes_ecb.h b/Libraries/FCL/include/ucl/ucl_aes_ecb.h index 1d1f15ae5b2..63cadebcad1 100644 --- a/Libraries/FCL/include/ucl/ucl_aes_ecb.h +++ b/Libraries/FCL/include/ucl/ucl_aes_ecb.h @@ -1,14 +1,29 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + * + * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -32,8 +47,9 @@ * ownership rights. * ******************************************************************************/ -#ifndef _UCL_AES_ECB_H_ -#define _UCL_AES_ECB_H_ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_AES_ECB_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_AES_ECB_H_ #include "ucl/ucl_aes.h" @@ -76,7 +92,7 @@ extern "C" { * * @ingroup UCL_ECB_AES */ -int ucl_aes_ecb(u8 *dst, u8 *src, u32 len, u8 *key, u32 keylen,int mode); +int ucl_aes_ecb(u8 *dst, u8 *src, u32 len, u8 *key, u32 keylen, int mode); /** AES-ECB Init. * Initialise AES ECB Context. @@ -110,7 +126,7 @@ int ucl_aes_ecb_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen, int mode); * Process the Data. * * @param[out] dst Pointer to the output data - * @param[out,in] ctx AES context + * @param[out, in] ctx AES context * @param[in] src Pointer to the input data * @param[in] len Data byte length * @@ -131,7 +147,7 @@ int ucl_aes_ecb_core(u8 *dst, ucl_aes_ctx_t *ctx, u8 *src, u32 len); /** AES-ECB Finish. * Zeroize the context. * - * @param[out,in] ctx Pointer to the context + * @param[out, in] ctx Pointer to the context * * @return Error code * @@ -146,7 +162,7 @@ int ucl_aes_ecb_finish(ucl_aes_ctx_t *ctx); * Process the Data. * * @param[out] dst Pointer to the output data - * @param[out,in] ctx AES context + * @param[out, in] ctx AES context * @param[in] src Pointer to the input data * @param[in] len Data byte length * @@ -168,4 +184,4 @@ int ucl_aes_ecb_finish(ucl_aes_ctx_t *ctx); } #endif /* __cplusplus */ -#endif /*_UCL_AES_ECB_H_*/ +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_AES_ECB_H_ diff --git a/Libraries/FCL/include/ucl/ucl_config.h b/Libraries/FCL/include/ucl/ucl_config.h index df561b17ab8..83972702290 100644 --- a/Libraries/FCL/include/ucl/ucl_config.h +++ b/Libraries/FCL/include/ucl/ucl_config.h @@ -1,14 +1,29 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + * + * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -32,8 +47,9 @@ * ownership rights. * ******************************************************************************/ -#ifndef _UCL_CONFIG_H_ -#define _UCL_CONFIG_H_ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_CONFIG_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_CONFIG_H_ #ifdef __MINGW32__ @@ -97,4 +113,4 @@ * @ingroup UCL_CONFIG */ #define UCL_ECC_PRECISION 17 -#endif /*_UCL_CONFIG_H_*/ +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_CONFIG_H_ diff --git a/Libraries/FCL/include/ucl/ucl_defs.h b/Libraries/FCL/include/ucl/ucl_defs.h index 73ac3c54ecf..64a5a29ef8a 100644 --- a/Libraries/FCL/include/ucl/ucl_defs.h +++ b/Libraries/FCL/include/ucl/ucl_defs.h @@ -1,14 +1,29 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + * + * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -32,8 +47,9 @@ * ownership rights. * ******************************************************************************/ -#ifndef _UCL_DEFS_H_ -#define _UCL_DEFS_H_ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_DEFS_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_DEFS_H_ /** @defgroup UCL_DEFINITIONS Definitions * @@ -108,7 +124,7 @@ */ #define UCL_CIPHER_DECRYPT_EEE 0x3 -#define UCL_CIPHER_MODE_LAST UCL_CIPHER_DECRYPT_EEE +#define UCL_CIPHER_MODE_LAST UCL_CIPHER_DECRYPT_EEE /*============================================================================== * ASN1 @@ -165,15 +181,15 @@ #define UCL_NO_PRECOMP_TRICK 0 #define UCL_PRECOMP_TRICK 1 #define UCL_PRECOMP_FULL_TRICK 2 -#define UCL_PRECOMP_MASK 7//so 3 bits: 9,10,11 -#define UCL_PRECOMP_TRICK_MASK 7// so 3 bits: 12,13,14 -#define UCL_INPUT_MASK 3//so 2 bits: 7,8 -#define UCL_CURVE_MASK 15//so 4 bits: 3,4,5,6 -#define UCL_HASH_MASK 7//so 3 bits: 0,1,2 +#define UCL_PRECOMP_MASK 7//so 3 bits: 9, 10, 11 +#define UCL_PRECOMP_TRICK_MASK 7// so 3 bits: 12, 13, 14 +#define UCL_INPUT_MASK 3//so 2 bits: 7, 8 +#define UCL_CURVE_MASK 15//so 4 bits: 3, 4, 5, 6 +#define UCL_HASH_MASK 7//so 3 bits: 0, 1, 2 #define UCL_HASH_SHIFT 0 #define UCL_CURVE_SHIFT 3 #define UCL_INPUT_SHIFT 7 #define UCL_PRECOMP_SHIFT 9 #define UCL_PRECOMP_TRICK_SHIFT 12 -#endif /*_UCL_DEFS_H_*/ +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_DEFS_H_ diff --git a/Libraries/FCL/include/ucl/ucl_hash.h b/Libraries/FCL/include/ucl/ucl_hash.h index 1c3589e0cdf..b3a87c46833 100644 --- a/Libraries/FCL/include/ucl/ucl_hash.h +++ b/Libraries/FCL/include/ucl/ucl_hash.h @@ -1,14 +1,29 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + * + * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -35,8 +50,8 @@ //these defines are used to select or not hash functions //useful on platforms with limited resources -#ifndef _UCL_HASH_H -#define _UCL_HASH_H +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_HASH_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_HASH_H_ #define HASH_SHA256 #define HASH_SHA384 @@ -47,4 +62,5 @@ #define MAX_HASH_FUNCTIONS 5 extern int hash_size[MAX_HASH_FUNCTIONS]; -#endif//UCL_HASH + +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_HASH_H_ diff --git a/Libraries/FCL/include/ucl/ucl_retdefs.h b/Libraries/FCL/include/ucl/ucl_retdefs.h index 47ab1d74f32..b173628f5e2 100644 --- a/Libraries/FCL/include/ucl/ucl_retdefs.h +++ b/Libraries/FCL/include/ucl/ucl_retdefs.h @@ -1,14 +1,29 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + * + * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -32,8 +47,9 @@ * ownership rights. * ******************************************************************************/ -#ifndef UCL_RETDEFS_H_ -#define UCL_RETDEFS_H_ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_RETDEFS_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_RETDEFS_H_ /** @file ucl_retdefs.h * @defgroup UCL_RETURN Definitions of returns @@ -232,4 +248,4 @@ #define UCL_NOT_IMPLEMENTED -99 -#endif /* UCL_RETDEFS_H_ */ +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_RETDEFS_H_ diff --git a/Libraries/FCL/include/ucl/ucl_rng.h b/Libraries/FCL/include/ucl/ucl_rng.h index 4ce0e71c3d4..831ffe4fa37 100644 --- a/Libraries/FCL/include/ucl/ucl_rng.h +++ b/Libraries/FCL/include/ucl/ucl_rng.h @@ -1,14 +1,29 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + * + * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -32,9 +47,10 @@ * ownership rights. * ******************************************************************************/ -#ifndef UCL_RNG_H_ -#define UCL_RNG_H_ - int __API__ ucl_rng_read(u8* rand, u32 rand_byteLen); - -#endif /*UCL_RNG_H_*/ +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_RNG_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_RNG_H_ + +int __API__ ucl_rng_read(u8* rand, u32 rand_byteLen); + +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_RNG_H_ diff --git a/Libraries/FCL/include/ucl/ucl_sha256.h b/Libraries/FCL/include/ucl/ucl_sha256.h index 99d1fcc4183..d1bfc1c8b43 100644 --- a/Libraries/FCL/include/ucl/ucl_sha256.h +++ b/Libraries/FCL/include/ucl/ucl_sha256.h @@ -1,14 +1,29 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + * + * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -32,8 +47,10 @@ * ownership rights. * ******************************************************************************/ -#ifndef _UCL_SHA256_H_ -#define _UCL_SHA256_H_ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_SHA256_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_SHA256_H_ + #include #ifdef __cplusplus @@ -133,7 +150,7 @@ int __API__ ucl_sha256(u8 *hash, u8 *data, u32 data_byteLen); /** SHA256 Init. * The initialisation of SHA256. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @return Error code * @@ -147,7 +164,7 @@ int __API__ ucl_sha256_init(ucl_sha256_ctx_t *context); /** SHA256 Core. * The core of SHA256. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * @param[in] data Pointer to the data * @param[in] data_byteLen Data byte length * @@ -170,7 +187,7 @@ int __API__ ucl_sha256_core(ucl_sha256_ctx_t *context, u8 *data, * @pre Hash byte length is equal to 32 * * @param[out] hash Pointer to the digest - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @warning #ucl_sha256_init and #ucl_sha256_core must be processed before. * @@ -188,4 +205,5 @@ int __API__ ucl_sha256_finish(u8 *hash, ucl_sha256_ctx_t *context); #ifdef __cplusplus } #endif /* _ cplusplus */ -#endif /* _UCL_SHA256_H_ */ + +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_SHA256_H_ diff --git a/Libraries/FCL/include/ucl/ucl_sha3.h b/Libraries/FCL/include/ucl/ucl_sha3.h index 5e9ebc94f9e..92eacadd491 100644 --- a/Libraries/FCL/include/ucl/ucl_sha3.h +++ b/Libraries/FCL/include/ucl/ucl_sha3.h @@ -1,6 +1,6 @@ /* sha3.h */ -#ifndef _UCL_SHA3_H -#define _UCL_SHA3_H +#ifndef LIBRARIES_FCL_INCLUDE_UCL_SHA3_H +#define LIBRARIES_FCL_INCLUDE_UCL_SHA3_H #ifdef __cplusplus extern "C" { @@ -21,6 +21,7 @@ extern "C" { #define UCL_SHA3_256 10 #define UCL_SHA3_384 11 #define UCL_SHA3_512 12 + /** * SHA3 Algorithm context. */ @@ -53,14 +54,14 @@ extern "C" { typedef struct sha3_ctx { - /* 1600 bits algorithm hashing state */ - u64 hash[UCL_SHA3_MAX_PERMSIZE]; - /* 1536-bit buffer for leftovers */ - u64 message[UCL_SHA3_MAXQRATE_QWORDS]; - /* count of bytes in the message[] buffer */ - u32 rest; - /* size of a message block processed at once */ - u32 block_size; + /* 1600 bits algorithm hashing state */ + u64 hash[UCL_SHA3_MAX_PERMSIZE]; + /* 1536-bit buffer for leftovers */ + u64 message[UCL_SHA3_MAXQRATE_QWORDS]; + /* count of bytes in the message[] buffer */ + u32 rest; + /* size of a message block processed at once */ + u32 block_size; } sha3_ctx; #define SHA3_SPONGE_WORDS (((1600)/8/*bits to byte*/)/sizeof(u64)) @@ -79,12 +80,12 @@ typedef struct sha3_context_ { } ucl_sha3_ctx_t; // methods for calculating the hash function - + /*============================================================================*/ /** SHA3-224 Init. * The initialisation of SHA3-224. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @return Error code * @@ -98,7 +99,7 @@ typedef struct sha3_context_ { /** SHA3-256 Init. * The initialisation of SHA3-256. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @return Error code * @@ -112,7 +113,7 @@ typedef struct sha3_context_ { /** SHA3-384 Init. * The initialisation of SHA3-384. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @return Error code * @@ -126,7 +127,7 @@ typedef struct sha3_context_ { /** SHA3-512 Init. * The initialisation of SHA3-512. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @return Error code * @@ -140,7 +141,7 @@ typedef struct sha3_context_ { /** SHA3 Core. * The core of SHA3, common to all SHA3 hash functions. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * @param[in] data Pointer to the data * @param[in] data_byteLen Data byte length * @@ -162,7 +163,7 @@ typedef struct sha3_context_ { * @pre Hash byte length is equal to 28/32/48 or 64 bytes * * @param[out] hash Pointer to the digest - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @warning #ucl_sha3_*_init and #ucl_sha3_core must be processed before. * @@ -175,7 +176,7 @@ typedef struct sha3_context_ { * @ingroup UCL_SHA3 */ - int ucl_sha3_finish(u8 *hash,ucl_sha3_ctx_t *ctx); + int ucl_sha3_finish(u8 *hash, ucl_sha3_ctx_t *ctx); /*============================================================================*/ /** SHA3-224. @@ -195,7 +196,7 @@ typedef struct sha3_context_ { * @ingroup UCL_SHA3 */ - int ucl_sha3_224(u8 *digest,u8 *msg,u32 msg_Len); + int ucl_sha3_224(u8 *digest, u8 *msg, u32 msg_Len); /*============================================================================*/ /** SHA3-256. @@ -214,7 +215,7 @@ typedef struct sha3_context_ { * * @ingroup UCL_SHA3 */ - int ucl_sha3_256(u8 *digest,u8 *msg,u32 msg_Len); + int ucl_sha3_256(u8 *digest, u8 *msg, u32 msg_Len); /*============================================================================*/ /** SHA3-384. @@ -233,7 +234,7 @@ typedef struct sha3_context_ { * * @ingroup UCL_SHA3 */ - int ucl_sha3_384(u8 *digest,u8 *msg,u32 msg_Len); + int ucl_sha3_384(u8 *digest, u8 *msg, u32 msg_Len); /*============================================================================*/ /** SHA3-512. @@ -252,13 +253,13 @@ typedef struct sha3_context_ { * * @ingroup UCL_SHA3 */ - int ucl_sha3_512(u8 *digest,u8 *msg,u32 msg_Len); + int ucl_sha3_512(u8 *digest, u8 *msg, u32 msg_Len); int ucl_shake128_init(ucl_sha3_ctx_t *ctx); int ucl_shake256_init(ucl_sha3_ctx_t *ctx); - int ucl_shake_finish(u8 *hash,ucl_sha3_ctx_t *ctx); + int ucl_shake_finish(u8 *hash, ucl_sha3_ctx_t *ctx); #ifdef __cplusplus } /* extern "C" */ #endif /* __cplusplus */ -#endif /* _UCL_SHA3_H */ +#endif // LIBRARIES_FCL_INCLUDE_UCL_SHA3_H_ diff --git a/Libraries/FCL/include/ucl/ucl_sha384.h b/Libraries/FCL/include/ucl/ucl_sha384.h index e1e4d327274..735b472eb13 100644 --- a/Libraries/FCL/include/ucl/ucl_sha384.h +++ b/Libraries/FCL/include/ucl/ucl_sha384.h @@ -1,14 +1,29 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + * + * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -32,8 +47,10 @@ * ownership rights. * ******************************************************************************/ -#ifndef _UCL_SHA384_H_ -#define _UCL_SHA384_H_ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_SHA384_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_SHA384_H_ + #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ @@ -134,7 +151,7 @@ int ucl_sha384(u8 *hash, u8 *data, u32 data_byteLen); /** SHA384 Init. * The initialisation of SHA384. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @return Error code * @@ -148,7 +165,7 @@ int ucl_sha384_init(ucl_sha384_ctx_t *context); /** SHA384 Core. * The core of SHA384. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * @param[in] data Pointer to the data * @param[in] data_byteLen Data byte length * @@ -171,7 +188,7 @@ int ucl_sha384_core(ucl_sha384_ctx_t *context, u8 *data, * @pre Hash byte length is equal to 32 * * @param[out] hash Pointer to the digest - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @warning #ucl_sha384_init and #ucl_sha384_core must be processed before. * @@ -189,7 +206,7 @@ int ucl_sha384_finish(u8 *hash, ucl_sha384_ctx_t *context); void sha384_stone(u32 hash[8], u32 stone[16]); int ucl_hmac_sha384(u8 *mac, u32 mac_byteLen, u8 *message, u32 message_byteLen, - u8 *key, u32 key_byteLen); + u8 *key, u32 key_byteLen); int ucl_hmac_sha384_init(ucl_sha384_ctx_t *context , u8 *key, u32 key_byteLen); int ucl_hmac_sha384_core(ucl_sha384_ctx_t *context, u8 *data, u32 byteLen); int ucl_hmac_sha384_finish(u8 *mac, u32 mac_byteLen, ucl_sha384_ctx_t *context, @@ -198,4 +215,4 @@ int ucl_hmac_sha384_finish(u8 *mac, u32 mac_byteLen, ucl_sha384_ctx_t *context, } #endif /* __cplusplus */ -#endif +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_SHA384_H_ diff --git a/Libraries/FCL/include/ucl/ucl_sha512.h b/Libraries/FCL/include/ucl/ucl_sha512.h index 34e71ea9d12..ef58cb516d8 100644 --- a/Libraries/FCL/include/ucl/ucl_sha512.h +++ b/Libraries/FCL/include/ucl/ucl_sha512.h @@ -1,14 +1,29 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + * + * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -32,16 +47,18 @@ * ownership rights. * ******************************************************************************/ -#ifndef _UCL_SHA512_H_ -#define _UCL_SHA512_H_ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_SHA512_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_SHA512_H_ + #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ + #include #include #include - /** @file ucl_sha512.h * @defgroup UCL_SHA512 SHA512 * Secure Hash Algorithm 512, from FIPS 180-2. @@ -135,7 +152,7 @@ int ucl_sha512(u8 *hash, u8 *data, u32 data_byteLen); /** SHA512 Init. * The initialisation of SHA512. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @return Error code * @@ -149,7 +166,7 @@ int ucl_sha512_init(ucl_sha512_ctx_t *context); /** SHA512 Core. * The core of SHA512. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * @param[in] data Pointer to the data * @param[in] data_byteLen Data byte length * @@ -172,7 +189,7 @@ int ucl_sha512_core(ucl_sha512_ctx_t *context, u8 *data, * @pre Hash byte length is equal to 64 * * @param[out] hash Pointer to the digest - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @warning #ucl_sha512_init and #ucl_sha512_core must be processed before. * @@ -190,7 +207,7 @@ int ucl_sha512_finish(u8 *hash, ucl_sha512_ctx_t *context); void sha512_stone(u64 hash[8], u64 stone[16]); int ucl_hmac_sha512(u8 *mac, u32 mac_byteLen, u8 *message, u32 message_byteLen, - u8 *key, u32 key_byteLen); + u8 *key, u32 key_byteLen); int ucl_hmac_sha512_init(ucl_sha512_ctx_t *context , u8 *key, u32 key_byteLen); int ucl_hmac_sha512_core(ucl_sha512_ctx_t *context, u8 *data, u32 byteLen); int ucl_hmac_sha512_finish(u8 *mac, u32 mac_byteLen, ucl_sha512_ctx_t *context, @@ -199,5 +216,5 @@ int ucl_hmac_sha512_finish(u8 *mac, u32 mac_byteLen, ucl_sha512_ctx_t *context, } #endif /* __cplusplus */ -#endif +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_SHA512_H_ diff --git a/Libraries/FCL/include/ucl/ucl_sia256.h b/Libraries/FCL/include/ucl/ucl_sia256.h index 238bc4235dd..474e14cbeab 100644 --- a/Libraries/FCL/include/ucl/ucl_sia256.h +++ b/Libraries/FCL/include/ucl/ucl_sia256.h @@ -27,9 +27,11 @@ * Purpose : SIA256 * *==========================================================================*/ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_SIA256_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_SIA256_H_ + #ifndef PROFILE_2 -#ifndef _UCL_SIA256_H_ -#define _UCL_SIA256_H_ #ifdef __cplusplus extern "C" { @@ -130,7 +132,7 @@ int __API__ ucl_sia256(u8 *hash, u8 *data, u32 data_byteLen); /** SIA256 Init. * The initialisation of SIA256. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @return Error code * @@ -146,7 +148,7 @@ int __API__ ucl_sia256_init(ucl_sia256_ctx_t *context); /** SIA256 Core. * The core of SIA256. * - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * @param[in] data Pointer to the data * @param[in] data_byteLen Data byte length * @@ -171,7 +173,7 @@ int __API__ ucl_sia256_core(ucl_sia256_ctx_t *context, u8 *data, * @pre Hash byte length is equal to 32 * * @param[out] hash Pointer to the digest - * @param[in,out] context Pointer to the context + * @param[in, out] context Pointer to the context * * @warning #ucl_sia256_init and #ucl_sia256_core must be processed before. * @@ -188,7 +190,8 @@ int __API__ ucl_sia256_finish(u8 *hash, ucl_sia256_ctx_t *context); #ifdef __cplusplus } -#endif /* _ cplusplus */ +#endif /* __cplusplus__ */ -#endif /* _UCL_SIA256_H_ */ #endif//PROFILE2 + +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_SIA256_H_ diff --git a/Libraries/FCL/include/ucl/ucl_sys.h b/Libraries/FCL/include/ucl/ucl_sys.h index 5886034cad9..4d6293d7e2c 100644 --- a/Libraries/FCL/include/ucl/ucl_sys.h +++ b/Libraries/FCL/include/ucl/ucl_sys.h @@ -1,14 +1,29 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + * + * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -32,7 +47,10 @@ * ownership rights. * ******************************************************************************/ -#ifndef _UCL_SYS_H_ -#define _UCL_SYS_H_ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_SYS_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_SYS_H_ + int ucl_init(void); -#endif /* _UCL_SYS_H_ */ + +#endif // LIBRARIES_FCL_INCLUDE_UCL_SYS_H_ diff --git a/Libraries/FCL/include/ucl/ucl_types.h b/Libraries/FCL/include/ucl/ucl_types.h index e51e1cc5324..45be5930e52 100644 --- a/Libraries/FCL/include/ucl/ucl_types.h +++ b/Libraries/FCL/include/ucl/ucl_types.h @@ -1,14 +1,29 @@ /****************************************************************************** - * Copyright (C) 2023 Maxim Integrated Products, Inc., All rights Reserved. - * - * This software is protected by copyright laws of the United States and - * of foreign countries. This material may also be protected by patent laws - * and technology transfer regulations of the United States and of foreign - * countries. This software is furnished under a license agreement and/or a - * nondisclosure agreement and may only be used or reproduced in accordance - * with the terms of those agreements. Dissemination of this information to - * any party or parties not specified in the license agreement and/or - * nondisclosure agreement is expressly prohibited. + * + * Copyright 2023 Analog Devices, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + * + * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. @@ -32,11 +47,13 @@ * ownership rights. * ******************************************************************************/ -#ifndef UCL_TYPE_H_ -#define UCL_TYPE_H_ + +#ifndef LIBRARIES_FCL_INCLUDE_UCL_UCL_TYPE_H_ +#define LIBRARIES_FCL_INCLUDE_UCL_UCL_TYPE_H_ + typedef unsigned int u32; typedef unsigned short u16; typedef unsigned char u8; typedef unsigned long long u64; -#endif /* UCL_TYPE_H_ */ +#endif // LIBRARIES_FCL_INCLUDE_UCL_UCL_TYPE_H_ diff --git a/Libraries/FCL/libfcl.mk b/Libraries/FCL/libfcl.mk index fe2c5ccff9d..c47d3b1933f 100644 --- a/Libraries/FCL/libfcl.mk +++ b/Libraries/FCL/libfcl.mk @@ -73,8 +73,8 @@ ifeq "$(TARGET)" "" $(error TARGET must be specified) endif -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) +TARGET_UC := $(subst m, M, $(subst a, A, $(subst x, X, $(TARGET)))) +TARGET_LC := $(subst M, m, $(subst A, a, $(subst X, x, $(TARGET)))) $(info $(TARGET_UC)) diff --git a/Libraries/FCL/readme.txt b/Libraries/FCL/readme.txt index 7c504323847..caf83eb6205 100644 --- a/Libraries/FCL/readme.txt +++ b/Libraries/FCL/readme.txt @@ -12,6 +12,6 @@ On a x86-cygwin PC, just run build_fcl_x86_external release notes 1.0.0: initial release 1.0.1: p192 initializers size corrected; hash functions number updated -1.1.0: sha-3 (sha-224,sha-256,sha-384, sha-512) has been added +1.1.0: sha-3 (sha-224, sha-256, sha-384, sha-512) has been added 1.2.0: secp384r1, secp521r1, bp256r1, bp384r1, bp512r1 curves added; sha384 and sha512 added -1.2.1: AES (128,192, 256) in ECB, CBC modes and AES-CBC-MAC added +1.2.1: AES (128, 192, 256) in ECB, CBC modes and AES-CBC-MAC added diff --git a/Libraries/FCL/src/aes.c b/Libraries/FCL/src/aes.c index d582c59ef18..a9fd882b03f 100644 --- a/Libraries/FCL/src/aes.c +++ b/Libraries/FCL/src/aes.c @@ -25,50 +25,50 @@ /****************************************************************************** /****************************************************************************** * - * Copyright 2023 Analog Devices, Inc. + * Copyright 2023 Analog Devices,Inc. * - * Licensed under the Apache License, Version 2.0 (the "License"); + * Licensed under the Apache License,Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software + * Unless required by applicable law or agreed to in writing,software * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** * - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * Copyright (C) 2023 Maxim Integrated Products,Inc.,All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a + * Permission is hereby granted,free of charge,to any person obtaining a * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: + * to deal in the Software without restriction,including without limitation + * the rights to use,copy,modify,merge,publish,distribute,sublicense, + * and/or sell copies of the Software,and to permit persons to whom the + * Software is furnished to do so,subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * THE SOFTWARE IS PROVIDED "AS IS",WITHOUT WARRANTY OF ANY KIND,EXPRESS + * OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM,DAMAGES + * OR OTHER LIABILITY,WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE, + * ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. + * Except as contained in this notice,the name of Maxim Integrated + * Products,Inc. shall not be used except as stated in the Maxim Integrated + * Products,Inc. Branding Policy. * * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all + * of trade secrets,proprietary technology,copyrights,patents, + * trademarks,maskwork rights,or any other form of intellectual + * property whatsoever. Maxim Integrated Products,Inc. retains all * ownership rights. * ******************************************************************************/ @@ -89,90 +89,90 @@ #endif static const u32 Te0[256] = { - 0xc66363a5U, 0xf87c7c84U, 0xee777799U, 0xf67b7b8dU, 0xfff2f20dU, 0xd66b6bbdU, 0xde6f6fb1U, 0x91c5c554U, 0x60303050U, 0x02010103U, 0xce6767a9U, 0x562b2b7dU, - 0xe7fefe19U, 0xb5d7d762U, 0x4dababe6U, 0xec76769aU, 0x8fcaca45U, 0x1f82829dU, 0x89c9c940U, 0xfa7d7d87U, 0xeffafa15U, 0xb25959ebU, 0x8e4747c9U, 0xfbf0f00bU, - 0x41adadecU, 0xb3d4d467U, 0x5fa2a2fdU, 0x45afafeaU, 0x239c9cbfU, 0x53a4a4f7U, 0xe4727296U, 0x9bc0c05bU, 0x75b7b7c2U, 0xe1fdfd1cU, 0x3d9393aeU, 0x4c26266aU, - 0x6c36365aU, 0x7e3f3f41U, 0xf5f7f702U, 0x83cccc4fU, 0x6834345cU, 0x51a5a5f4U, 0xd1e5e534U, 0xf9f1f108U, 0xe2717193U, 0xabd8d873U, 0x62313153U, 0x2a15153fU, - 0x0804040cU, 0x95c7c752U, 0x46232365U, 0x9dc3c35eU, 0x30181828U, 0x379696a1U, 0x0a05050fU, 0x2f9a9ab5U, 0x0e070709U, 0x24121236U, 0x1b80809bU, 0xdfe2e23dU, - 0xcdebeb26U, 0x4e272769U, 0x7fb2b2cdU, 0xea75759fU, 0x1209091bU, 0x1d83839eU, 0x582c2c74U, 0x341a1a2eU, 0x361b1b2dU, 0xdc6e6eb2U, 0xb45a5aeeU, 0x5ba0a0fbU, - 0xa45252f6U, 0x763b3b4dU, 0xb7d6d661U, 0x7db3b3ceU, 0x5229297bU, 0xdde3e33eU, 0x5e2f2f71U, 0x13848497U, 0xa65353f5U, 0xb9d1d168U, 0x00000000U, 0xc1eded2cU, - 0x40202060U, 0xe3fcfc1fU, 0x79b1b1c8U, 0xb65b5bedU, 0xd46a6abeU, 0x8dcbcb46U, 0x67bebed9U, 0x7239394bU, 0x944a4adeU, 0x984c4cd4U, 0xb05858e8U, 0x85cfcf4aU, - 0xbbd0d06bU, 0xc5efef2aU, 0x4faaaae5U, 0xedfbfb16U, 0x864343c5U, 0x9a4d4dd7U, 0x66333355U, 0x11858594U, 0x8a4545cfU, 0xe9f9f910U, 0x04020206U, 0xfe7f7f81U, - 0xa05050f0U, 0x783c3c44U, 0x259f9fbaU, 0x4ba8a8e3U, 0xa25151f3U, 0x5da3a3feU, 0x804040c0U, 0x058f8f8aU, 0x3f9292adU, 0x219d9dbcU, 0x70383848U, 0xf1f5f504U, - 0x63bcbcdfU, 0x77b6b6c1U, 0xafdada75U, 0x42212163U, 0x20101030U, 0xe5ffff1aU, 0xfdf3f30eU, 0xbfd2d26dU, 0x81cdcd4cU, 0x180c0c14U, 0x26131335U, 0xc3ecec2fU, - 0xbe5f5fe1U, 0x359797a2U, 0x884444ccU, 0x2e171739U, 0x93c4c457U, 0x55a7a7f2U, 0xfc7e7e82U, 0x7a3d3d47U, 0xc86464acU, 0xba5d5de7U, 0x3219192bU, 0xe6737395U, - 0xc06060a0U, 0x19818198U, 0x9e4f4fd1U, 0xa3dcdc7fU, 0x44222266U, 0x542a2a7eU, 0x3b9090abU, 0x0b888883U, 0x8c4646caU, 0xc7eeee29U, 0x6bb8b8d3U, 0x2814143cU, - 0xa7dede79U, 0xbc5e5ee2U, 0x160b0b1dU, 0xaddbdb76U, 0xdbe0e03bU, 0x64323256U, 0x743a3a4eU, 0x140a0a1eU, 0x924949dbU, 0x0c06060aU, 0x4824246cU, 0xb85c5ce4U, - 0x9fc2c25dU, 0xbdd3d36eU, 0x43acacefU, 0xc46262a6U, 0x399191a8U, 0x319595a4U, 0xd3e4e437U, 0xf279798bU, 0xd5e7e732U, 0x8bc8c843U, 0x6e373759U, 0xda6d6db7U, - 0x018d8d8cU, 0xb1d5d564U, 0x9c4e4ed2U, 0x49a9a9e0U, 0xd86c6cb4U, 0xac5656faU, 0xf3f4f407U, 0xcfeaea25U, 0xca6565afU, 0xf47a7a8eU, 0x47aeaee9U, 0x10080818U, - 0x6fbabad5U, 0xf0787888U, 0x4a25256fU, 0x5c2e2e72U, 0x381c1c24U, 0x57a6a6f1U, 0x73b4b4c7U, 0x97c6c651U, 0xcbe8e823U, 0xa1dddd7cU, 0xe874749cU, 0x3e1f1f21U, - 0x964b4bddU, 0x61bdbddcU, 0x0d8b8b86U, 0x0f8a8a85U, 0xe0707090U, 0x7c3e3e42U, 0x71b5b5c4U, 0xcc6666aaU, 0x904848d8U, 0x06030305U, 0xf7f6f601U, 0x1c0e0e12U, - 0xc26161a3U, 0x6a35355fU, 0xae5757f9U, 0x69b9b9d0U, 0x17868691U, 0x99c1c158U, 0x3a1d1d27U, 0x279e9eb9U, 0xd9e1e138U, 0xebf8f813U, 0x2b9898b3U, 0x22111133U, - 0xd26969bbU, 0xa9d9d970U, 0x078e8e89U, 0x339494a7U, 0x2d9b9bb6U, 0x3c1e1e22U, 0x15878792U, 0xc9e9e920U, 0x87cece49U, 0xaa5555ffU, 0x50282878U, 0xa5dfdf7aU, - 0x038c8c8fU, 0x59a1a1f8U, 0x09898980U, 0x1a0d0d17U, 0x65bfbfdaU, 0xd7e6e631U, 0x844242c6U, 0xd06868b8U, 0x824141c3U, 0x299999b0U, 0x5a2d2d77U, 0x1e0f0f11U, - 0x7bb0b0cbU, 0xa85454fcU, 0x6dbbbbd6U, 0x2c16163aU + 0xc66363a5U,0xf87c7c84U,0xee777799U,0xf67b7b8dU,0xfff2f20dU,0xd66b6bbdU,0xde6f6fb1U,0x91c5c554U,0x60303050U,0x02010103U,0xce6767a9U,0x562b2b7dU, + 0xe7fefe19U,0xb5d7d762U,0x4dababe6U,0xec76769aU,0x8fcaca45U,0x1f82829dU,0x89c9c940U,0xfa7d7d87U,0xeffafa15U,0xb25959ebU,0x8e4747c9U,0xfbf0f00bU, + 0x41adadecU,0xb3d4d467U,0x5fa2a2fdU,0x45afafeaU,0x239c9cbfU,0x53a4a4f7U,0xe4727296U,0x9bc0c05bU,0x75b7b7c2U,0xe1fdfd1cU,0x3d9393aeU,0x4c26266aU, + 0x6c36365aU,0x7e3f3f41U,0xf5f7f702U,0x83cccc4fU,0x6834345cU,0x51a5a5f4U,0xd1e5e534U,0xf9f1f108U,0xe2717193U,0xabd8d873U,0x62313153U,0x2a15153fU, + 0x0804040cU,0x95c7c752U,0x46232365U,0x9dc3c35eU,0x30181828U,0x379696a1U,0x0a05050fU,0x2f9a9ab5U,0x0e070709U,0x24121236U,0x1b80809bU,0xdfe2e23dU, + 0xcdebeb26U,0x4e272769U,0x7fb2b2cdU,0xea75759fU,0x1209091bU,0x1d83839eU,0x582c2c74U,0x341a1a2eU,0x361b1b2dU,0xdc6e6eb2U,0xb45a5aeeU,0x5ba0a0fbU, + 0xa45252f6U,0x763b3b4dU,0xb7d6d661U,0x7db3b3ceU,0x5229297bU,0xdde3e33eU,0x5e2f2f71U,0x13848497U,0xa65353f5U,0xb9d1d168U,0x00000000U,0xc1eded2cU, + 0x40202060U,0xe3fcfc1fU,0x79b1b1c8U,0xb65b5bedU,0xd46a6abeU,0x8dcbcb46U,0x67bebed9U,0x7239394bU,0x944a4adeU,0x984c4cd4U,0xb05858e8U,0x85cfcf4aU, + 0xbbd0d06bU,0xc5efef2aU,0x4faaaae5U,0xedfbfb16U,0x864343c5U,0x9a4d4dd7U,0x66333355U,0x11858594U,0x8a4545cfU,0xe9f9f910U,0x04020206U,0xfe7f7f81U, + 0xa05050f0U,0x783c3c44U,0x259f9fbaU,0x4ba8a8e3U,0xa25151f3U,0x5da3a3feU,0x804040c0U,0x058f8f8aU,0x3f9292adU,0x219d9dbcU,0x70383848U,0xf1f5f504U, + 0x63bcbcdfU,0x77b6b6c1U,0xafdada75U,0x42212163U,0x20101030U,0xe5ffff1aU,0xfdf3f30eU,0xbfd2d26dU,0x81cdcd4cU,0x180c0c14U,0x26131335U,0xc3ecec2fU, + 0xbe5f5fe1U,0x359797a2U,0x884444ccU,0x2e171739U,0x93c4c457U,0x55a7a7f2U,0xfc7e7e82U,0x7a3d3d47U,0xc86464acU,0xba5d5de7U,0x3219192bU,0xe6737395U, + 0xc06060a0U,0x19818198U,0x9e4f4fd1U,0xa3dcdc7fU,0x44222266U,0x542a2a7eU,0x3b9090abU,0x0b888883U,0x8c4646caU,0xc7eeee29U,0x6bb8b8d3U,0x2814143cU, + 0xa7dede79U,0xbc5e5ee2U,0x160b0b1dU,0xaddbdb76U,0xdbe0e03bU,0x64323256U,0x743a3a4eU,0x140a0a1eU,0x924949dbU,0x0c06060aU,0x4824246cU,0xb85c5ce4U, + 0x9fc2c25dU,0xbdd3d36eU,0x43acacefU,0xc46262a6U,0x399191a8U,0x319595a4U,0xd3e4e437U,0xf279798bU,0xd5e7e732U,0x8bc8c843U,0x6e373759U,0xda6d6db7U, + 0x018d8d8cU,0xb1d5d564U,0x9c4e4ed2U,0x49a9a9e0U,0xd86c6cb4U,0xac5656faU,0xf3f4f407U,0xcfeaea25U,0xca6565afU,0xf47a7a8eU,0x47aeaee9U,0x10080818U, + 0x6fbabad5U,0xf0787888U,0x4a25256fU,0x5c2e2e72U,0x381c1c24U,0x57a6a6f1U,0x73b4b4c7U,0x97c6c651U,0xcbe8e823U,0xa1dddd7cU,0xe874749cU,0x3e1f1f21U, + 0x964b4bddU,0x61bdbddcU,0x0d8b8b86U,0x0f8a8a85U,0xe0707090U,0x7c3e3e42U,0x71b5b5c4U,0xcc6666aaU,0x904848d8U,0x06030305U,0xf7f6f601U,0x1c0e0e12U, + 0xc26161a3U,0x6a35355fU,0xae5757f9U,0x69b9b9d0U,0x17868691U,0x99c1c158U,0x3a1d1d27U,0x279e9eb9U,0xd9e1e138U,0xebf8f813U,0x2b9898b3U,0x22111133U, + 0xd26969bbU,0xa9d9d970U,0x078e8e89U,0x339494a7U,0x2d9b9bb6U,0x3c1e1e22U,0x15878792U,0xc9e9e920U,0x87cece49U,0xaa5555ffU,0x50282878U,0xa5dfdf7aU, + 0x038c8c8fU,0x59a1a1f8U,0x09898980U,0x1a0d0d17U,0x65bfbfdaU,0xd7e6e631U,0x844242c6U,0xd06868b8U,0x824141c3U,0x299999b0U,0x5a2d2d77U,0x1e0f0f11U, + 0x7bb0b0cbU,0xa85454fcU,0x6dbbbbd6U,0x2c16163aU }; static const u8 te4[256] = { - 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, - 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, - 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, - 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, - 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, - 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, - 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, - 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, - 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, - 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, - 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, - 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, - 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, - 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, - 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, - 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, - 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16 + 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5, + 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76,0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0, + 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0,0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc, + 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15,0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a, + 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75,0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0, + 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84,0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b, + 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf,0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85, + 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8,0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5, + 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2,0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17, + 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73,0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88, + 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb,0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c, + 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79,0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9, + 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08,0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6, + 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a,0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e, + 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e,0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94, + 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf,0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68, + 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 }; static const u32 Td0[256] = { - 0x51f4a750U, 0x7e416553U, 0x1a17a4c3U, 0x3a275e96U, - 0x3bab6bcbU, 0x1f9d45f1U, 0xacfa58abU, 0x4be30393U, 0x2030fa55U, 0xad766df6U, 0x88cc7691U, 0xf5024c25U, 0x4fe5d7fcU, 0xc52acbd7U, 0x26354480U, 0xb562a38fU, - 0xdeb15a49U, 0x25ba1b67U, 0x45ea0e98U, 0x5dfec0e1U, 0xc32f7502U, 0x814cf012U, 0x8d4697a3U, 0x6bd3f9c6U, 0x038f5fe7U, 0x15929c95U, 0xbf6d7aebU, 0x955259daU, - 0xd4be832dU, 0x587421d3U, 0x49e06929U, 0x8ec9c844U, 0x75c2896aU, 0xf48e7978U, 0x99583e6bU, 0x27b971ddU, 0xbee14fb6U, 0xf088ad17U, 0xc920ac66U, 0x7dce3ab4U, - 0x63df4a18U, 0xe51a3182U, 0x97513360U, 0x62537f45U, 0xb16477e0U, 0xbb6bae84U, 0xfe81a01cU, 0xf9082b94U, 0x70486858U, 0x8f45fd19U, 0x94de6c87U, 0x527bf8b7U, - 0xab73d323U, 0x724b02e2U, 0xe31f8f57U, 0x6655ab2aU, 0xb2eb2807U, 0x2fb5c203U, 0x86c57b9aU, 0xd33708a5U, 0x302887f2U, 0x23bfa5b2U, 0x02036abaU, 0xed16825cU, - 0x8acf1c2bU, 0xa779b492U, 0xf307f2f0U, 0x4e69e2a1U, 0x65daf4cdU, 0x0605bed5U, 0xd134621fU, 0xc4a6fe8aU, 0x342e539dU, 0xa2f355a0U, 0x058ae132U, 0xa4f6eb75U, - 0x0b83ec39U, 0x4060efaaU, 0x5e719f06U, 0xbd6e1051U, 0x3e218af9U, 0x96dd063dU, 0xdd3e05aeU, 0x4de6bd46U, 0x91548db5U, 0x71c45d05U, 0x0406d46fU, 0x605015ffU, - 0x1998fb24U, 0xd6bde997U, 0x894043ccU, 0x67d99e77U, 0xb0e842bdU, 0x07898b88U, 0xe7195b38U, 0x79c8eedbU, 0xa17c0a47U, 0x7c420fe9U, 0xf8841ec9U, 0x00000000U, - 0x09808683U, 0x322bed48U, 0x1e1170acU, 0x6c5a724eU, 0xfd0efffbU, 0x0f853856U, 0x3daed51eU, 0x362d3927U, 0x0a0fd964U, 0x685ca621U, 0x9b5b54d1U, 0x24362e3aU, - 0x0c0a67b1U, 0x9357e70fU, 0xb4ee96d2U, 0x1b9b919eU, 0x80c0c54fU, 0x61dc20a2U, 0x5a774b69U, 0x1c121a16U, 0xe293ba0aU, 0xc0a02ae5U, 0x3c22e043U, 0x121b171dU, - 0x0e090d0bU, 0xf28bc7adU, 0x2db6a8b9U, 0x141ea9c8U, 0x57f11985U, 0xaf75074cU, 0xee99ddbbU, 0xa37f60fdU, 0xf701269fU, 0x5c72f5bcU, 0x44663bc5U, 0x5bfb7e34U, - 0x8b432976U, 0xcb23c6dcU, 0xb6edfc68U, 0xb8e4f163U, 0xd731dccaU, 0x42638510U, 0x13972240U, 0x84c61120U, 0x854a247dU, 0xd2bb3df8U, 0xaef93211U, 0xc729a16dU, - 0x1d9e2f4bU, 0xdcb230f3U, 0x0d8652ecU, 0x77c1e3d0U, 0x2bb3166cU, 0xa970b999U, 0x119448faU, 0x47e96422U, 0xa8fc8cc4U, 0xa0f03f1aU, 0x567d2cd8U, 0x223390efU, - 0x87494ec7U, 0xd938d1c1U, 0x8ccaa2feU, 0x98d40b36U, 0xa6f581cfU, 0xa57ade28U, 0xdab78e26U, 0x3fadbfa4U, 0x2c3a9de4U, 0x5078920dU, 0x6a5fcc9bU, 0x547e4662U, - 0xf68d13c2U, 0x90d8b8e8U, 0x2e39f75eU, 0x82c3aff5U, 0x9f5d80beU, 0x69d0937cU, 0x6fd52da9U, 0xcf2512b3U, 0xc8ac993bU, 0x10187da7U, 0xe89c636eU, 0xdb3bbb7bU, - 0xcd267809U, 0x6e5918f4U, 0xec9ab701U, 0x834f9aa8U, 0xe6956e65U, 0xaaffe67eU, 0x21bccf08U, 0xef15e8e6U, 0xbae79bd9U, 0x4a6f36ceU, 0xea9f09d4U, 0x29b07cd6U, - 0x31a4b2afU, 0x2a3f2331U, 0xc6a59430U, 0x35a266c0U, 0x744ebc37U, 0xfc82caa6U, 0xe090d0b0U, 0x33a7d815U, 0xf104984aU, 0x41ecdaf7U, 0x7fcd500eU, 0x1791f62fU, - 0x764dd68dU, 0x43efb04dU, 0xccaa4d54U, 0xe49604dfU, 0x9ed1b5e3U, 0x4c6a881bU, 0xc12c1fb8U, 0x4665517fU, 0x9d5eea04U, 0x018c355dU, 0xfa877473U, 0xfb0b412eU, - 0xb3671d5aU, 0x92dbd252U, 0xe9105633U, 0x6dd64713U, 0x9ad7618cU, 0x37a10c7aU, 0x59f8148eU, 0xeb133c89U, 0xcea927eeU, 0xb761c935U, 0xe11ce5edU, 0x7a47b13cU, - 0x9cd2df59U, 0x55f2733fU, 0x1814ce79U, 0x73c737bfU, 0x53f7cdeaU, 0x5ffdaa5bU, 0xdf3d6f14U, 0x7844db86U, 0xcaaff381U, 0xb968c43eU, 0x3824342cU, 0xc2a3405fU, - 0x161dc372U, 0xbce2250cU, 0x283c498bU, 0xff0d9541U, 0x39a80171U, 0x080cb3deU, 0xd8b4e49cU, 0x6456c190U, 0x7bcb8461U, 0xd532b670U, 0x486c5c74U, 0xd0b85742U + 0x51f4a750U,0x7e416553U,0x1a17a4c3U,0x3a275e96U, + 0x3bab6bcbU,0x1f9d45f1U,0xacfa58abU,0x4be30393U,0x2030fa55U,0xad766df6U,0x88cc7691U,0xf5024c25U,0x4fe5d7fcU,0xc52acbd7U,0x26354480U,0xb562a38fU, + 0xdeb15a49U,0x25ba1b67U,0x45ea0e98U,0x5dfec0e1U,0xc32f7502U,0x814cf012U,0x8d4697a3U,0x6bd3f9c6U,0x038f5fe7U,0x15929c95U,0xbf6d7aebU,0x955259daU, + 0xd4be832dU,0x587421d3U,0x49e06929U,0x8ec9c844U,0x75c2896aU,0xf48e7978U,0x99583e6bU,0x27b971ddU,0xbee14fb6U,0xf088ad17U,0xc920ac66U,0x7dce3ab4U, + 0x63df4a18U,0xe51a3182U,0x97513360U,0x62537f45U,0xb16477e0U,0xbb6bae84U,0xfe81a01cU,0xf9082b94U,0x70486858U,0x8f45fd19U,0x94de6c87U,0x527bf8b7U, + 0xab73d323U,0x724b02e2U,0xe31f8f57U,0x6655ab2aU,0xb2eb2807U,0x2fb5c203U,0x86c57b9aU,0xd33708a5U,0x302887f2U,0x23bfa5b2U,0x02036abaU,0xed16825cU, + 0x8acf1c2bU,0xa779b492U,0xf307f2f0U,0x4e69e2a1U,0x65daf4cdU,0x0605bed5U,0xd134621fU,0xc4a6fe8aU,0x342e539dU,0xa2f355a0U,0x058ae132U,0xa4f6eb75U, + 0x0b83ec39U,0x4060efaaU,0x5e719f06U,0xbd6e1051U,0x3e218af9U,0x96dd063dU,0xdd3e05aeU,0x4de6bd46U,0x91548db5U,0x71c45d05U,0x0406d46fU,0x605015ffU, + 0x1998fb24U,0xd6bde997U,0x894043ccU,0x67d99e77U,0xb0e842bdU,0x07898b88U,0xe7195b38U,0x79c8eedbU,0xa17c0a47U,0x7c420fe9U,0xf8841ec9U,0x00000000U, + 0x09808683U,0x322bed48U,0x1e1170acU,0x6c5a724eU,0xfd0efffbU,0x0f853856U,0x3daed51eU,0x362d3927U,0x0a0fd964U,0x685ca621U,0x9b5b54d1U,0x24362e3aU, + 0x0c0a67b1U,0x9357e70fU,0xb4ee96d2U,0x1b9b919eU,0x80c0c54fU,0x61dc20a2U,0x5a774b69U,0x1c121a16U,0xe293ba0aU,0xc0a02ae5U,0x3c22e043U,0x121b171dU, + 0x0e090d0bU,0xf28bc7adU,0x2db6a8b9U,0x141ea9c8U,0x57f11985U,0xaf75074cU,0xee99ddbbU,0xa37f60fdU,0xf701269fU,0x5c72f5bcU,0x44663bc5U,0x5bfb7e34U, + 0x8b432976U,0xcb23c6dcU,0xb6edfc68U,0xb8e4f163U,0xd731dccaU,0x42638510U,0x13972240U,0x84c61120U,0x854a247dU,0xd2bb3df8U,0xaef93211U,0xc729a16dU, + 0x1d9e2f4bU,0xdcb230f3U,0x0d8652ecU,0x77c1e3d0U,0x2bb3166cU,0xa970b999U,0x119448faU,0x47e96422U,0xa8fc8cc4U,0xa0f03f1aU,0x567d2cd8U,0x223390efU, + 0x87494ec7U,0xd938d1c1U,0x8ccaa2feU,0x98d40b36U,0xa6f581cfU,0xa57ade28U,0xdab78e26U,0x3fadbfa4U,0x2c3a9de4U,0x5078920dU,0x6a5fcc9bU,0x547e4662U, + 0xf68d13c2U,0x90d8b8e8U,0x2e39f75eU,0x82c3aff5U,0x9f5d80beU,0x69d0937cU,0x6fd52da9U,0xcf2512b3U,0xc8ac993bU,0x10187da7U,0xe89c636eU,0xdb3bbb7bU, + 0xcd267809U,0x6e5918f4U,0xec9ab701U,0x834f9aa8U,0xe6956e65U,0xaaffe67eU,0x21bccf08U,0xef15e8e6U,0xbae79bd9U,0x4a6f36ceU,0xea9f09d4U,0x29b07cd6U, + 0x31a4b2afU,0x2a3f2331U,0xc6a59430U,0x35a266c0U,0x744ebc37U,0xfc82caa6U,0xe090d0b0U,0x33a7d815U,0xf104984aU,0x41ecdaf7U,0x7fcd500eU,0x1791f62fU, + 0x764dd68dU,0x43efb04dU,0xccaa4d54U,0xe49604dfU,0x9ed1b5e3U,0x4c6a881bU,0xc12c1fb8U,0x4665517fU,0x9d5eea04U,0x018c355dU,0xfa877473U,0xfb0b412eU, + 0xb3671d5aU,0x92dbd252U,0xe9105633U,0x6dd64713U,0x9ad7618cU,0x37a10c7aU,0x59f8148eU,0xeb133c89U,0xcea927eeU,0xb761c935U,0xe11ce5edU,0x7a47b13cU, + 0x9cd2df59U,0x55f2733fU,0x1814ce79U,0x73c737bfU,0x53f7cdeaU,0x5ffdaa5bU,0xdf3d6f14U,0x7844db86U,0xcaaff381U,0xb968c43eU,0x3824342cU,0xc2a3405fU, + 0x161dc372U,0xbce2250cU,0x283c498bU,0xff0d9541U,0x39a80171U,0x080cb3deU,0xd8b4e49cU,0x6456c190U,0x7bcb8461U,0xd532b670U,0x486c5c74U,0xd0b85742U }; static const u8 ti4[256] = { - 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, - 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, - 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, - 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, - 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, - 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, - 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, - 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, - 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, - 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, - 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d + 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38,0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb, + 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87,0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb,0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d, + 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e,0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2,0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25, + 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16,0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92,0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda, + 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84,0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a,0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06, + 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02,0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b,0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea, + 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73,0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85,0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e, + 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89,0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b,0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20, + 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4,0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31,0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f, + 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d,0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef,0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0, + 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61,0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26,0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d }; -static const u32 rcon[] = {0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000, 0x20000000, 0x40000000, 0x80000000, 0x1B000000, 0x36000000}; +static const u32 rcon[] = {0x01000000,0x02000000,0x04000000,0x08000000,0x10000000,0x20000000,0x40000000,0x80000000,0x1B000000,0x36000000}; #define MACRO_ROTR(a,b) ((a) >> ((b)*8)| (a) << (32-((b)*8))) #define MACRO_ROTL(a,b) ((a) << ((b)*8)| (a) >> (32-((b)*8))) @@ -298,10 +298,10 @@ int aes_set_dkey(AES_KEY *key,const u8 *userKey,const int len) for (i = 1; i < (key->rounds); i++) { rk += 4; - rk[0] = Td0[te4[(rk[0] >> 24)]] ^ MACRO_ROTR(Td0[te4[(rk[0] >> 16) & 0xff]], 1) ^ MACRO_ROTR(Td0[te4[(rk[0] >> 8) & 0xff]], 2) ^ MACRO_ROTR(Td0[te4[(rk[0]) & 0xff]], 3); - rk[1] = Td0[te4[(rk[1] >> 24)]] ^ MACRO_ROTR(Td0[te4[(rk[1] >> 16) & 0xff]], 1) ^ MACRO_ROTR(Td0[te4[(rk[1] >> 8) & 0xff]], 2) ^ MACRO_ROTR(Td0[te4[(rk[1]) & 0xff]], 3); - rk[2] = Td0[te4[(rk[2] >> 24)]] ^ MACRO_ROTR(Td0[te4[(rk[2] >> 16) & 0xff]], 1) ^ MACRO_ROTR(Td0[te4[(rk[2] >> 8) & 0xff]], 2) ^ MACRO_ROTR(Td0[te4[(rk[2]) & 0xff]], 3); - rk[3] = Td0[te4[(rk[3] >> 24)]] ^ MACRO_ROTR(Td0[te4[(rk[3] >> 16) & 0xff]], 1) ^ MACRO_ROTR(Td0[te4[(rk[3] >> 8) & 0xff]], 2) ^ MACRO_ROTR(Td0[te4[(rk[3]) & 0xff]], 3); + rk[0] = Td0[te4[(rk[0] >> 24)]] ^ MACRO_ROTR(Td0[te4[(rk[0] >> 16) & 0xff]],1) ^ MACRO_ROTR(Td0[te4[(rk[0] >> 8) & 0xff]],2) ^ MACRO_ROTR(Td0[te4[(rk[0]) & 0xff]],3); + rk[1] = Td0[te4[(rk[1] >> 24)]] ^ MACRO_ROTR(Td0[te4[(rk[1] >> 16) & 0xff]],1) ^ MACRO_ROTR(Td0[te4[(rk[1] >> 8) & 0xff]],2) ^ MACRO_ROTR(Td0[te4[(rk[1]) & 0xff]],3); + rk[2] = Td0[te4[(rk[2] >> 24)]] ^ MACRO_ROTR(Td0[te4[(rk[2] >> 16) & 0xff]],1) ^ MACRO_ROTR(Td0[te4[(rk[2] >> 8) & 0xff]],2) ^ MACRO_ROTR(Td0[te4[(rk[2]) & 0xff]],3); + rk[3] = Td0[te4[(rk[3] >> 24)]] ^ MACRO_ROTR(Td0[te4[(rk[3] >> 16) & 0xff]],1) ^ MACRO_ROTR(Td0[te4[(rk[3] >> 8) & 0xff]],2) ^ MACRO_ROTR(Td0[te4[(rk[3]) & 0xff]],3); } return 0; @@ -321,20 +321,20 @@ int aes_encrypt(u8 *out,const u8 *in,const AES_KEY *key) r = key->rounds >> 1; for (;;) { - t0 = Te0[(s0 >> 24)] ^ MACRO_ROTR(Te0[(s1 >> 16) & 0xff], 1) ^ MACRO_ROTR(Te0[(s2 >> 8) & 0xff], 2) ^ MACRO_ROTR(Te0[(s3) & 0xff], 3) ^ rk[4]; - t1 = Te0[(s1 >> 24)] ^ MACRO_ROTR(Te0[(s2 >> 16) & 0xff], 1) ^ MACRO_ROTR(Te0[(s3 >> 8) & 0xff], 2) ^ MACRO_ROTR(Te0[(s0) & 0xff], 3) ^ rk[5]; - t2 = Te0[(s2 >> 24)] ^ MACRO_ROTR(Te0[(s3 >> 16) & 0xff], 1) ^ MACRO_ROTR(Te0[(s0 >> 8) & 0xff], 2) ^ MACRO_ROTR(Te0[(s1) & 0xff], 3) ^ rk[6]; - t3 = Te0[(s3 >> 24)] ^ MACRO_ROTR(Te0[(s0 >> 16) & 0xff], 1) ^ MACRO_ROTR(Te0[(s1 >> 8) & 0xff], 2) ^ MACRO_ROTR(Te0[(s2) & 0xff], 3) ^ rk[7]; + t0 = Te0[(s0 >> 24)] ^ MACRO_ROTR(Te0[(s1 >> 16) & 0xff],1) ^ MACRO_ROTR(Te0[(s2 >> 8) & 0xff],2) ^ MACRO_ROTR(Te0[(s3) & 0xff],3) ^ rk[4]; + t1 = Te0[(s1 >> 24)] ^ MACRO_ROTR(Te0[(s2 >> 16) & 0xff],1) ^ MACRO_ROTR(Te0[(s3 >> 8) & 0xff],2) ^ MACRO_ROTR(Te0[(s0) & 0xff],3) ^ rk[5]; + t2 = Te0[(s2 >> 24)] ^ MACRO_ROTR(Te0[(s3 >> 16) & 0xff],1) ^ MACRO_ROTR(Te0[(s0 >> 8) & 0xff],2) ^ MACRO_ROTR(Te0[(s1) & 0xff],3) ^ rk[6]; + t3 = Te0[(s3 >> 24)] ^ MACRO_ROTR(Te0[(s0 >> 16) & 0xff],1) ^ MACRO_ROTR(Te0[(s1 >> 8) & 0xff],2) ^ MACRO_ROTR(Te0[(s2) & 0xff],3) ^ rk[7]; rk += 8; if (--r == 0) { break; } - s0 = Te0[(t0 >> 24)] ^ MACRO_ROTR(Te0[(t1 >> 16) & 0xff], 1) ^ MACRO_ROTR(Te0[(t2 >> 8) & 0xff], 2) ^ MACRO_ROTR(Te0[(t3) & 0xff], 3) ^ rk[0]; - s1 = Te0[(t1 >> 24)] ^ MACRO_ROTR(Te0[(t2 >> 16) & 0xff], 1) ^ MACRO_ROTR(Te0[(t3 >> 8) & 0xff], 2) ^ MACRO_ROTR(Te0[(t0) & 0xff], 3) ^ rk[1]; - s2 = Te0[(t2 >> 24)] ^ MACRO_ROTR(Te0[(t3 >> 16) & 0xff], 1) ^ MACRO_ROTR(Te0[(t0 >> 8) & 0xff], 2) ^ MACRO_ROTR(Te0[(t1) & 0xff], 3) ^ rk[2]; - s3 = Te0[(t3 >> 24)] ^ MACRO_ROTR(Te0[(t0 >> 16) & 0xff], 1) ^ MACRO_ROTR(Te0[(t1 >> 8) & 0xff], 2) ^ MACRO_ROTR(Te0[(t2) & 0xff], 3) ^ rk[3]; + s0 = Te0[(t0 >> 24)] ^ MACRO_ROTR(Te0[(t1 >> 16) & 0xff],1) ^ MACRO_ROTR(Te0[(t2 >> 8) & 0xff],2) ^ MACRO_ROTR(Te0[(t3) & 0xff],3) ^ rk[0]; + s1 = Te0[(t1 >> 24)] ^ MACRO_ROTR(Te0[(t2 >> 16) & 0xff],1) ^ MACRO_ROTR(Te0[(t3 >> 8) & 0xff],2) ^ MACRO_ROTR(Te0[(t0) & 0xff],3) ^ rk[1]; + s2 = Te0[(t2 >> 24)] ^ MACRO_ROTR(Te0[(t3 >> 16) & 0xff],1) ^ MACRO_ROTR(Te0[(t0 >> 8) & 0xff],2) ^ MACRO_ROTR(Te0[(t1) & 0xff],3) ^ rk[2]; + s3 = Te0[(t3 >> 24)] ^ MACRO_ROTR(Te0[(t0 >> 16) & 0xff],1) ^ MACRO_ROTR(Te0[(t1 >> 8) & 0xff],2) ^ MACRO_ROTR(Te0[(t2) & 0xff],3) ^ rk[3]; } s0 = ((u32)te4[(t0 >> 24)] << 24) ^ ((u32)te4[(t1 >> 16) & 0xff] << 16) ^ ((u32)te4[(t2 >> 8) & 0xff] << 8) ^ ((u32)te4[(t3) & 0xff]) ^ rk[0]; @@ -367,20 +367,20 @@ int aes_decrypt(u8 *out,const u8 *in,const AES_KEY *key) r = key->rounds >> 1; for (;;) { - t0 = Td0[(s0 >> 24)] ^ MACRO_ROTR(Td0[(s3 >> 16) & 0xff], 1) ^ MACRO_ROTR(Td0[(s2 >> 8) & 0xff], 2) ^ MACRO_ROTR(Td0[(s1) & 0xff], 3) ^ rk[4]; - t1 = Td0[(s1 >> 24)] ^ MACRO_ROTR(Td0[(s0 >> 16) & 0xff], 1) ^ MACRO_ROTR(Td0[(s3 >> 8) & 0xff], 2) ^ MACRO_ROTR(Td0[(s2) & 0xff], 3) ^ rk[5]; - t2 = Td0[(s2 >> 24)] ^ MACRO_ROTR(Td0[(s1 >> 16) & 0xff], 1) ^ MACRO_ROTR(Td0[(s0 >> 8) & 0xff], 2) ^ MACRO_ROTR(Td0[(s3) & 0xff], 3) ^ rk[6]; - t3 = Td0[(s3 >> 24)] ^ MACRO_ROTR(Td0[(s2 >> 16) & 0xff], 1) ^ MACRO_ROTR(Td0[(s1 >> 8) & 0xff], 2) ^ MACRO_ROTR(Td0[(s0) & 0xff], 3) ^ rk[7]; + t0 = Td0[(s0 >> 24)] ^ MACRO_ROTR(Td0[(s3 >> 16) & 0xff],1) ^ MACRO_ROTR(Td0[(s2 >> 8) & 0xff],2) ^ MACRO_ROTR(Td0[(s1) & 0xff],3) ^ rk[4]; + t1 = Td0[(s1 >> 24)] ^ MACRO_ROTR(Td0[(s0 >> 16) & 0xff],1) ^ MACRO_ROTR(Td0[(s3 >> 8) & 0xff],2) ^ MACRO_ROTR(Td0[(s2) & 0xff],3) ^ rk[5]; + t2 = Td0[(s2 >> 24)] ^ MACRO_ROTR(Td0[(s1 >> 16) & 0xff],1) ^ MACRO_ROTR(Td0[(s0 >> 8) & 0xff],2) ^ MACRO_ROTR(Td0[(s3) & 0xff],3) ^ rk[6]; + t3 = Td0[(s3 >> 24)] ^ MACRO_ROTR(Td0[(s2 >> 16) & 0xff],1) ^ MACRO_ROTR(Td0[(s1 >> 8) & 0xff],2) ^ MACRO_ROTR(Td0[(s0) & 0xff],3) ^ rk[7]; rk += 8; if (--r == 0) { break; } - s0 = Td0[(t0 >> 24)] ^ MACRO_ROTR(Td0[(t3 >> 16) & 0xff], 1) ^ MACRO_ROTR(Td0[(t2 >> 8) & 0xff], 2) ^ MACRO_ROTR(Td0[(t1) & 0xff], 3) ^ rk[0]; - s1 = Td0[(t1 >> 24)] ^ MACRO_ROTR(Td0[(t0 >> 16) & 0xff], 1) ^ MACRO_ROTR(Td0[(t3 >> 8) & 0xff], 2) ^ MACRO_ROTR(Td0[(t2) & 0xff], 3) ^ rk[1]; - s2 = Td0[(t2 >> 24)] ^ MACRO_ROTR(Td0[(t1 >> 16) & 0xff], 1) ^ MACRO_ROTR(Td0[(t0 >> 8) & 0xff], 2) ^ MACRO_ROTR(Td0[(t3) & 0xff], 3) ^ rk[2]; - s3 = Td0[(t3 >> 24)] ^ MACRO_ROTR(Td0[(t2 >> 16) & 0xff], 1) ^ MACRO_ROTR(Td0[(t1 >> 8) & 0xff], 2) ^ MACRO_ROTR(Td0[(t0) & 0xff], 3) ^ rk[3]; + s0 = Td0[(t0 >> 24)] ^ MACRO_ROTR(Td0[(t3 >> 16) & 0xff],1) ^ MACRO_ROTR(Td0[(t2 >> 8) & 0xff],2) ^ MACRO_ROTR(Td0[(t1) & 0xff],3) ^ rk[0]; + s1 = Td0[(t1 >> 24)] ^ MACRO_ROTR(Td0[(t0 >> 16) & 0xff],1) ^ MACRO_ROTR(Td0[(t3 >> 8) & 0xff],2) ^ MACRO_ROTR(Td0[(t2) & 0xff],3) ^ rk[1]; + s2 = Td0[(t2 >> 24)] ^ MACRO_ROTR(Td0[(t1 >> 16) & 0xff],1) ^ MACRO_ROTR(Td0[(t0 >> 8) & 0xff],2) ^ MACRO_ROTR(Td0[(t3) & 0xff],3) ^ rk[2]; + s3 = Td0[(t3 >> 24)] ^ MACRO_ROTR(Td0[(t2 >> 16) & 0xff],1) ^ MACRO_ROTR(Td0[(t1 >> 8) & 0xff],2) ^ MACRO_ROTR(Td0[(t0) & 0xff],3) ^ rk[3]; } s0 = ((u32)ti4[(t0 >> 24)] << 24) ^ ((u32)ti4[(t3 >> 16) & 0xff] << 16) ^ ((u32)ti4[(t2 >> 8) & 0xff] << 8) ^ ((u32)ti4[(t1) & 0xff]) ^ rk[0]; diff --git a/Libraries/FCL/src/ecdsa_generic_api.c b/Libraries/FCL/src/ecdsa_generic_api.c index 72660d0149c..46918d11835 100644 --- a/Libraries/FCL/src/ecdsa_generic_api.c +++ b/Libraries/FCL/src/ecdsa_generic_api.c @@ -1,49 +1,49 @@ /****************************************************************************** * - * Copyright 2023 Analog Devices, Inc. + * Copyright 2023 Analog Devices,Inc. * - * Licensed under the Apache License, Version 2.0 (the "License"); + * Licensed under the Apache License,Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software + * Unless required by applicable law or agreed to in writing,software * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** * - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * Copyright (C) 2023 Maxim Integrated Products,Inc.,All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a + * Permission is hereby granted,free of charge,to any person obtaining a * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: + * to deal in the Software without restriction,including without limitation + * the rights to use,copy,modify,merge,publish,distribute,sublicense, + * and/or sell copies of the Software,and to permit persons to whom the + * Software is furnished to do so,subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * THE SOFTWARE IS PROVIDED "AS IS",WITHOUT WARRANTY OF ANY KIND,EXPRESS + * OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM,DAMAGES + * OR OTHER LIABILITY,WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE, + * ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. + * Except as contained in this notice,the name of Maxim Integrated + * Products,Inc. shall not be used except as stated in the Maxim Integrated + * Products,Inc. Branding Policy. * * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all + * of trade secrets,proprietary technology,copyrights,patents, + * trademarks,maskwork rights,or any other form of intellectual + * property whatsoever. Maxim Integrated Products,Inc. retains all * ownership rights. * ******************************************************************************/ @@ -67,188 +67,188 @@ #endif //default modular reduction -//not efficient for special NIST primes, as not using their structure -void ecc_mod(u32 *b, u32 *c, u32 cDigits, u32 *p, u32 pDigits) +//not efficient for special NIST primes,as not using their structure +void ecc_mod(u32 *b,u32 *c,u32 cDigits,u32 *p,u32 pDigits) { - bignum_mod(b, c, cDigits, p, pDigits); + bignum_mod(b,c,cDigits,p,pDigits); } #ifdef P192 //default modular reduction -//not efficient for special NIST primes, as not using their structure -void ecc_mod192r1(u32 *b, u32 *c, u32 cDigits, u32 *p, u32 pDigits) +//not efficient for special NIST primes,as not using their structure +void ecc_mod192r1(u32 *b,u32 *c,u32 cDigits,u32 *p,u32 pDigits) { - bignum_mod(b, c, cDigits, p, pDigits); + bignum_mod(b,c,cDigits,p,pDigits); } #endif//P192 #ifdef P256 //default modular reduction -//not efficient for special NIST primes, as not using their structure -void ecc_mod256r1(u32 *b, u32 *c, u32 cDigits, u32 *p, u32 pDigits) +//not efficient for special NIST primes,as not using their structure +void ecc_mod256r1(u32 *b,u32 *c,u32 cDigits,u32 *p,u32 pDigits) { - bignum_mod(b, c, cDigits, p, pDigits); + bignum_mod(b,c,cDigits,p,pDigits); } #endif//P256 #ifdef P384 //default modular reduction -//not efficient for special NIST primes, as not using their structure -void ecc_mod384r1(u32 *b, u32 *c, u32 cDigits, u32 *p, u32 pDigits) +//not efficient for special NIST primes,as not using their structure +void ecc_mod384r1(u32 *b,u32 *c,u32 cDigits,u32 *p,u32 pDigits) { - bignum_mod(b, c, cDigits, p, pDigits); + bignum_mod(b,c,cDigits,p,pDigits); } #endif//P384 #ifdef P521 //default modular reduction -//not efficient for special NIST primes, as not using their structure -void ecc_mod521r1(u32 *b, u32 *c, u32 cDigits, u32 *p, u32 pDigits) +//not efficient for special NIST primes,as not using their structure +void ecc_mod521r1(u32 *b,u32 *c,u32 cDigits,u32 *p,u32 pDigits) { - bignum_mod(b, c, cDigits, p, pDigits); + bignum_mod(b,c,cDigits,p,pDigits); } #endif//P521 #ifdef BP256 //default modular reduction -//not efficient for special NIST primes, as not using their structure -void ecc_modbp256r1(u32 *b, u32 *c, u32 cDigits, u32 *p, u32 pDigits) +//not efficient for special NIST primes,as not using their structure +void ecc_modbp256r1(u32 *b,u32 *c,u32 cDigits,u32 *p,u32 pDigits) { - bignum_mod(b, c, cDigits, p, pDigits); + bignum_mod(b,c,cDigits,p,pDigits); } #endif//BP256 #ifdef BP384 //default modular reduction -//not efficient for special NIST primes, as not using their structure -void ecc_modbp384r1(u32 *b, u32 *c, u32 cDigits, u32 *p, u32 pDigits) +//not efficient for special NIST primes,as not using their structure +void ecc_modbp384r1(u32 *b,u32 *c,u32 cDigits,u32 *p,u32 pDigits) { - bignum_mod(b, c, cDigits, p, pDigits); + bignum_mod(b,c,cDigits,p,pDigits); } #endif//BP384 #ifdef BP512 //default modular reduction -//not efficient for special NIST primes, as not using their structure -void ecc_modbp512r1(u32 *b, u32 *c, u32 cDigits, u32 *p, u32 pDigits) +//not efficient for special NIST primes,as not using their structure +void ecc_modbp512r1(u32 *b,u32 *c,u32 cDigits,u32 *p,u32 pDigits) { - bignum_mod(b, c, cDigits, p, pDigits); + bignum_mod(b,c,cDigits,p,pDigits); } #endif//BP512 -void ecc_modcurve(u32 *b, u32 *c, u32 cDigits, ucl_type_curve *curve_params) +void ecc_modcurve(u32 *b,u32 *c,u32 cDigits,ucl_type_curve *curve_params) { switch (curve_params->curve) { #ifdef P192 case SECP192R1: - ecc_mod192r1(b, c, cDigits, (u32*)(curve_params->p), curve_params->curve_wsize); + ecc_mod192r1(b,c,cDigits,(u32*)(curve_params->p),curve_params->curve_wsize); break; #endif//P192 #ifdef P256 case SECP256R1: - ecc_mod256r1(b, c, cDigits, ( u32*)(curve_params->p), curve_params->curve_wsize); + ecc_mod256r1(b,c,cDigits,( u32*)(curve_params->p),curve_params->curve_wsize); break; #endif//P256 #ifdef P384 case SECP384R1: - ecc_mod384r1(b, c, cDigits, (u32*)(curve_params->p), curve_params->curve_wsize); + ecc_mod384r1(b,c,cDigits,(u32*)(curve_params->p),curve_params->curve_wsize); break; #endif//P384 #ifdef P521 case SECP521R1: - ecc_mod521r1(b, c, cDigits, (u32*)(curve_params->p), curve_params->curve_wsize); + ecc_mod521r1(b,c,cDigits,(u32*)(curve_params->p),curve_params->curve_wsize); break; #endif//P521 #ifdef BP256 case BP256R1: - ecc_modbp256r1(b, c, cDigits, (u32*)(curve_params->p), curve_params->curve_wsize); + ecc_modbp256r1(b,c,cDigits,(u32*)(curve_params->p),curve_params->curve_wsize); break; #endif//BP256 #ifdef BP384 case BP384R1: - ecc_modbp384r1(b, c, cDigits, (u32*)(curve_params->p), curve_params->curve_wsize); + ecc_modbp384r1(b,c,cDigits,(u32*)(curve_params->p),curve_params->curve_wsize); break; #endif//BP384 #ifdef BP512 case BP512R1: - ecc_modbp512r1(b, c, cDigits, (u32*)(curve_params->p), curve_params->curve_wsize); + ecc_modbp512r1(b,c,cDigits,(u32*)(curve_params->p),curve_params->curve_wsize); break; #endif//BP512 default: - ecc_mod(b, c, cDigits, (u32*)(curve_params->p), curve_params->curve_wsize); + ecc_mod(b,c,cDigits,(u32*)(curve_params->p),curve_params->curve_wsize); break; } } -int ecc_modsub(u32 *p_result, u32 *p_left, u32 *p_right, ucl_type_curve *curve_params) +int ecc_modsub(u32 *p_result,u32 *p_left,u32 *p_right,ucl_type_curve *curve_params) { u32 carry; - carry = bignum_sub(p_result, p_left, p_right, curve_params->curve_wsize); + carry = bignum_sub(p_result,p_left,p_right,curve_params->curve_wsize); if (carry) { - bignum_add(p_result, p_result, (u32*)(curve_params->p), curve_params->curve_wsize); + bignum_add(p_result,p_result,(u32*)(curve_params->p),curve_params->curve_wsize); } return(UCL_OK); } -int ecc_modadd(u32 *r, u32 *a, u32 *b, ucl_type_curve *curve_params) +int ecc_modadd(u32 *r,u32 *a,u32 *b,ucl_type_curve *curve_params) { u32 resu[ECDSA_DIGITS+1]; - resu[curve_params->curve_wsize] = bignum_add(resu, a, b, curve_params->curve_wsize); - ecc_modcurve(r, resu, 1+curve_params->curve_wsize, curve_params); + resu[curve_params->curve_wsize] = bignum_add(resu,a,b,curve_params->curve_wsize); + ecc_modcurve(r,resu,1+curve_params->curve_wsize,curve_params); return(UCL_OK); } -int ecc_modleftshift(u32 *a, u32 *b, u32 c, u32 digits, ucl_type_curve *curve_params) +int ecc_modleftshift(u32 *a,u32 *b,u32 c,u32 digits,ucl_type_curve *curve_params) { u32 tmp[ECDSA_DIGITS+1]; - tmp[digits] = bignum_leftshift(tmp, b, c, digits); - ecc_modcurve(a, tmp, digits+1, curve_params); + tmp[digits] = bignum_leftshift(tmp,b,c,digits); + ecc_modcurve(a,tmp,digits+1,curve_params); return(UCL_OK); } -int ecc_modmult(u32 *r, u32 *a, u32 *b, ucl_type_curve *curve_params) +int ecc_modmult(u32 *r,u32 *a,u32 *b,ucl_type_curve *curve_params) { u32 mult[2*ECDSA_DIGITS]; - bignum_mult(mult, a, b, curve_params->curve_wsize); - ecc_modcurve(r, mult, 2*curve_params->curve_wsize, curve_params); + bignum_mult(mult,a,b,curve_params->curve_wsize); + ecc_modcurve(r,mult,2*curve_params->curve_wsize,curve_params); return(UCL_OK); } -void ecc_modmultscalar(u32 *r, u32 a, u32 *b, ucl_type_curve *curve_params) +void ecc_modmultscalar(u32 *r,u32 a,u32 *b,ucl_type_curve *curve_params) { u32 mult[2*ECDSA_DIGITS]; - bignum_multscalar(mult, a, b, curve_params->curve_wsize); - ecc_modcurve(r, mult, 2*curve_params->curve_wsize, curve_params); + bignum_multscalar(mult,a,b,curve_params->curve_wsize); + ecc_modcurve(r,mult,2*curve_params->curve_wsize,curve_params); } -int ecc_modsquare(u32 *r, u32 *a, ucl_type_curve *curve_params) +int ecc_modsquare(u32 *r,u32 *a,ucl_type_curve *curve_params) { u32 mult[2*ECDSA_DIGITS]; - bignum_square(mult, a, curve_params->curve_wsize); - ecc_modcurve(r, mult, 2*curve_params->curve_wsize, curve_params); + bignum_square(mult,a,curve_params->curve_wsize); + ecc_modcurve(r,mult,2*curve_params->curve_wsize,curve_params); return(UCL_OK); } -int ecc_infinite_affine(ucl_type_ecc_digit_affine_point Q, ucl_type_curve *curve_params) +int ecc_infinite_affine(ucl_type_ecc_digit_affine_point Q,ucl_type_curve *curve_params) { - if (bignum_isnul(Q.x, (u32)(curve_params->curve_wsize)) && bignum_isnul(Q.y, (u32)(curve_params->curve_wsize))) { + if (bignum_isnul(Q.x,(u32)(curve_params->curve_wsize)) && bignum_isnul(Q.y,(u32)(curve_params->curve_wsize))) { return(UCL_TRUE); } return(UCL_ERROR); } -int ecc_infinite_jacobian(ucl_type_ecc_jacobian_point Q, ucl_type_curve *curve_params) +int ecc_infinite_jacobian(ucl_type_ecc_jacobian_point Q,ucl_type_curve *curve_params) { int i; @@ -256,7 +256,7 @@ int ecc_infinite_jacobian(ucl_type_ecc_jacobian_point Q, ucl_type_curve *curve_p return(UCL_ERROR); } - if (!bignum_isnul(Q.z, curve_params->curve_wsize)) { + if (!bignum_isnul(Q.z,curve_params->curve_wsize)) { return(UCL_ERROR); } @@ -268,7 +268,7 @@ int ecc_infinite_jacobian(ucl_type_ecc_jacobian_point Q, ucl_type_curve *curve_p return(UCL_TRUE); } -int ecc_double_jacobian(ucl_type_ecc_jacobian_point Q3, ucl_type_ecc_jacobian_point Q1, ucl_type_curve *curve_params) +int ecc_double_jacobian(ucl_type_ecc_jacobian_point Q3,ucl_type_ecc_jacobian_point Q1,ucl_type_curve *curve_params) { u32 t1[ECDSA_DIGITS]; u32 t2[ECDSA_DIGITS]; @@ -278,74 +278,74 @@ int ecc_double_jacobian(ucl_type_ecc_jacobian_point Q3, ucl_type_ecc_jacobian_po digits = curve_params->curve_wsize; //2.t1 = z1^2 - if (ecc_infinite_jacobian(Q1, curve_params) == UCL_TRUE) { + if (ecc_infinite_jacobian(Q1,curve_params) == UCL_TRUE) { //return(x2:y2:1) - bignum_copy(Q3.x, Q1.x, curve_params->curve_wsize); - bignum_copy(Q3.y, Q1.y, curve_params->curve_wsize); - bignum_copydigit(Q3.z, 0, curve_params->curve_wsize); + bignum_copy(Q3.x,Q1.x,curve_params->curve_wsize); + bignum_copy(Q3.y,Q1.y,curve_params->curve_wsize); + bignum_copydigit(Q3.z,0,curve_params->curve_wsize); return(UCL_OK); } if (BP256R1 == curve_params->curve || BP384R1 == curve_params->curve || BP512R1 == curve_params->curve) { //t1 = x^2 - ecc_modsquare(t1, Q1.x, curve_params); + ecc_modsquare(t1,Q1.x,curve_params); //t1 = 3*x^2 - ecc_modmultscalar(t1, 3, t1, curve_params); + ecc_modmultscalar(t1,3,t1,curve_params); //t2 = z^2 - ecc_modsquare(t2, Q1.z, curve_params); + ecc_modsquare(t2,Q1.z,curve_params); //t2 = z^4 - ecc_modsquare(t2, t2, curve_params); + ecc_modsquare(t2,t2,curve_params); //t2 = a*z^4 - ecc_modmult(t2, (u32*)curve_params->a, t2, curve_params); + ecc_modmult(t2,(u32*)curve_params->a,t2,curve_params); //t2 = 3*x^2+a*z^4 (t2 is m) - ecc_modadd(t2, t1, t2, curve_params); - ecc_modsquare(t1, Q1.y, curve_params); - ecc_modmult(t1, t1, Q1.x, curve_params); - ecc_modmultscalar(t1, 4, t1, curve_params); + ecc_modadd(t2,t1,t2,curve_params); + ecc_modsquare(t1,Q1.y,curve_params); + ecc_modmult(t1,t1,Q1.x,curve_params); + ecc_modmultscalar(t1,4,t1,curve_params); //t1 is s = 4*x*y^2 } else { - ecc_modsquare(t1, Q1.z, curve_params); + ecc_modsquare(t1,Q1.z,curve_params); //3.t2 = x1-t1 - ecc_modsub(t2, Q1.x, t1, curve_params); + ecc_modsub(t2,Q1.x,t1,curve_params); //4.t1 = x1+t1 - bignum_modadd(t1, t1, Q1.x, (u32*)curve_params->p, curve_params->curve_wsize); + bignum_modadd(t1,t1,Q1.x,(u32*)curve_params->p,curve_params->curve_wsize); //5.t2 = t2*t1 - ecc_modmult(t2, t2, t1, curve_params); + ecc_modmult(t2,t2,t1,curve_params); //6.t2 = 3*t2 - ecc_modmultscalar(t2, 3, t2, curve_params); + ecc_modmultscalar(t2,3,t2,curve_params); } //7.y3 = 2*y1 - ecc_modleftshift(Q3.y, Q1.y, 1, digits, curve_params); + ecc_modleftshift(Q3.y,Q1.y,1,digits,curve_params); //8.z3 = y3*z1 - ecc_modmult(Q3.z, Q1.z, Q3.y, curve_params); + ecc_modmult(Q3.z,Q1.z,Q3.y,curve_params); //9.y3^2 - ecc_modsquare(Q3.y, Q3.y, curve_params); + ecc_modsquare(Q3.y,Q3.y,curve_params); //10.t3 = y3.x1 - ecc_modmult(t3, Q1.x, Q3.y, curve_params); + ecc_modmult(t3,Q1.x,Q3.y,curve_params); //11.y3 = y3^2 - ecc_modsquare(Q3.y, Q3.y, curve_params); + ecc_modsquare(Q3.y,Q3.y,curve_params); //12.y3 = y3/2 equiv. to y3 = y3*(2^-1) - ecc_modmult(Q3.y, Q3.y, curve_params->invp2, curve_params); + ecc_modmult(Q3.y,Q3.y,curve_params->invp2,curve_params); //13.x3 = t2^2 - ecc_modsquare(Q3.x, t2, curve_params); + ecc_modsquare(Q3.x,t2,curve_params); //14.t1 = 2*t3 - ecc_modleftshift(t1, t3, 1, digits, curve_params); + ecc_modleftshift(t1,t3,1,digits,curve_params); //15.x3 = x3-t1 - ecc_modsub(Q3.x, Q3.x, t1, curve_params); + ecc_modsub(Q3.x,Q3.x,t1,curve_params); //16.t1 = t3-x3 - ecc_modsub(t1, t3, Q3.x, curve_params); + ecc_modsub(t1,t3,Q3.x,curve_params); //17.t1 = t1*t2 - ecc_modmult(t1, t1, t2, curve_params); + ecc_modmult(t1,t1,t2,curve_params); //18.y3 = t1-y3 - ecc_modsub(Q3.y, t1, Q3.y, curve_params); + ecc_modsub(Q3.y,t1,Q3.y,curve_params); - //result in x3, y3, z3 + //result in x3,y3,z3 return(UCL_OK); } -int ecc_add_jacobian_affine(ucl_type_ecc_jacobian_point Q3, ucl_type_ecc_jacobian_point Q1, ucl_type_ecc_digit_affine_point Q2, ucl_type_curve *curve_params) +int ecc_add_jacobian_affine(ucl_type_ecc_jacobian_point Q3,ucl_type_ecc_jacobian_point Q1,ucl_type_ecc_digit_affine_point Q2,ucl_type_curve *curve_params) { u32 t1[ECDSA_DIGITS]; u32 t2[ECDSA_DIGITS]; @@ -356,99 +356,99 @@ int ecc_add_jacobian_affine(ucl_type_ecc_jacobian_point Q3, ucl_type_ecc_jacobia int digits; digits = curve_params->curve_wsize; - if (ecc_infinite_affine(Q2, curve_params) == UCL_TRUE) { - bignum_copy(Q3.x, Q1.x, curve_params->curve_wsize); - bignum_copy(Q3.y, Q1.y, curve_params->curve_wsize); - bignum_copy(Q3.z, Q1.z, curve_params->curve_wsize); + if (ecc_infinite_affine(Q2,curve_params) == UCL_TRUE) { + bignum_copy(Q3.x,Q1.x,curve_params->curve_wsize); + bignum_copy(Q3.y,Q1.y,curve_params->curve_wsize); + bignum_copy(Q3.z,Q1.z,curve_params->curve_wsize); return(UCL_OK); } - if (ecc_infinite_jacobian(Q1, curve_params) == UCL_TRUE) { + if (ecc_infinite_jacobian(Q1,curve_params) == UCL_TRUE) { //return(x2:y2:1) - bignum_copy(Q3.x, Q2.x, curve_params->curve_wsize); - bignum_copy(Q3.y, Q2.y, curve_params->curve_wsize); - bignum_copydigit(Q3.z, 1, curve_params->curve_wsize); + bignum_copy(Q3.x,Q2.x,curve_params->curve_wsize); + bignum_copy(Q3.y,Q2.y,curve_params->curve_wsize); + bignum_copydigit(Q3.z,1,curve_params->curve_wsize); return(UCL_OK); } //3.t1 = z1^2 - ecc_modsquare(t1, Q1.z, curve_params); + ecc_modsquare(t1,Q1.z,curve_params); //4.t2 = t1*z1 - ecc_modmult(t2, t1, Q1.z, curve_params); + ecc_modmult(t2,t1,Q1.z,curve_params); //6.t2 = t2*y2 - ecc_modmult(t2, t2, Q2.y, curve_params); + ecc_modmult(t2,t2,Q2.y,curve_params); //5.t1 = t1*x2 - ecc_modmult(t1, t1, Q2.x, curve_params); + ecc_modmult(t1,t1,Q2.x,curve_params); //7.t1 = t1-x1 - ecc_modsub(t1, t1, Q1.x, curve_params); + ecc_modsub(t1,t1,Q1.x,curve_params); //8.t2 = t2-y1 - ecc_modsub(t2, t2, Q1.y, curve_params); + ecc_modsub(t2,t2,Q1.y,curve_params); //9. - if (bignum_isnul(t1, curve_params->curve_wsize)) { - bignum_copyzero(scalar, curve_params->curve_wsize); + if (bignum_isnul(t1,curve_params->curve_wsize)) { + bignum_copyzero(scalar,curve_params->curve_wsize); //9.1 - if (bignum_isnul(t2, curve_params->curve_wsize)) { + if (bignum_isnul(t2,curve_params->curve_wsize)) { //double (x2:y2:1) scalar[0] = 1; Q2tmp.x = Q2.x; Q2tmp.y = Q2.y; Q2tmp.z = scalar; - ecc_double_jacobian(Q3, Q2tmp, curve_params); + ecc_double_jacobian(Q3,Q2tmp,curve_params); return(UCL_OK); } else { //9.2 //return infinite - bignum_copy(Q3.x, scalar, curve_params->curve_wsize); - bignum_copy(Q3.y, scalar, curve_params->curve_wsize); - bignum_copyzero(Q3.z, curve_params->curve_wsize); + bignum_copy(Q3.x,scalar,curve_params->curve_wsize); + bignum_copy(Q3.y,scalar,curve_params->curve_wsize); + bignum_copyzero(Q3.z,curve_params->curve_wsize); return(UCL_OK); } } //10.z3 = z1*t1 - ecc_modmult(Q3.z, Q1.z, t1, curve_params); + ecc_modmult(Q3.z,Q1.z,t1,curve_params); //11.t3 = t1^2 - ecc_modsquare(t3, t1, curve_params); + ecc_modsquare(t3,t1,curve_params); //12.t4 = t3*t1 - ecc_modmult(t4, t3, t1, curve_params); + ecc_modmult(t4,t3,t1,curve_params); //13.t3 = t3*x1 - ecc_modmult(t3, t3, Q1.x, curve_params); + ecc_modmult(t3,t3,Q1.x,curve_params); //14.t1 = 2*t3 - ecc_modleftshift(t1, t3, 1, digits, curve_params); + ecc_modleftshift(t1,t3,1,digits,curve_params); //15.x3 = t2^2 - ecc_modsquare(Q3.x, t2, curve_params); + ecc_modsquare(Q3.x,t2,curve_params); //16.x3 = Q3.x-t1 - ecc_modsub(Q3.x, Q3.x, t1, curve_params); + ecc_modsub(Q3.x,Q3.x,t1,curve_params); //17.x3 = x3-t4 - ecc_modsub(Q3.x, Q3.x, t4, curve_params); + ecc_modsub(Q3.x,Q3.x,t4,curve_params); //18.t3 = t3-x3 - ecc_modsub(t3, t3, Q3.x, curve_params); + ecc_modsub(t3,t3,Q3.x,curve_params); //19.t3 = t3*t2 - ecc_modmult(t3, t3, t2, curve_params); + ecc_modmult(t3,t3,t2,curve_params); //20.t4 = t4*y1 - ecc_modmult(t4, t4, Q1.y, curve_params); + ecc_modmult(t4,t4,Q1.y,curve_params); //21.y3 = t3-t4 - ecc_modsub(Q3.y, t3, t4, curve_params); + ecc_modsub(Q3.y,t3,t4,curve_params); - //result in x3, y3, z3 + //result in x3,y3,z3 return(UCL_OK); } -int ecc_convert_affine_to_jacobian(ucl_type_ecc_jacobian_point Q, ucl_type_ecc_digit_affine_point X1, ucl_type_curve *curve_params) +int ecc_convert_affine_to_jacobian(ucl_type_ecc_jacobian_point Q,ucl_type_ecc_digit_affine_point X1,ucl_type_curve *curve_params) { //conversion from x:y to x*z^2:y*z^3:z; direct and simple for z = 1 - bignum_copy(Q.x, X1.x, (u32)curve_params->curve_wsize); - bignum_copy(Q.y, X1.y, (u32)curve_params->curve_wsize); - bignum_copydigit(Q.z, 1, (u32)curve_params->curve_wsize); + bignum_copy(Q.x,X1.x,(u32)curve_params->curve_wsize); + bignum_copy(Q.y,X1.y,(u32)curve_params->curve_wsize); + bignum_copydigit(Q.z,1,(u32)curve_params->curve_wsize); return(UCL_OK); } -int ecc_convert_jacobian_to_affine(u32 *x, u32 *y, u32 *xq, u32 *yq, u32 *zq, ucl_type_curve *curve_params) +int ecc_convert_jacobian_to_affine(u32 *x,u32 *y,u32 *xq,u32 *yq,u32 *zq,ucl_type_curve *curve_params) { u32 tmp[ECDSA_DIGITS]; u32 tmp1[ECDSA_DIGITS]; @@ -457,20 +457,20 @@ int ecc_convert_jacobian_to_affine(u32 *x, u32 *y, u32 *xq, u32 *yq, u32 *zq, uc digits = curve_params->curve_wsize; //x:y:z corresponds to x/z^2:y/z^3 //z^2 - ecc_modsquare(tmp, zq, curve_params); + ecc_modsquare(tmp,zq,curve_params); //z^-2 - bignum_modinv(tmp1, tmp, (u32*)curve_params->p, digits); - ecc_modmult(x, xq, tmp1, curve_params); + bignum_modinv(tmp1,tmp,(u32*)curve_params->p,digits); + ecc_modmult(x,xq,tmp1,curve_params); //z^3 - ecc_modmult(tmp, tmp, zq, curve_params); + ecc_modmult(tmp,tmp,zq,curve_params); //z^-3 - bignum_modinv(tmp1, tmp, (u32*)curve_params->p, digits); - ecc_modmult(y, yq, tmp1, curve_params); + bignum_modinv(tmp1,tmp,(u32*)curve_params->p,digits); + ecc_modmult(y,yq,tmp1,curve_params); return(UCL_OK); } -int ecc_mult_jacobian(ucl_type_ecc_digit_affine_point Q, u32 *m, ucl_type_ecc_digit_affine_point X1, ucl_type_curve *curve_params) +int ecc_mult_jacobian(ucl_type_ecc_digit_affine_point Q,u32 *m,ucl_type_ecc_digit_affine_point X1,ucl_type_curve *curve_params) { int i; int j; @@ -485,9 +485,9 @@ int ecc_mult_jacobian(ucl_type_ecc_digit_affine_point Q, u32 *m, ucl_type_ecc_di return(UCL_INVALID_INPUT); } - bignum_copyzero(Q.x, curve_params->curve_wsize); - bignum_copyzero(Q.y, curve_params->curve_wsize); - bignum_copyzero(zq, curve_params->curve_wsize); + bignum_copyzero(Q.x,curve_params->curve_wsize); + bignum_copyzero(Q.y,curve_params->curve_wsize); + bignum_copyzero(zq,curve_params->curve_wsize); size = (int)curve_params->curve_wsize; mask = (u32)0x80000000; @@ -498,56 +498,56 @@ int ecc_mult_jacobian(ucl_type_ecc_digit_affine_point Q, u32 *m, ucl_type_ecc_di for (i = (int)(size-1); i >= 0; i--) { for (j = 0; j < (int)DIGIT_BITS; j++) { if (!first) { - ecc_double_jacobian(T, T, curve_params); + ecc_double_jacobian(T,T,curve_params); } if ((m[i] & (mask >> j)) != 0) { if (first) { - ecc_convert_affine_to_jacobian(T, X1, curve_params); + ecc_convert_affine_to_jacobian(T,X1,curve_params); first = 0; } else { - ecc_add_jacobian_affine(T, T, X1, curve_params); + ecc_add_jacobian_affine(T,T,X1,curve_params); } } } } - ecc_convert_jacobian_to_affine(Q.x, Q.y, T.x, T.y, T.z, curve_params); + ecc_convert_jacobian_to_affine(Q.x,Q.y,T.x,T.y,T.z,curve_params); return(UCL_OK); } -int ecc_add(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_point Q1, ucl_type_ecc_digit_affine_point Q2, ucl_type_curve *curve_params) +int ecc_add(ucl_type_ecc_digit_affine_point Q3,ucl_type_ecc_digit_affine_point Q1,ucl_type_ecc_digit_affine_point Q2,ucl_type_curve *curve_params) { u32 lambda[ECDSA_DIGITS]; u32 tmp1[ECDSA_DIGITS]; u32 tmp2[ECDSA_DIGITS]; //tmp1 = (x2-x1) - ecc_modsub(tmp1, Q2.x, Q1.x, curve_params); - bignum_modinv(tmp2, tmp1, (u32*)(curve_params->p), curve_params->curve_wsize); + ecc_modsub(tmp1,Q2.x,Q1.x,curve_params); + bignum_modinv(tmp2,tmp1,(u32*)(curve_params->p),curve_params->curve_wsize); //tmp1 = (y2-y1) - ecc_modsub(tmp1, Q2.y, Q1.y, curve_params); + ecc_modsub(tmp1,Q2.y,Q1.y,curve_params); //lambda = (y2-y1)*(x2-x1)^-1 mod p - ecc_modmult(lambda, tmp1, tmp2, curve_params); + ecc_modmult(lambda,tmp1,tmp2,curve_params); //tmp1 = lambda^2 mod p - ecc_modsquare(tmp1, lambda, curve_params); + ecc_modsquare(tmp1,lambda,curve_params); //tmp2 = lambda^2 mod p -x1 - ecc_modsub(tmp2, tmp1, Q1.x, curve_params); + ecc_modsub(tmp2,tmp1,Q1.x,curve_params); //x3 = lambda^2 mod p -x1 -x2 - ecc_modsub(Q3.x, tmp2, Q2.x, curve_params); + ecc_modsub(Q3.x,tmp2,Q2.x,curve_params); //tmp2 = x1-x3 - ecc_modsub(tmp2, Q1.x, Q3.x, curve_params); + ecc_modsub(tmp2,Q1.x,Q3.x,curve_params); //tmp1 = lambda * (x1-x3) - ecc_modmult(tmp1, lambda, tmp2, curve_params); + ecc_modmult(tmp1,lambda,tmp2,curve_params); //y3 = lambda * (x1-x3) -y1 - ecc_modsub(Q3.y, tmp1, Q1.y, curve_params); + ecc_modsub(Q3.y,tmp1,Q1.y,curve_params); return(UCL_OK); } -int ecc_double(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_point Q1, ucl_type_curve *curve_params) +int ecc_double(ucl_type_ecc_digit_affine_point Q3,ucl_type_ecc_digit_affine_point Q1,ucl_type_curve *curve_params) { u32 lambda[ECDSA_DIGITS+1]; u32 tmp1[ECDSA_DIGITS+1]; @@ -555,34 +555,34 @@ int ecc_double(ucl_type_ecc_digit_affine_point Q3, ucl_type_ecc_digit_affine_poi u32 tmp3[ECDSA_DIGITS+1]; u32 trois[ECDSA_DIGITS]; - bignum_copyzero(trois, curve_params->curve_wsize); + bignum_copyzero(trois,curve_params->curve_wsize); trois[0] = 3; //tmp1 = x1^2 - ecc_modsquare(tmp1, Q1.x, curve_params); + ecc_modsquare(tmp1,Q1.x,curve_params); //lambda = 3*x1^2 - ecc_modmult(lambda, trois, tmp1, curve_params); + ecc_modmult(lambda,trois,tmp1,curve_params); //tmp1 = 3*x1^2+a - tmp1[curve_params->curve_wsize] = bignum_add(tmp1, lambda, (u32*)(curve_params->a), curve_params->curve_wsize); - ecc_modcurve(tmp1, tmp1, curve_params->curve_wsize+1, curve_params); + tmp1[curve_params->curve_wsize] = bignum_add(tmp1,lambda,(u32*)(curve_params->a),curve_params->curve_wsize); + ecc_modcurve(tmp1,tmp1,curve_params->curve_wsize+1,curve_params); //tmp2 = 2*y1 - tmp2[curve_params->curve_wsize] = bignum_leftshift(tmp2, Q1.y, 1, curve_params->curve_wsize); - ecc_modcurve(tmp2, tmp2, curve_params->curve_wsize+1, curve_params); + tmp2[curve_params->curve_wsize] = bignum_leftshift(tmp2,Q1.y,1,curve_params->curve_wsize); + ecc_modcurve(tmp2,tmp2,curve_params->curve_wsize+1,curve_params); //tmp3 = 2*y1^-1 mod p - bignum_modinv(tmp3, tmp2, (u32*)(curve_params->p), curve_params->curve_wsize); + bignum_modinv(tmp3,tmp2,(u32*)(curve_params->p),curve_params->curve_wsize); //lambda = (3*x1^2+a)*(2*y)^-1 mod p - ecc_modmult(lambda, tmp1, tmp3, curve_params); + ecc_modmult(lambda,tmp1,tmp3,curve_params); //tmp1 = Lambda^2 mod p - ecc_modsquare(tmp1, lambda, curve_params); + ecc_modsquare(tmp1,lambda,curve_params); //tmp2 = Lambda^2 mod p -x1 - ecc_modsub(tmp2, tmp1, Q1.x, curve_params); + ecc_modsub(tmp2,tmp1,Q1.x,curve_params); //x3 = Lambda^2 mod p -x1 -x2 - ecc_modsub(Q3.x, tmp2, Q1.x, curve_params); + ecc_modsub(Q3.x,tmp2,Q1.x,curve_params); //tmp2 = x1-x3 - ecc_modsub(tmp2, Q1.x, Q3.x, curve_params); + ecc_modsub(tmp2,Q1.x,Q3.x,curve_params); //tmp1 = Lambda * (x1-x3) - ecc_modmult(tmp1, lambda, tmp2, curve_params); + ecc_modmult(tmp1,lambda,tmp2,curve_params); //y3 = Lambda * (x1-x3) -y1 - ecc_modsub(Q3.y, tmp1, Q1.y, curve_params); + ecc_modsub(Q3.y,tmp1,Q1.y,curve_params); return(UCL_OK); } diff --git a/Libraries/FCL/src/ecdsatest.c b/Libraries/FCL/src/ecdsatest.c index 0d350bced80..ae87d934ee6 100644 --- a/Libraries/FCL/src/ecdsatest.c +++ b/Libraries/FCL/src/ecdsatest.c @@ -1,54 +1,54 @@ /****************************************************************************** * - * Copyright 2023 Analog Devices, Inc. + * Copyright 2023 Analog Devices,Inc. * - * Licensed under the Apache License, Version 2.0 (the "License"); + * Licensed under the Apache License,Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software + * Unless required by applicable law or agreed to in writing,software * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** * - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * Copyright (C) 2023 Maxim Integrated Products,Inc.,All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a + * Permission is hereby granted,free of charge,to any person obtaining a * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: + * to deal in the Software without restriction,including without limitation + * the rights to use,copy,modify,merge,publish,distribute,sublicense, + * and/or sell copies of the Software,and to permit persons to whom the + * Software is furnished to do so,subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * THE SOFTWARE IS PROVIDED "AS IS",WITHOUT WARRANTY OF ANY KIND,EXPRESS + * OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM,DAMAGES + * OR OTHER LIABILITY,WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE, + * ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. + * Except as contained in this notice,the name of Maxim Integrated + * Products,Inc. shall not be used except as stated in the Maxim Integrated + * Products,Inc. Branding Policy. * * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all + * of trade secrets,proprietary technology,copyrights,patents, + * trademarks,maskwork rights,or any other form of intellectual + * property whatsoever. Maxim Integrated Products,Inc. retains all * ownership rights. * ******************************************************************************/ -//1.0.0: initial release, copied from genuine ecdsatest.c +//1.0.0: initial release,copied from genuine ecdsatest.c #define VERBOSE #include @@ -86,88 +86,88 @@ extern ucl_type_curve bp512r1; // number of iterations of each test #define LOOP 1000 -//function testing KAT and sign+verify cycles, using new API and structures introduced in 2.4.9 +//function testing KAT and sign+verify cycles,using new API and structures introduced in 2.4.9 int test_ecdsa_curves(void) { //P256R1 //RFC4754 test vector -sha256 //secret key - u8 d3_p256r1[] = {0xDC, 0x51, 0xD3, 0x86, 0x6A, 0x15, 0xBA, 0xCD, 0xE3, 0x3D, 0x96, 0xF9, 0x92, 0xFC, 0xA9, 0x9D, 0xA7, 0xE6, 0xEF, 0x09, 0x34, 0xE7, 0x09, 0x75, 0x59, 0xC2, 0x7F, 0x16, 0x14, 0xC8, 0x8A, 0x7F}; + u8 d3_p256r1[] = {0xDC,0x51,0xD3,0x86,0x6A,0x15,0xBA,0xCD,0xE3,0x3D,0x96,0xF9,0x92,0xFC,0xA9,0x9D,0xA7,0xE6,0xEF,0x09,0x34,0xE7,0x09,0x75,0x59,0xC2,0x7F,0x16,0x14,0xC8,0x8A,0x7F}; //message - //u8 msg3_p256r1[] = {'a', 'b', 'c'}; + //u8 msg3_p256r1[] = {'a','b','c'}; //public key - u8 xq3_p256r1[] = {0x24, 0x42, 0xA5, 0xCC, 0x0E, 0xCD, 0x01, 0x5F, 0xA3, 0xCA, 0x31, 0xDC, 0x8E, 0x2B, 0xBC, 0x70, 0xBF, 0x42, 0xD6, 0x0C, 0xBC, 0xA2, 0x00, 0x85, 0xE0, 0x82, 0x2C, 0xB0, 0x42, 0x35, 0xE9, 0x70}; - u8 yq3_p256r1[] = {0x6F, 0xC9, 0x8B, 0xD7, 0xE5, 0x02, 0x11, 0xA4, 0xA2, 0x71, 0x02, 0xFA, 0x35, 0x49, 0xDF, 0x79, 0xEB, 0xCB, 0x4B, 0xF2, 0x46, 0xB8, 0x09, 0x45, 0xCD, 0xDF, 0xE7, 0xD5, 0x09, 0xBB, 0xFD, 0x7D}; + u8 xq3_p256r1[] = {0x24,0x42,0xA5,0xCC,0x0E,0xCD,0x01,0x5F,0xA3,0xCA,0x31,0xDC,0x8E,0x2B,0xBC,0x70,0xBF,0x42,0xD6,0x0C,0xBC,0xA2,0x00,0x85,0xE0,0x82,0x2C,0xB0,0x42,0x35,0xE9,0x70}; + u8 yq3_p256r1[] = {0x6F,0xC9,0x8B,0xD7,0xE5,0x02,0x11,0xA4,0xA2,0x71,0x02,0xFA,0x35,0x49,0xDF,0x79,0xEB,0xCB,0x4B,0xF2,0x46,0xB8,0x09,0x45,0xCD,0xDF,0xE7,0xD5,0x09,0xBB,0xFD,0x7D}; //signature for the message above - // u8 r3_p256r1[] = {0xCB, 0x28, 0xE0, 0x99, 0x9B, 0x9C, 0x77, 0x15, 0xFD, 0x0A, 0x80, 0xD8, 0xE4, 0x7A, 0x77, 0x07, 0x97, 0x16, 0xCB, 0xBF, 0x91, 0x7D, 0xD7, 0x2E, 0x97, 0x56, 0x6E, 0xA1, 0xC0, 0x66, 0x95, 0x7C}; - //u8 s3_p256r1[] = {0x86, 0xFA, 0x3B, 0xB4, 0xE2, 0x6C, 0xAD, 0x5B, 0xF9, 0x0B, 0x7F, 0x81, 0x89, 0x92, 0x56, 0xCE, 0x75, 0x94, 0xBB, 0x1E, 0xA0, 0xC8, 0x92, 0x12, 0x74, 0x8B, 0xFF, 0x3B, 0x3D, 0x5B, 0x03, 0x15}; + // u8 r3_p256r1[] = {0xCB,0x28,0xE0,0x99,0x9B,0x9C,0x77,0x15,0xFD,0x0A,0x80,0xD8,0xE4,0x7A,0x77,0x07,0x97,0x16,0xCB,0xBF,0x91,0x7D,0xD7,0x2E,0x97,0x56,0x6E,0xA1,0xC0,0x66,0x95,0x7C}; + //u8 s3_p256r1[] = {0x86,0xFA,0x3B,0xB4,0xE2,0x6C,0xAD,0x5B,0xF9,0x0B,0x7F,0x81,0x89,0x92,0x56,0xCE,0x75,0x94,0xBB,0x1E,0xA0,0xC8,0x92,0x12,0x74,0x8B,0xFF,0x3B,0x3D,0x5B,0x03,0x15}; //KAT for P192 - u8 d3_p192r1[] = {0x1a, 0x8d, 0x59, 0x8f, 0xc1, 0x5b, 0xf0, 0xfd, 0x89, 0x03, 0x0b, 0x5c, 0xb1, 0x11, 0x1a, 0xeb, 0x92, 0xae, 0x8b, 0xaf, 0x5e, 0xa4, 0x75, 0xfb}; - u8 xq3_p192r1[] = {0x62, 0xB1, 0x2D, 0x60, 0x69, 0x0C, 0xDC, 0xF3, 0x30, 0xBA, 0xBA, 0xB6, 0xE6, 0x97, 0x63, 0xB4, 0x71, 0xF9, 0x94, 0xDD, 0x70, 0x2D, 0x16, 0xA5}; - u8 yq3_p192r1[] = {0x63, 0xBF, 0x5E, 0xC0, 0x80, 0x69, 0x70, 0x5F, 0xFF, 0xF6, 0x5E, 0x5C, 0xA5, 0xC0, 0xD6, 0x97, 0x16, 0xDF, 0xCB, 0x34, 0x74, 0x37, 0x39, 0x02}; - // u8 msg3_p192r1[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17}; - //u8 r3_p192r1[] = {0x03, 0xbe, 0x83, 0xbb, 0x6d, 0xff, 0x29, 0x25, 0x87, 0xa9, 0x4d, 0x13, 0x8a, 0x8e, 0x1d, 0x0e, 0x6f, 0x57, 0xc3, 0x78, 0x69, 0x68, 0xe4, 0xa3}; - //u8 s3_p192r1[] = {0xa9, 0x47, 0x0f, 0xf0, 0xda, 0x47, 0x7c, 0xe6, 0x7f, 0x44, 0x54, 0xb1, 0xb1, 0x28, 0x8d, 0x04, 0x79, 0x90, 0x6c, 0xb6, 0xdc, 0x04, 0x84, 0x0d}; + u8 d3_p192r1[] = {0x1a,0x8d,0x59,0x8f,0xc1,0x5b,0xf0,0xfd,0x89,0x03,0x0b,0x5c,0xb1,0x11,0x1a,0xeb,0x92,0xae,0x8b,0xaf,0x5e,0xa4,0x75,0xfb}; + u8 xq3_p192r1[] = {0x62,0xB1,0x2D,0x60,0x69,0x0C,0xDC,0xF3,0x30,0xBA,0xBA,0xB6,0xE6,0x97,0x63,0xB4,0x71,0xF9,0x94,0xDD,0x70,0x2D,0x16,0xA5}; + u8 yq3_p192r1[] = {0x63,0xBF,0x5E,0xC0,0x80,0x69,0x70,0x5F,0xFF,0xF6,0x5E,0x5C,0xA5,0xC0,0xD6,0x97,0x16,0xDF,0xCB,0x34,0x74,0x37,0x39,0x02}; + // u8 msg3_p192r1[] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17}; + //u8 r3_p192r1[] = {0x03,0xbe,0x83,0xbb,0x6d,0xff,0x29,0x25,0x87,0xa9,0x4d,0x13,0x8a,0x8e,0x1d,0x0e,0x6f,0x57,0xc3,0x78,0x69,0x68,0xe4,0xa3}; + //u8 s3_p192r1[] = {0xa9,0x47,0x0f,0xf0,0xda,0x47,0x7c,0xe6,0x7f,0x44,0x54,0xb1,0xb1,0x28,0x8d,0x04,0x79,0x90,0x6c,0xb6,0xdc,0x04,0x84,0x0d}; //KAT for P384R1 //RFC4754 test vector -sha384 - u8 d3_p384r1[] = {0x0B, 0xEB, 0x64, 0x66, 0x34, 0xBA, 0x87, 0x73, 0x5D, 0x77, 0xAE, 0x48, 0x09, 0xA0, 0xEB, 0xEA, 0x86, 0x55, 0x35, 0xDE, 0x4C, 0x1E, 0x1D, 0xCB, 0x69, 0x2E, 0x84, 0x70, 0x8E, 0x81, 0xA5, 0xAF, 0x62, 0xE5, 0x28, 0xC3, 0x8B, 0x2A, 0x81, 0xB3, 0x53, 0x09, 0x66, 0x8D, 0x73, 0x52, 0x4D, 0x9F}; - // u8 msg3_p384r1[] = {'a', 'b', 'c'}; - u8 xq3_p384r1[] = {0x96, 0x28, 0x1B, 0xF8, 0xDD, 0x5E, 0x05, 0x25, 0xCA, 0x04, 0x9C, 0x04, 0x8D, 0x34, 0x5D, 0x30, 0x82, 0x96, 0x8D, 0x10, 0xFE, 0xDF, 0x5C, 0x5A, 0xCA, 0x0C, 0x64, 0xE6, 0x46, 0x5A, 0x97, 0xEA, 0x5C, 0xE1, 0x0C, 0x9D, 0xFE, 0xC2, 0x17, 0x97, 0x41, 0x57, 0x10, 0x72, 0x1F, 0x43, 0x79, 0x22}; - u8 yq3_p384r1[] = {0x44, 0x76, 0x88, 0xBA, 0x94, 0x70, 0x8E, 0xB6, 0xE2, 0xE4, 0xD5, 0x9F, 0x6A, 0xB6, 0xD7, 0xED, 0xFF, 0x93, 0x01, 0xD2, 0x49, 0xFE, 0x49, 0xC3, 0x30, 0x96, 0x65, 0x5F, 0x5D, 0x50, 0x2F, 0xAD, 0x3D, 0x38, 0x3B, 0x91, 0xC5, 0xE7, 0xED, 0xAA, 0x2B, 0x71, 0x4C, 0xC9, 0x9D, 0x57, 0x43, 0xCA}; + u8 d3_p384r1[] = {0x0B,0xEB,0x64,0x66,0x34,0xBA,0x87,0x73,0x5D,0x77,0xAE,0x48,0x09,0xA0,0xEB,0xEA,0x86,0x55,0x35,0xDE,0x4C,0x1E,0x1D,0xCB,0x69,0x2E,0x84,0x70,0x8E,0x81,0xA5,0xAF,0x62,0xE5,0x28,0xC3,0x8B,0x2A,0x81,0xB3,0x53,0x09,0x66,0x8D,0x73,0x52,0x4D,0x9F}; + // u8 msg3_p384r1[] = {'a','b','c'}; + u8 xq3_p384r1[] = {0x96,0x28,0x1B,0xF8,0xDD,0x5E,0x05,0x25,0xCA,0x04,0x9C,0x04,0x8D,0x34,0x5D,0x30,0x82,0x96,0x8D,0x10,0xFE,0xDF,0x5C,0x5A,0xCA,0x0C,0x64,0xE6,0x46,0x5A,0x97,0xEA,0x5C,0xE1,0x0C,0x9D,0xFE,0xC2,0x17,0x97,0x41,0x57,0x10,0x72,0x1F,0x43,0x79,0x22}; + u8 yq3_p384r1[] = {0x44,0x76,0x88,0xBA,0x94,0x70,0x8E,0xB6,0xE2,0xE4,0xD5,0x9F,0x6A,0xB6,0xD7,0xED,0xFF,0x93,0x01,0xD2,0x49,0xFE,0x49,0xC3,0x30,0x96,0x65,0x5F,0x5D,0x50,0x2F,0xAD,0x3D,0x38,0x3B,0x91,0xC5,0xE7,0xED,0xAA,0x2B,0x71,0x4C,0xC9,0x9D,0x57,0x43,0xCA}; //signature for the message above - // u8 r3_p384r1[] = {0xFB, 0x01, 0x7B, 0x91, 0x4E, 0x29, 0x14, 0x94, 0x32, 0xD8, 0xBA, 0xC2, 0x9A, 0x51, 0x46, 0x40, 0xB4, 0x6F, 0x53, 0xDD, 0xAB, 0x2C, 0x69, 0x94, 0x80, 0x84, 0xE2, 0x93, 0x0F, 0x1C, 0x8F, 0x7E, 0x08, 0xE0, 0x7C, 0x9C, 0x63, 0xF2, 0xD2, 0x1A, 0x07, 0xDC, 0xB5, 0x6A, 0x6A, 0xF5, 0x6E, 0xB3}; - // u8 s3_p384r1[] = {0xB2, 0x63, 0xA1, 0x30, 0x5E, 0x05, 0x7F, 0x98, 0x4D, 0x38, 0x72, 0x6A, 0x1B, 0x46, 0x87, 0x41, 0x09, 0xF4, 0x17, 0xBC, 0xA1, 0x12, 0x67, 0x4C, 0x52, 0x82, 0x62, 0xA4, 0x0A, 0x62, 0x9A, 0xF1, 0xCB, 0xB9, 0xF5, 0x16, 0xCE, 0x0F, 0xA7, 0xD2, 0xFF, 0x63, 0x08, 0x63, 0xA0, 0x0E, 0x8B, 0x9F}; + // u8 r3_p384r1[] = {0xFB,0x01,0x7B,0x91,0x4E,0x29,0x14,0x94,0x32,0xD8,0xBA,0xC2,0x9A,0x51,0x46,0x40,0xB4,0x6F,0x53,0xDD,0xAB,0x2C,0x69,0x94,0x80,0x84,0xE2,0x93,0x0F,0x1C,0x8F,0x7E,0x08,0xE0,0x7C,0x9C,0x63,0xF2,0xD2,0x1A,0x07,0xDC,0xB5,0x6A,0x6A,0xF5,0x6E,0xB3}; + // u8 s3_p384r1[] = {0xB2,0x63,0xA1,0x30,0x5E,0x05,0x7F,0x98,0x4D,0x38,0x72,0x6A,0x1B,0x46,0x87,0x41,0x09,0xF4,0x17,0xBC,0xA1,0x12,0x67,0x4C,0x52,0x82,0x62,0xA4,0x0A,0x62,0x9A,0xF1,0xCB,0xB9,0xF5,0x16,0xCE,0x0F,0xA7,0xD2,0xFF,0x63,0x08,0x63,0xA0,0x0E,0x8B,0x9F}; //KAT for P521R1 //RFC4754 test vector -sha512 - u8 d3_p521r1[] = {0x00, 0x65, 0xFD, 0xA3, 0x40, 0x94, 0x51, 0xDC, 0xAB, 0x0A, 0x0E, 0xAD, 0x45, 0x49, 0x51, 0x12, 0xA3, 0xD8, 0x13, 0xC1, 0x7B, 0xFD, 0x34, 0xBD, 0xF8, 0xC1, 0x20, 0x9D, 0x7D, 0xF5, 0x84, 0x91, 0x20, 0x59, 0x77, 0x79, 0x06, 0x0A, 0x7F, 0xF9, 0xD7, 0x04, 0xAD, 0xF7, 0x8B, 0x57, 0x0F, 0xFA, 0xD6, 0xF0, 0x62, 0xE9, 0x5C, 0x7E, 0x0C, 0x5D, 0x54, 0x81, 0xC5, 0xB1, 0x53, 0xB4, 0x8B, 0x37, 0x5F, 0xA1}; - //u8 msg3_p521r1[] = {'a', 'b', 'c'}; - u8 xq3_p521r1[] = {0x01, 0x51, 0x51, 0x8F, 0x1A, 0xF0, 0xF5, 0x63, 0x51, 0x7E, 0xDD, 0x54, 0x85, 0x19, 0x0D, 0xF9, 0x5A, 0x4B, 0xF5, 0x7B, 0x5C, 0xBA, 0x4C, 0xF2, 0xA9, 0xA3, 0xF6, 0x47, 0x47, 0x25, 0xA3, 0x5F, 0x7A, 0xFE, 0x0A, 0x6D, 0xDE, 0xB8, 0xBE, 0xDB, 0xCD, 0x6A, 0x19, 0x7E, 0x59, 0x2D, 0x40, 0x18, 0x89, 0x01, 0xCE, 0xCD, 0x65, 0x06, 0x99, 0xC9, 0xB5, 0xE4, 0x56, 0xAE, 0xA5, 0xAD, 0xD1, 0x90, 0x52, 0xA8}; - u8 yq3_p521r1[] = {0x00, 0x6F, 0x3B, 0x14, 0x2E, 0xA1, 0xBF, 0xFF, 0x7E, 0x28, 0x37, 0xAD, 0x44, 0xC9, 0xE4, 0xFF, 0x6D, 0x2D, 0x34, 0xC7, 0x31, 0x84, 0xBB, 0xAD, 0x90, 0x02, 0x6D, 0xD5, 0xE6, 0xE8, 0x53, 0x17, 0xD9, 0xDF, 0x45, 0xCA, 0xD7, 0x80, 0x3C, 0x6C, 0x20, 0x03, 0x5B, 0x2F, 0x3F, 0xF6, 0x3A, 0xFF, 0x4E, 0x1B, 0xA6, 0x4D, 0x1C, 0x07, 0x75, 0x77, 0xDA, 0x3F, 0x42, 0x86, 0xC5, 0x8F, 0x0A, 0xEA, 0xE6, 0x43}; + u8 d3_p521r1[] = {0x00,0x65,0xFD,0xA3,0x40,0x94,0x51,0xDC,0xAB,0x0A,0x0E,0xAD,0x45,0x49,0x51,0x12,0xA3,0xD8,0x13,0xC1,0x7B,0xFD,0x34,0xBD,0xF8,0xC1,0x20,0x9D,0x7D,0xF5,0x84,0x91,0x20,0x59,0x77,0x79,0x06,0x0A,0x7F,0xF9,0xD7,0x04,0xAD,0xF7,0x8B,0x57,0x0F,0xFA,0xD6,0xF0,0x62,0xE9,0x5C,0x7E,0x0C,0x5D,0x54,0x81,0xC5,0xB1,0x53,0xB4,0x8B,0x37,0x5F,0xA1}; + //u8 msg3_p521r1[] = {'a','b','c'}; + u8 xq3_p521r1[] = {0x01,0x51,0x51,0x8F,0x1A,0xF0,0xF5,0x63,0x51,0x7E,0xDD,0x54,0x85,0x19,0x0D,0xF9,0x5A,0x4B,0xF5,0x7B,0x5C,0xBA,0x4C,0xF2,0xA9,0xA3,0xF6,0x47,0x47,0x25,0xA3,0x5F,0x7A,0xFE,0x0A,0x6D,0xDE,0xB8,0xBE,0xDB,0xCD,0x6A,0x19,0x7E,0x59,0x2D,0x40,0x18,0x89,0x01,0xCE,0xCD,0x65,0x06,0x99,0xC9,0xB5,0xE4,0x56,0xAE,0xA5,0xAD,0xD1,0x90,0x52,0xA8}; + u8 yq3_p521r1[] = {0x00,0x6F,0x3B,0x14,0x2E,0xA1,0xBF,0xFF,0x7E,0x28,0x37,0xAD,0x44,0xC9,0xE4,0xFF,0x6D,0x2D,0x34,0xC7,0x31,0x84,0xBB,0xAD,0x90,0x02,0x6D,0xD5,0xE6,0xE8,0x53,0x17,0xD9,0xDF,0x45,0xCA,0xD7,0x80,0x3C,0x6C,0x20,0x03,0x5B,0x2F,0x3F,0xF6,0x3A,0xFF,0x4E,0x1B,0xA6,0x4D,0x1C,0x07,0x75,0x77,0xDA,0x3F,0x42,0x86,0xC5,0x8F,0x0A,0xEA,0xE6,0x43}; //signature for the message above - // u8 r3_p521r1[] = {0x01, 0x54, 0xFD, 0x38, 0x36, 0xAF, 0x92, 0xD0, 0xDC, 0xA5, 0x7D, 0xD5, 0x34, 0x1D, 0x30, 0x53, 0x98, 0x85, 0x34, 0xFD, 0xE8, 0x31, 0x8F, 0xC6, 0xAA, 0xAA, 0xB6, 0x8E, 0x2E, 0x6F, 0x43, 0x39, 0xB1, 0x9F, 0x2F, 0x28, 0x1A, 0x7E, 0x0B, 0x22, 0xC2, 0x69, 0xD9, 0x3C, 0xF8, 0x79, 0x4A, 0x92, 0x78, 0x88, 0x0E, 0xD7, 0xDB, 0xB8, 0xD9, 0x36, 0x2C, 0xAE, 0xAC, 0xEE, 0x54, 0x43, 0x20, 0x55, 0x22, 0x51}; - // u8 s3_p521r1[] = {0x01, 0x77, 0x05, 0xA7, 0x03, 0x02, 0x90, 0xD1, 0xCE, 0xB6, 0x05, 0xA9, 0xA1, 0xBB, 0x03, 0xFF, 0x9C, 0xDD, 0x52, 0x1E, 0x87, 0xA6, 0x96, 0xEC, 0x92, 0x6C, 0x8C, 0x10, 0xC8, 0x36, 0x2D, 0xF4, 0x97, 0x53, 0x67, 0x10, 0x1F, 0x67, 0xD1, 0xCF, 0x9B, 0xCC, 0xBF, 0x2F, 0x3D, 0x23, 0x95, 0x34, 0xFA, 0x50, 0x9E, 0x70, 0xAA, 0xC8, 0x51, 0xAE, 0x01, 0xAA, 0xC6, 0x8D, 0x62, 0xF8, 0x66, 0x47, 0x26, 0x60}; + // u8 r3_p521r1[] = {0x01,0x54,0xFD,0x38,0x36,0xAF,0x92,0xD0,0xDC,0xA5,0x7D,0xD5,0x34,0x1D,0x30,0x53,0x98,0x85,0x34,0xFD,0xE8,0x31,0x8F,0xC6,0xAA,0xAA,0xB6,0x8E,0x2E,0x6F,0x43,0x39,0xB1,0x9F,0x2F,0x28,0x1A,0x7E,0x0B,0x22,0xC2,0x69,0xD9,0x3C,0xF8,0x79,0x4A,0x92,0x78,0x88,0x0E,0xD7,0xDB,0xB8,0xD9,0x36,0x2C,0xAE,0xAC,0xEE,0x54,0x43,0x20,0x55,0x22,0x51}; + // u8 s3_p521r1[] = {0x01,0x77,0x05,0xA7,0x03,0x02,0x90,0xD1,0xCE,0xB6,0x05,0xA9,0xA1,0xBB,0x03,0xFF,0x9C,0xDD,0x52,0x1E,0x87,0xA6,0x96,0xEC,0x92,0x6C,0x8C,0x10,0xC8,0x36,0x2D,0xF4,0x97,0x53,0x67,0x10,0x1F,0x67,0xD1,0xCF,0x9B,0xCC,0xBF,0x2F,0x3D,0x23,0x95,0x34,0xFA,0x50,0x9E,0x70,0xAA,0xC8,0x51,0xAE,0x01,0xAA,0xC6,0x8D,0x62,0xF8,0x66,0x47,0x26,0x60}; //KAT for BP256R1 //RFC6932 test vector - u8 d3_bp256r1[] = {0x04, 0x1E, 0xB8, 0xB1, 0xE2, 0xBC, 0x68, 0x1B, 0xCE, 0x8E, 0x39, 0x96, 0x3B, 0x2E, 0x9F, 0xC4, 0x15, 0xB0, 0x52, 0x83, 0x31, 0x3D, 0xD1, 0xA8, 0xBC, 0xC0, 0x55, 0xF1, 0x1A, 0xE4, 0x96, 0x99}; - u8 xq3_bp256r1[] = {0x78, 0x02, 0x84, 0x96, 0xB5, 0xEC, 0xAA, 0xB3, 0xC8, 0xB6, 0xC1, 0x2E, 0x45, 0xDB, 0x1E, 0x02, 0xC9, 0xE4, 0xD2, 0x6B, 0x41, 0x13, 0xBC, 0x4F, 0x01, 0x5F, 0x60, 0xC5, 0xCC, 0xC0, 0xD2, 0x06}; - u8 yq3_bp256r1[] = {0xA2, 0xAE, 0x17, 0x62, 0xA3, 0x83, 0x1C, 0x1D, 0x20, 0xF0, 0x3F, 0x8D, 0x1E, 0x3C, 0x0C, 0x39, 0xAF, 0xE6, 0xF0, 0x9B, 0x4D, 0x44, 0xBB, 0xE8, 0x0C, 0xD1, 0x00, 0x98, 0x7B, 0x05, 0xF9, 0x2B}; - // u8 msg3_bp256r1[] = {'a', 'b', 'c'}; - //u8 r3_bp256r1[] = {0x56, 0xd4, 0xd0, 0xd0, 0xfa, 0x96, 0xa9, 0x60, 0x2b, 0x1f, 0x05, 0xb9, 0x06, 0x34, 0x1c, 0x0a, 0xfa, 0xa2, 0x1b, 0xaa, 0x5e, 0xd6, 0x8d, 0xa7, 0x1f, 0x08, 0xa1, 0xcc, 0x7b, 0x2b, 0xe7, 0xd9}; - //u8 s3_bp256r1[] = {0x40, 0xa6, 0xc8, 0x3e, 0xed, 0x38, 0x8e, 0x26, 0xdf, 0xec, 0xc5, 0x90, 0x63, 0xed, 0x7b, 0x59, 0xde, 0xe1, 0x43, 0x5d, 0x20, 0x5a, 0x93, 0x4d, 0x72, 0x7f, 0xed, 0xfc, 0x9f, 0xa6, 0x4f, 0x35}; + u8 d3_bp256r1[] = {0x04,0x1E,0xB8,0xB1,0xE2,0xBC,0x68,0x1B,0xCE,0x8E,0x39,0x96,0x3B,0x2E,0x9F,0xC4,0x15,0xB0,0x52,0x83,0x31,0x3D,0xD1,0xA8,0xBC,0xC0,0x55,0xF1,0x1A,0xE4,0x96,0x99}; + u8 xq3_bp256r1[] = {0x78,0x02,0x84,0x96,0xB5,0xEC,0xAA,0xB3,0xC8,0xB6,0xC1,0x2E,0x45,0xDB,0x1E,0x02,0xC9,0xE4,0xD2,0x6B,0x41,0x13,0xBC,0x4F,0x01,0x5F,0x60,0xC5,0xCC,0xC0,0xD2,0x06}; + u8 yq3_bp256r1[] = {0xA2,0xAE,0x17,0x62,0xA3,0x83,0x1C,0x1D,0x20,0xF0,0x3F,0x8D,0x1E,0x3C,0x0C,0x39,0xAF,0xE6,0xF0,0x9B,0x4D,0x44,0xBB,0xE8,0x0C,0xD1,0x00,0x98,0x7B,0x05,0xF9,0x2B}; + // u8 msg3_bp256r1[] = {'a','b','c'}; + //u8 r3_bp256r1[] = {0x56,0xd4,0xd0,0xd0,0xfa,0x96,0xa9,0x60,0x2b,0x1f,0x05,0xb9,0x06,0x34,0x1c,0x0a,0xfa,0xa2,0x1b,0xaa,0x5e,0xd6,0x8d,0xa7,0x1f,0x08,0xa1,0xcc,0x7b,0x2b,0xe7,0xd9}; + //u8 s3_bp256r1[] = {0x40,0xa6,0xc8,0x3e,0xed,0x38,0x8e,0x26,0xdf,0xec,0xc5,0x90,0x63,0xed,0x7b,0x59,0xde,0xe1,0x43,0x5d,0x20,0x5a,0x93,0x4d,0x72,0x7f,0xed,0xfc,0x9f,0xa6,0x4f,0x35}; //KAT for BP384R1 //RFC 6932 - u8 d3_bp384r1[] = {0x01, 0x4E, 0xC0, 0x75, 0x5B, 0x78, 0x59, 0x4B, 0xA4, 0x7F, 0xB0, 0xA5, 0x6F, 0x61, 0x73, 0x04, 0x5B, 0x43, 0x31, 0xE7, 0x4B, 0xA1, 0xA6, 0xF4, 0x73, 0x22, 0xE7, 0x0D, 0x79, 0xD8, 0x28, 0xD9, 0x7E, 0x09, 0x58, 0x84, 0xCA, 0x72, 0xB7, 0x3F, 0xDA, 0xBD, 0x59, 0x10, 0xDF, 0x0F, 0xA7, 0x6A}; - u8 xq3_bp384r1[] = {0x45, 0xCB, 0x26, 0xE4, 0x38, 0x4D, 0xAF, 0x6F, 0xB7, 0x76, 0x88, 0x53, 0x07, 0xB9, 0xA3, 0x8B, 0x7A, 0xD1, 0xB5, 0xC6, 0x92, 0xE0, 0xC3, 0x2F, 0x01, 0x25, 0x33, 0x27, 0x78, 0xF3, 0xB8, 0xD3, 0xF5, 0x0C, 0xA3, 0x58, 0x09, 0x9B, 0x30, 0xDE, 0xB5, 0xEE, 0x69, 0xA9, 0x5C, 0x05, 0x8B, 0x4E}; - u8 yq3_bp384r1[] = {0x81, 0x73, 0xA1, 0xC5, 0x4A, 0xFF, 0xA7, 0xE7, 0x81, 0xD0, 0xE1, 0xE1, 0xD1, 0x2C, 0x0D, 0xC2, 0xB7, 0x4F, 0x4D, 0xF5, 0x8E, 0x4A, 0x4E, 0x3A, 0xF7, 0x02, 0x6C, 0x5D, 0x32, 0xDC, 0x53, 0x0A, 0x2C, 0xD8, 0x9C, 0x85, 0x9B, 0xB4, 0xB4, 0xB7, 0x68, 0x49, 0x7F, 0x49, 0xAB, 0x8C, 0xC8, 0x59}; - // u8 msg3_bp384r1[] = {'a', 'b', 'c'}; - //u8 r3_bp384r1[] = {0x12, 0x45, 0xdf, 0xf5, 0x15, 0x1f, 0xb1, 0xed, 0x4b, 0x99, 0xfd, 0xef, 0xe2, 0x48, 0x9e, 0x16, 0xcf, 0x70, 0x5a, 0x2d, 0x7e, 0xa7, 0x7b, 0xa8, 0xea, 0x88, 0x2f, 0x17, 0x8f, 0x48, 0x9f, 0x3d, 0x2c, 0xa2, 0xf4, 0xc5, 0xc5, 0xf5, 0xc9, 0xde, 0x5e, 0xd0, 0xd5, 0x69, 0x7e, 0x93, 0xe8, 0xa8}; - //u8 s3_bp384r1[] = {0x0c, 0xf4, 0xe5, 0x7a, 0xe9, 0x20, 0xbd, 0x4f, 0x49, 0xcb, 0xdc, 0xf8, 0xf0, 0xa5, 0x33, 0xa9, 0x47, 0x25, 0xf5, 0x3e, 0x26, 0x46, 0xde, 0x45, 0xcd, 0x91, 0x83, 0x96, 0xe8, 0xd3, 0xc8, 0x9b, 0xa9, 0x9f, 0x39, 0xf1, 0xdf, 0x96, 0x5b, 0x07, 0xd8, 0x41, 0x0c, 0x67, 0x91, 0xa8, 0x38, 0xa6}; - + u8 d3_bp384r1[] = {0x01,0x4E,0xC0,0x75,0x5B,0x78,0x59,0x4B,0xA4,0x7F,0xB0,0xA5,0x6F,0x61,0x73,0x04,0x5B,0x43,0x31,0xE7,0x4B,0xA1,0xA6,0xF4,0x73,0x22,0xE7,0x0D,0x79,0xD8,0x28,0xD9,0x7E,0x09,0x58,0x84,0xCA,0x72,0xB7,0x3F,0xDA,0xBD,0x59,0x10,0xDF,0x0F,0xA7,0x6A}; + u8 xq3_bp384r1[] = {0x45,0xCB,0x26,0xE4,0x38,0x4D,0xAF,0x6F,0xB7,0x76,0x88,0x53,0x07,0xB9,0xA3,0x8B,0x7A,0xD1,0xB5,0xC6,0x92,0xE0,0xC3,0x2F,0x01,0x25,0x33,0x27,0x78,0xF3,0xB8,0xD3,0xF5,0x0C,0xA3,0x58,0x09,0x9B,0x30,0xDE,0xB5,0xEE,0x69,0xA9,0x5C,0x05,0x8B,0x4E}; + u8 yq3_bp384r1[] = {0x81,0x73,0xA1,0xC5,0x4A,0xFF,0xA7,0xE7,0x81,0xD0,0xE1,0xE1,0xD1,0x2C,0x0D,0xC2,0xB7,0x4F,0x4D,0xF5,0x8E,0x4A,0x4E,0x3A,0xF7,0x02,0x6C,0x5D,0x32,0xDC,0x53,0x0A,0x2C,0xD8,0x9C,0x85,0x9B,0xB4,0xB4,0xB7,0x68,0x49,0x7F,0x49,0xAB,0x8C,0xC8,0x59}; + // u8 msg3_bp384r1[] = {'a','b','c'}; + //u8 r3_bp384r1[] = {0x12,0x45,0xdf,0xf5,0x15,0x1f,0xb1,0xed,0x4b,0x99,0xfd,0xef,0xe2,0x48,0x9e,0x16,0xcf,0x70,0x5a,0x2d,0x7e,0xa7,0x7b,0xa8,0xea,0x88,0x2f,0x17,0x8f,0x48,0x9f,0x3d,0x2c,0xa2,0xf4,0xc5,0xc5,0xf5,0xc9,0xde,0x5e,0xd0,0xd5,0x69,0x7e,0x93,0xe8,0xa8}; + //u8 s3_bp384r1[] = {0x0c,0xf4,0xe5,0x7a,0xe9,0x20,0xbd,0x4f,0x49,0xcb,0xdc,0xf8,0xf0,0xa5,0x33,0xa9,0x47,0x25,0xf5,0x3e,0x26,0x46,0xde,0x45,0xcd,0x91,0x83,0x96,0xe8,0xd3,0xc8,0x9b,0xa9,0x9f,0x39,0xf1,0xdf,0x96,0x5b,0x07,0xd8,0x41,0x0c,0x67,0x91,0xa8,0x38,0xa6}; + //KAT for BP512R1 //RFC 6932 - u8 d3_bp512r1[] = {0x63, 0x6B, 0x6B, 0xE0, 0x48, 0x2A, 0x6C, 0x1C, 0x41, 0xAA, 0x7A, 0xE7, 0xB2, 0x45, 0xE9, 0x83, 0x39, 0x2D, 0xB9, 0x4C, 0xEC, 0xEA, 0x26, 0x60, 0xA3, 0x79, 0xCF, 0xE1, 0x59, 0x55, 0x9E, 0x35, 0x75, 0x81, 0x82, 0x53, 0x91, 0x17, 0x5F, 0xC1, 0x95, 0xD2, 0x8B, 0xAC, 0x0C, 0xF0, 0x3A, 0x78, 0x41, 0xA3, 0x83, 0xB9, 0x5C, 0x26, 0x2B, 0x98, 0x37, 0x82, 0x87, 0x4C, 0xCE, 0x6F, 0xE3, 0x33}; - u8 xq3_bp512r1[] = {0x05, 0x62, 0xE6, 0x8B, 0x9A, 0xF7, 0xCB, 0xFD, 0x55, 0x65, 0xC6, 0xB1, 0x68, 0x83, 0xB7, 0x77, 0xFF, 0x11, 0xC1, 0x99, 0x16, 0x1E, 0xCC, 0x42, 0x7A, 0x39, 0xD1, 0x7E, 0xC2, 0x16, 0x64, 0x99, 0x38, 0x95, 0x71, 0xD6, 0xA9, 0x94, 0x97, 0x7C, 0x56, 0xAD, 0x82, 0x52, 0x65, 0x8B, 0xA8, 0xA1, 0xB7, 0x2A, 0xE4, 0x2F, 0x4F, 0xB7, 0x53, 0x21, 0x51, 0xAF, 0xC3, 0xEF, 0x09, 0x71, 0xCC, 0xDA}; - u8 yq3_bp512r1[] = {0xA7, 0xCA, 0x2D, 0x81, 0x91, 0xE2, 0x17, 0x76, 0xA8, 0x98, 0x60, 0xAF, 0xBC, 0x1F, 0x58, 0x2F, 0xAA, 0x30, 0x8D, 0x55, 0x1C, 0x1D, 0xC6, 0x13, 0x3A, 0xF9, 0xF9, 0xC3, 0xCA, 0xD5, 0x99, 0x98, 0xD7, 0x00, 0x79, 0x54, 0x81, 0x40, 0xB9, 0x0B, 0x1F, 0x31, 0x1A, 0xFB, 0x37, 0x8A, 0xA8, 0x1F, 0x51, 0xB2, 0x75, 0xB2, 0xBE, 0x6B, 0x7D, 0xEE, 0x97, 0x8E, 0xFC, 0x73, 0x43, 0xEA, 0x64, 0x2E}; - //u8 msg3_bp512r1[] = {'a', 'b', 'c'}; - //u8 r3_bp512r1[] = {0x93, 0x0b, 0x87, 0x41, 0x6f, 0x43, 0x6c, 0x5d, 0xba, 0x06, 0xc1, 0x63, 0x15, 0x3e, 0x82, 0x87, 0x59, 0xbd, 0x4a, 0x66, 0xc3, 0x34, 0xe0, 0x8d, 0x2d, 0x66, 0x6f, 0xe8, 0x23, 0xb0, 0x83, 0xad, 0xec, 0xd6, 0xb6, 0x15, 0xf6, 0xfb, 0xf0, 0xa8, 0x50, 0xc7, 0x3f, 0xe3, 0xfa, 0xbb, 0xb2, 0xdc, 0x9d, 0x1a, 0xa4, 0xc5, 0xca, 0x53, 0x72, 0x22, 0xb3, 0x48, 0x2f, 0xeb, 0xad, 0x4b, 0xe1, 0x34}; - //u8 s3_bp512r1[] = {0x3e, 0x2f, 0xcf, 0xa1, 0x2d, 0x1a, 0x6e, 0xd8, 0x08, 0x30, 0x5b, 0xea, 0xce, 0xd7, 0xe7, 0xa0, 0xbb, 0xf8, 0x48, 0x62, 0x5a, 0xca, 0xfc, 0x3b, 0x8e, 0x15, 0x97, 0xb4, 0xc3, 0x2e, 0xf2, 0x48, 0x84, 0x90, 0x43, 0x9b, 0x20, 0x80, 0xe9, 0xef, 0x7b, 0x7d, 0xdb, 0x22, 0xad, 0x41, 0xbd, 0x1e, 0x58, 0xdb, 0xb8, 0x4a, 0xf1, 0xe2, 0x29, 0xe4, 0x16, 0xc0, 0xd9, 0x1e, 0x90, 0x7a, 0xf2, 0xa4}; + u8 d3_bp512r1[] = {0x63,0x6B,0x6B,0xE0,0x48,0x2A,0x6C,0x1C,0x41,0xAA,0x7A,0xE7,0xB2,0x45,0xE9,0x83,0x39,0x2D,0xB9,0x4C,0xEC,0xEA,0x26,0x60,0xA3,0x79,0xCF,0xE1,0x59,0x55,0x9E,0x35,0x75,0x81,0x82,0x53,0x91,0x17,0x5F,0xC1,0x95,0xD2,0x8B,0xAC,0x0C,0xF0,0x3A,0x78,0x41,0xA3,0x83,0xB9,0x5C,0x26,0x2B,0x98,0x37,0x82,0x87,0x4C,0xCE,0x6F,0xE3,0x33}; + u8 xq3_bp512r1[] = {0x05,0x62,0xE6,0x8B,0x9A,0xF7,0xCB,0xFD,0x55,0x65,0xC6,0xB1,0x68,0x83,0xB7,0x77,0xFF,0x11,0xC1,0x99,0x16,0x1E,0xCC,0x42,0x7A,0x39,0xD1,0x7E,0xC2,0x16,0x64,0x99,0x38,0x95,0x71,0xD6,0xA9,0x94,0x97,0x7C,0x56,0xAD,0x82,0x52,0x65,0x8B,0xA8,0xA1,0xB7,0x2A,0xE4,0x2F,0x4F,0xB7,0x53,0x21,0x51,0xAF,0xC3,0xEF,0x09,0x71,0xCC,0xDA}; + u8 yq3_bp512r1[] = {0xA7,0xCA,0x2D,0x81,0x91,0xE2,0x17,0x76,0xA8,0x98,0x60,0xAF,0xBC,0x1F,0x58,0x2F,0xAA,0x30,0x8D,0x55,0x1C,0x1D,0xC6,0x13,0x3A,0xF9,0xF9,0xC3,0xCA,0xD5,0x99,0x98,0xD7,0x00,0x79,0x54,0x81,0x40,0xB9,0x0B,0x1F,0x31,0x1A,0xFB,0x37,0x8A,0xA8,0x1F,0x51,0xB2,0x75,0xB2,0xBE,0x6B,0x7D,0xEE,0x97,0x8E,0xFC,0x73,0x43,0xEA,0x64,0x2E}; + //u8 msg3_bp512r1[] = {'a','b','c'}; + //u8 r3_bp512r1[] = {0x93,0x0b,0x87,0x41,0x6f,0x43,0x6c,0x5d,0xba,0x06,0xc1,0x63,0x15,0x3e,0x82,0x87,0x59,0xbd,0x4a,0x66,0xc3,0x34,0xe0,0x8d,0x2d,0x66,0x6f,0xe8,0x23,0xb0,0x83,0xad,0xec,0xd6,0xb6,0x15,0xf6,0xfb,0xf0,0xa8,0x50,0xc7,0x3f,0xe3,0xfa,0xbb,0xb2,0xdc,0x9d,0x1a,0xa4,0xc5,0xca,0x53,0x72,0x22,0xb3,0x48,0x2f,0xeb,0xad,0x4b,0xe1,0x34}; + //u8 s3_bp512r1[] = {0x3e,0x2f,0xcf,0xa1,0x2d,0x1a,0x6e,0xd8,0x08,0x30,0x5b,0xea,0xce,0xd7,0xe7,0xa0,0xbb,0xf8,0x48,0x62,0x5a,0xca,0xfc,0x3b,0x8e,0x15,0x97,0xb4,0xc3,0x2e,0xf2,0x48,0x84,0x90,0x43,0x9b,0x20,0x80,0xe9,0xef,0x7b,0x7d,0xdb,0x22,0xad,0x41,0xbd,0x1e,0x58,0xdb,0xb8,0x4a,0xf1,0xe2,0x29,0xe4,0x16,0xc0,0xd9,0x1e,0x90,0x7a,0xf2,0xa4}; u8 r[SECP521R1_BYTESIZE]; u8 s[SECP521R1_BYTESIZE]; - u8 msg[3] = {'a', 'b', 'c'}; + u8 msg[3] = {'a','b','c'}; u8 tab_curve[MAX_CURVE]; u8 tab_hash[MAX_HASH_FUNCTIONS]; - int itab_curve, itab_hash; + int itab_curve,itab_hash; u8 *msg3; u8 *d3; int msg3_len; int resu; - int i, loop; + int i,loop; int configuration; int count; int hash; @@ -175,24 +175,24 @@ int test_ecdsa_curves(void) ucl_type_ecc_u8_affine_point q3; ucl_type_ecdsa_signature signature; ucl_type_curve *curve_params; - int (*hash_function_ptr)(u8*, u8*, u32); + int (*hash_function_ptr)(u8*,u8*,u32); char curve_name[MAX_CURVE][20]; char hash_name[MAX_HASH_FUNCTIONS][20]; - sprintf(hash_name[UCL_SHA256], "sha256"); - sprintf(hash_name[UCL_SHA384], "sha384"); - sprintf(hash_name[UCL_SHA512], "sha512"); - - sprintf(curve_name[SECP192R1], "p192r1"); - sprintf(curve_name[SECP256R1], "p256r1"); - sprintf(curve_name[SECP384R1], "p384r1"); - sprintf(curve_name[SECP521R1], "p521r1"); - sprintf(curve_name[BP256R1], "bp256r1"); - sprintf(curve_name[BP384R1], "bp384r1"); - sprintf(curve_name[BP512R1], "bp512r1"); + sprintf(hash_name[UCL_SHA256],"sha256"); + sprintf(hash_name[UCL_SHA384],"sha384"); + sprintf(hash_name[UCL_SHA512],"sha512"); + + sprintf(curve_name[SECP192R1],"p192r1"); + sprintf(curve_name[SECP256R1],"p256r1"); + sprintf(curve_name[SECP384R1],"p384r1"); + sprintf(curve_name[SECP521R1],"p521r1"); + sprintf(curve_name[BP256R1],"bp256r1"); + sprintf(curve_name[BP384R1],"bp384r1"); + sprintf(curve_name[BP512R1],"bp512r1"); - + #ifdef VERBOSE PRINTF("TEST ECDSA curves\n"); #endif @@ -212,7 +212,7 @@ int test_ecdsa_curves(void) curve = tab_curve[itab_curve]; hash = tab_hash[itab_hash]; #ifdef VERBOSE - PRINTF("ECDSA-%s-%s TEST START -----\n", curve_name[curve], hash_name[hash]); + PRINTF("ECDSA-%s-%s TEST START -----\n",curve_name[curve],hash_name[hash]); #endif signature.r = r; signature.s = s; @@ -281,33 +281,33 @@ int test_ecdsa_curves(void) default: break; } - //loop on sign+verify cycles, with RFC 4754 parameters fixed + //loop on sign+verify cycles,with RFC 4754 parameters fixed //only the ECDSA random number is changing loop = LOOP; #ifdef VERBOSE - PRINTF("ECDSA COMPUTATION %s-%s SIGN+VERIFY, loop = %d ", curve_name[curve], hash_name[hash], loop); + PRINTF("ECDSA COMPUTATION %s-%s SIGN+VERIFY,loop = %d ",curve_name[curve],hash_name[hash],loop); #endif - for (count = 0, i = 0; i < loop; i++) { + for (count = 0,i = 0; i < loop; i++) { //generating a new signature and verifying it configuration = (curve << UCL_CURVE_SHIFT) ^ (UCL_MSG_INPUT << UCL_INPUT_SHIFT) ^ (hash << UCL_HASH_SHIFT); - resu = ucl_ecdsa_signature(signature, d3, hash_function_ptr, msg3, msg3_len, curve_params, configuration); + resu = ucl_ecdsa_signature(signature,d3,hash_function_ptr,msg3,msg3_len,curve_params,configuration); #ifdef DISPLAY for (i = 0; i < curve_params->curve_bsize; i++) { - PRINTF("%02x", signature.r[i]); + PRINTF("%02x",signature.r[i]); } PRINTF("\n"); for (i = 0; i < curve_params->curve_bsize; i++) { - PRINTF("%02x", signature.s[i]); + PRINTF("%02x",signature.s[i]); } PRINTF("\n"); #endif if (UCL_OK != resu) { - printf("error signature = %d\n", resu); + printf("error signature = %d\n",resu); } - resu = ucl_ecdsa_verification(q3, signature, hash_function_ptr, msg3, msg3_len, curve_params, configuration); + resu = ucl_ecdsa_verification(q3,signature,hash_function_ptr,msg3,msg3_len,curve_params,configuration); if (resu == UCL_ERROR) { - PRINTF("ECDSA SIGNATURE TEST-LOOP %s-%s NOK %d \n", curve_name[curve], hash_name[hash], resu); + PRINTF("ECDSA SIGNATURE TEST-LOOP %s-%s NOK %d \n",curve_name[curve],hash_name[hash],resu); return(UCL_ERROR); } else { count++; @@ -317,9 +317,9 @@ int test_ecdsa_curves(void) if (loop == count) { PRINTF("OK\n"); } else { - PRINTF("NOK (%d/%d)\n", count, loop); + PRINTF("NOK (%d/%d)\n",count,loop); } - PRINTF( "ECDSA %s-%s TEST END -----\n", curve_name[curve], hash_name[hash]); + PRINTF( "ECDSA %s-%s TEST END -----\n",curve_name[curve],hash_name[hash]); #endif } } diff --git a/Libraries/FCL/src/include/aestest.h b/Libraries/FCL/src/include/aestest.h index 8a8a653aba7..63051df0345 100644 --- a/Libraries/FCL/src/include/aestest.h +++ b/Libraries/FCL/src/include/aestest.h @@ -1,49 +1,49 @@ /****************************************************************************** * - * Copyright 2023 Analog Devices, Inc. + * Copyright 2023 Analog Devices,Inc. * - * Licensed under the Apache License, Version 2.0 (the "License"); + * Licensed under the Apache License,Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software + * Unless required by applicable law or agreed to in writing,software * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** * - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * Copyright (C) 2023 Maxim Integrated Products,Inc.,All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a + * Permission is hereby granted,free of charge,to any person obtaining a * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: + * to deal in the Software without restriction,including without limitation + * the rights to use,copy,modify,merge,publish,distribute,sublicense, + * and/or sell copies of the Software,and to permit persons to whom the + * Software is furnished to do so,subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * THE SOFTWARE IS PROVIDED "AS IS",WITHOUT WARRANTY OF ANY KIND,EXPRESS + * OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM,DAMAGES + * OR OTHER LIABILITY,WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE, + * ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. + * Except as contained in this notice,the name of Maxim Integrated + * Products,Inc. shall not be used except as stated in the Maxim Integrated + * Products,Inc. Branding Policy. * * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all + * of trade secrets,proprietary technology,copyrights,patents, + * trademarks,maskwork rights,or any other form of intellectual + * property whatsoever. Maxim Integrated Products,Inc. retains all * ownership rights. * ******************************************************************************/ diff --git a/Libraries/FCL/src/include/ecdsatest.h b/Libraries/FCL/src/include/ecdsatest.h index 0bf6b396d96..78e7d16b980 100644 --- a/Libraries/FCL/src/include/ecdsatest.h +++ b/Libraries/FCL/src/include/ecdsatest.h @@ -1,49 +1,49 @@ /****************************************************************************** * - * Copyright 2023 Analog Devices, Inc. + * Copyright 2023 Analog Devices,Inc. * - * Licensed under the Apache License, Version 2.0 (the "License"); + * Licensed under the Apache License,Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software + * Unless required by applicable law or agreed to in writing,software * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** * - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * Copyright (C) 2023 Maxim Integrated Products,Inc.,All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a + * Permission is hereby granted,free of charge,to any person obtaining a * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: + * to deal in the Software without restriction,including without limitation + * the rights to use,copy,modify,merge,publish,distribute,sublicense, + * and/or sell copies of the Software,and to permit persons to whom the + * Software is furnished to do so,subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * THE SOFTWARE IS PROVIDED "AS IS",WITHOUT WARRANTY OF ANY KIND,EXPRESS + * OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM,DAMAGES + * OR OTHER LIABILITY,WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE, + * ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. + * Except as contained in this notice,the name of Maxim Integrated + * Products,Inc. shall not be used except as stated in the Maxim Integrated + * Products,Inc. Branding Policy. * * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all + * of trade secrets,proprietary technology,copyrights,patents, + * trademarks,maskwork rights,or any other form of intellectual + * property whatsoever. Maxim Integrated Products,Inc. retains all * ownership rights. * ******************************************************************************/ diff --git a/Libraries/FCL/src/include/shatest.h b/Libraries/FCL/src/include/shatest.h index 788e73cb63d..f84907c6bd2 100644 --- a/Libraries/FCL/src/include/shatest.h +++ b/Libraries/FCL/src/include/shatest.h @@ -1,49 +1,49 @@ /****************************************************************************** * - * Copyright 2023 Analog Devices, Inc. + * Copyright 2023 Analog Devices,Inc. * - * Licensed under the Apache License, Version 2.0 (the "License"); + * Licensed under the Apache License,Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software + * Unless required by applicable law or agreed to in writing,software * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** * - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * Copyright (C) 2023 Maxim Integrated Products,Inc.,All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a + * Permission is hereby granted,free of charge,to any person obtaining a * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: + * to deal in the Software without restriction,including without limitation + * the rights to use,copy,modify,merge,publish,distribute,sublicense, + * and/or sell copies of the Software,and to permit persons to whom the + * Software is furnished to do so,subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * THE SOFTWARE IS PROVIDED "AS IS",WITHOUT WARRANTY OF ANY KIND,EXPRESS + * OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM,DAMAGES + * OR OTHER LIABILITY,WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE, + * ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. + * Except as contained in this notice,the name of Maxim Integrated + * Products,Inc. shall not be used except as stated in the Maxim Integrated + * Products,Inc. Branding Policy. * * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all + * of trade secrets,proprietary technology,copyrights,patents, + * trademarks,maskwork rights,or any other form of intellectual + * property whatsoever. Maxim Integrated Products,Inc. retains all * ownership rights. * ******************************************************************************/ diff --git a/Libraries/FCL/src/include/ucl_testing_config.h b/Libraries/FCL/src/include/ucl_testing_config.h index c7be04be45f..48b4fa57735 100644 --- a/Libraries/FCL/src/include/ucl_testing_config.h +++ b/Libraries/FCL/src/include/ucl_testing_config.h @@ -1,49 +1,49 @@ /****************************************************************************** * - * Copyright 2023 Analog Devices, Inc. + * Copyright 2023 Analog Devices,Inc. * - * Licensed under the Apache License, Version 2.0 (the "License"); + * Licensed under the Apache License,Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software + * Unless required by applicable law or agreed to in writing,software * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** * - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * Copyright (C) 2023 Maxim Integrated Products,Inc.,All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a + * Permission is hereby granted,free of charge,to any person obtaining a * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: + * to deal in the Software without restriction,including without limitation + * the rights to use,copy,modify,merge,publish,distribute,sublicense, + * and/or sell copies of the Software,and to permit persons to whom the + * Software is furnished to do so,subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * THE SOFTWARE IS PROVIDED "AS IS",WITHOUT WARRANTY OF ANY KIND,EXPRESS + * OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM,DAMAGES + * OR OTHER LIABILITY,WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE, + * ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. + * Except as contained in this notice,the name of Maxim Integrated + * Products,Inc. shall not be used except as stated in the Maxim Integrated + * Products,Inc. Branding Policy. * * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all + * of trade secrets,proprietary technology,copyrights,patents, + * trademarks,maskwork rights,or any other form of intellectual + * property whatsoever. Maxim Integrated Products,Inc. retains all * ownership rights. * ******************************************************************************/ diff --git a/Libraries/FCL/src/main.c b/Libraries/FCL/src/main.c index 2987fd5209c..317473ce729 100644 --- a/Libraries/FCL/src/main.c +++ b/Libraries/FCL/src/main.c @@ -1,49 +1,49 @@ /****************************************************************************** * - * Copyright 2023 Analog Devices, Inc. + * Copyright 2023 Analog Devices,Inc. * - * Licensed under the Apache License, Version 2.0 (the "License"); + * Licensed under the Apache License,Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software + * Unless required by applicable law or agreed to in writing,software * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** * - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * Copyright (C) 2023 Maxim Integrated Products,Inc.,All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a + * Permission is hereby granted,free of charge,to any person obtaining a * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: + * to deal in the Software without restriction,including without limitation + * the rights to use,copy,modify,merge,publish,distribute,sublicense, + * and/or sell copies of the Software,and to permit persons to whom the + * Software is furnished to do so,subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * THE SOFTWARE IS PROVIDED "AS IS",WITHOUT WARRANTY OF ANY KIND,EXPRESS + * OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM,DAMAGES + * OR OTHER LIABILITY,WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE, + * ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. + * Except as contained in this notice,the name of Maxim Integrated + * Products,Inc. shall not be used except as stated in the Maxim Integrated + * Products,Inc. Branding Policy. * * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all + * of trade secrets,proprietary technology,copyrights,patents, + * trademarks,maskwork rights,or any other form of intellectual + * property whatsoever. Maxim Integrated Products,Inc. retains all * ownership rights. * ******************************************************************************/ @@ -101,7 +101,7 @@ int ucl_testing(void) int main(void) { int result = UCL_OK; - PRINTF("FCL validation tool %d %d %d\n", MAJVER, MINVER, ZVER); + PRINTF("FCL validation tool %d %d %d\n",MAJVER,MINVER,ZVER); ucl_testing(); PRINTF("this is the end...\n"); diff --git a/Libraries/FCL/src/sha512_stone.c b/Libraries/FCL/src/sha512_stone.c index 5a20282d2a0..4142158fd09 100644 --- a/Libraries/FCL/src/sha512_stone.c +++ b/Libraries/FCL/src/sha512_stone.c @@ -1,49 +1,49 @@ /****************************************************************************** * - * Copyright 2023 Analog Devices, Inc. + * Copyright 2023 Analog Devices,Inc. * - * Licensed under the Apache License, Version 2.0 (the "License"); + * Licensed under the Apache License,Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software + * Unless required by applicable law or agreed to in writing,software * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** * - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * Copyright (C) 2023 Maxim Integrated Products,Inc.,All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a + * Permission is hereby granted,free of charge,to any person obtaining a * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: + * to deal in the Software without restriction,including without limitation + * the rights to use,copy,modify,merge,publish,distribute,sublicense, + * and/or sell copies of the Software,and to permit persons to whom the + * Software is furnished to do so,subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * THE SOFTWARE IS PROVIDED "AS IS",WITHOUT WARRANTY OF ANY KIND,EXPRESS + * OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM,DAMAGES + * OR OTHER LIABILITY,WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE, + * ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. + * Except as contained in this notice,the name of Maxim Integrated + * Products,Inc. shall not be used except as stated in the Maxim Integrated + * Products,Inc. Branding Policy. * * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all + * of trade secrets,proprietary technology,copyrights,patents, + * trademarks,maskwork rights,or any other form of intellectual + * property whatsoever. Maxim Integrated Products,Inc. retains all * ownership rights. * ******************************************************************************/ @@ -57,41 +57,41 @@ #include "ucl/ucl_retdefs.h" #include "ucl/ucl_sha512.h" -#define ROTR(x, n) (((x) >> (n)) | ((x) << (64 - n))) -#define SHR(x, n) ((x) >> (n)) -#define CH(x, y, z) ((z) ^ ((x) & ((y) ^ (z)))) -#define MAJ(x, y, z) (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z))) -#define BIGSIGMA1(x) (((ROTR(x, 14)) ^ (ROTR(x, 18)) ^ (ROTR(x, 41)))) -#define BIGSIGMA0(x) (((ROTR(x, 28)) ^ (ROTR(x, 34)) ^ (ROTR(x, 39)))) -#define SIGMA0(x) (((ROTR(x, 1)) ^ (ROTR(x, 8)) ^ (SHR(x, 7)))) -#define SIGMA1(x) ((ROTR(x, 19) ^ ROTR(x, 61) ^ SHR(x, 6))) -#define ROUND(a, b, c, e, f, g, h, i) \ - T1 = h + BIGSIGMA1(e) + CH(e, f, g) + K[i] + W[i]; \ - T2 = BIGSIGMA0(a) + MAJ(a, b, c); +#define ROTR(x,n) (((x) >> (n)) | ((x) << (64 - n))) +#define SHR(x,n) ((x) >> (n)) +#define CH(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) +#define MAJ(x,y,z) (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z))) +#define BIGSIGMA1(x) (((ROTR(x,14)) ^ (ROTR(x,18)) ^ (ROTR(x,41)))) +#define BIGSIGMA0(x) (((ROTR(x,28)) ^ (ROTR(x,34)) ^ (ROTR(x,39)))) +#define SIGMA0(x) (((ROTR(x,1)) ^ (ROTR(x,8)) ^ (SHR(x,7)))) +#define SIGMA1(x) ((ROTR(x,19) ^ ROTR(x,61) ^ SHR(x,6))) +#define ROUND(a,b,c,e,f,g,h,i) \ + T1 = h + BIGSIGMA1(e) + CH(e,f,g) + K[i] + W[i]; \ + T2 = BIGSIGMA0(a) + MAJ(a,b,c); static const u64 K[80] = { - 0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL, 0xb5c0fbcfec4d3b2fULL, 0xe9b5dba58189dbbcULL, 0x3956c25bf348b538ULL, 0x59f111f1b605d019ULL, - 0x923f82a4af194f9bULL, 0xab1c5ed5da6d8118ULL, 0xd807aa98a3030242ULL, 0x12835b0145706fbeULL, 0x243185be4ee4b28cULL, 0x550c7dc3d5ffb4e2ULL, - 0x72be5d74f27b896fULL, 0x80deb1fe3b1696b1ULL, 0x9bdc06a725c71235ULL, 0xc19bf174cf692694ULL, 0xe49b69c19ef14ad2ULL, 0xefbe4786384f25e3ULL, - 0x0fc19dc68b8cd5b5ULL, 0x240ca1cc77ac9c65ULL, 0x2de92c6f592b0275ULL, 0x4a7484aa6ea6e483ULL, 0x5cb0a9dcbd41fbd4ULL, 0x76f988da831153b5ULL, - 0x983e5152ee66dfabULL, 0xa831c66d2db43210ULL, 0xb00327c898fb213fULL, 0xbf597fc7beef0ee4ULL, 0xc6e00bf33da88fc2ULL, 0xd5a79147930aa725ULL, - 0x06ca6351e003826fULL, 0x142929670a0e6e70ULL, 0x27b70a8546d22ffcULL, 0x2e1b21385c26c926ULL, 0x4d2c6dfc5ac42aedULL, 0x53380d139d95b3dfULL, - 0x650a73548baf63deULL, 0x766a0abb3c77b2a8ULL, 0x81c2c92e47edaee6ULL, 0x92722c851482353bULL, 0xa2bfe8a14cf10364ULL, 0xa81a664bbc423001ULL, - 0xc24b8b70d0f89791ULL, 0xc76c51a30654be30ULL, 0xd192e819d6ef5218ULL, 0xd69906245565a910ULL, 0xf40e35855771202aULL, 0x106aa07032bbd1b8ULL, - 0x19a4c116b8d2d0c8ULL, 0x1e376c085141ab53ULL, 0x2748774cdf8eeb99ULL, 0x34b0bcb5e19b48a8ULL, 0x391c0cb3c5c95a63ULL, 0x4ed8aa4ae3418acbULL, - 0x5b9cca4f7763e373ULL, 0x682e6ff3d6b2b8a3ULL, 0x748f82ee5defb2fcULL, 0x78a5636f43172f60ULL, 0x84c87814a1f0ab72ULL, 0x8cc702081a6439ecULL, - 0x90befffa23631e28ULL, 0xa4506cebde82bde9ULL, 0xbef9a3f7b2c67915ULL, 0xc67178f2e372532bULL, 0xca273eceea26619cULL, 0xd186b8c721c0c207ULL, - 0xeada7dd6cde0eb1eULL, 0xf57d4f7fee6ed178ULL, 0x06f067aa72176fbaULL, 0x0a637dc5a2c898a6ULL, 0x113f9804bef90daeULL, 0x1b710b35131c471bULL, - 0x28db77f523047d84ULL, 0x32caab7b40c72493ULL, 0x3c9ebe0a15c9bebcULL, 0x431d67c49c100d4cULL, 0x4cc5d4becb3e42b6ULL, 0x597f299cfc657e2aULL, - 0x5fcb6fab3ad6faecULL, 0x6c44198c4a475817ULL, + 0x428a2f98d728ae22ULL,0x7137449123ef65cdULL,0xb5c0fbcfec4d3b2fULL,0xe9b5dba58189dbbcULL,0x3956c25bf348b538ULL,0x59f111f1b605d019ULL, + 0x923f82a4af194f9bULL,0xab1c5ed5da6d8118ULL,0xd807aa98a3030242ULL,0x12835b0145706fbeULL,0x243185be4ee4b28cULL,0x550c7dc3d5ffb4e2ULL, + 0x72be5d74f27b896fULL,0x80deb1fe3b1696b1ULL,0x9bdc06a725c71235ULL,0xc19bf174cf692694ULL,0xe49b69c19ef14ad2ULL,0xefbe4786384f25e3ULL, + 0x0fc19dc68b8cd5b5ULL,0x240ca1cc77ac9c65ULL,0x2de92c6f592b0275ULL,0x4a7484aa6ea6e483ULL,0x5cb0a9dcbd41fbd4ULL,0x76f988da831153b5ULL, + 0x983e5152ee66dfabULL,0xa831c66d2db43210ULL,0xb00327c898fb213fULL,0xbf597fc7beef0ee4ULL,0xc6e00bf33da88fc2ULL,0xd5a79147930aa725ULL, + 0x06ca6351e003826fULL,0x142929670a0e6e70ULL,0x27b70a8546d22ffcULL,0x2e1b21385c26c926ULL,0x4d2c6dfc5ac42aedULL,0x53380d139d95b3dfULL, + 0x650a73548baf63deULL,0x766a0abb3c77b2a8ULL,0x81c2c92e47edaee6ULL,0x92722c851482353bULL,0xa2bfe8a14cf10364ULL,0xa81a664bbc423001ULL, + 0xc24b8b70d0f89791ULL,0xc76c51a30654be30ULL,0xd192e819d6ef5218ULL,0xd69906245565a910ULL,0xf40e35855771202aULL,0x106aa07032bbd1b8ULL, + 0x19a4c116b8d2d0c8ULL,0x1e376c085141ab53ULL,0x2748774cdf8eeb99ULL,0x34b0bcb5e19b48a8ULL,0x391c0cb3c5c95a63ULL,0x4ed8aa4ae3418acbULL, + 0x5b9cca4f7763e373ULL,0x682e6ff3d6b2b8a3ULL,0x748f82ee5defb2fcULL,0x78a5636f43172f60ULL,0x84c87814a1f0ab72ULL,0x8cc702081a6439ecULL, + 0x90befffa23631e28ULL,0xa4506cebde82bde9ULL,0xbef9a3f7b2c67915ULL,0xc67178f2e372532bULL,0xca273eceea26619cULL,0xd186b8c721c0c207ULL, + 0xeada7dd6cde0eb1eULL,0xf57d4f7fee6ed178ULL,0x06f067aa72176fbaULL,0x0a637dc5a2c898a6ULL,0x113f9804bef90daeULL,0x1b710b35131c471bULL, + 0x28db77f523047d84ULL,0x32caab7b40c72493ULL,0x3c9ebe0a15c9bebcULL,0x431d67c49c100d4cULL,0x4cc5d4becb3e42b6ULL,0x597f299cfc657e2aULL, + 0x5fcb6fab3ad6faecULL,0x6c44198c4a475817ULL, }; -void sha512_stone(u64 hash[8], u64 stone[16]) +void sha512_stone(u64 hash[8],u64 stone[16]) { int i; u64 W[80]; - u64 A, B, C, D, E, F, G, H, T1, T2; - + u64 A,B,C,D,E,F,G,H,T1,T2; + A = hash[0]; B = hash[1]; C = hash[2]; @@ -110,7 +110,7 @@ void sha512_stone(u64 hash[8], u64 stone[16]) } for (i = 0; i < 80; i++) { - ROUND(A, B, C, E, F, G, H, i); + ROUND(A,B,C,E,F,G,H,i); H = G; G = F; F = E; diff --git a/Libraries/FCL/src/shatest.c b/Libraries/FCL/src/shatest.c index 9518c64032c..1cd36a8dc97 100644 --- a/Libraries/FCL/src/shatest.c +++ b/Libraries/FCL/src/shatest.c @@ -1,49 +1,49 @@ /****************************************************************************** * - * Copyright 2023 Analog Devices, Inc. + * Copyright 2023 Analog Devices,Inc. * - * Licensed under the Apache License, Version 2.0 (the "License"); + * Licensed under the Apache License,Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software + * Unless required by applicable law or agreed to in writing,software * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** * - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * Copyright (C) 2023 Maxim Integrated Products,Inc.,All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a + * Permission is hereby granted,free of charge,to any person obtaining a * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: + * to deal in the Software without restriction,including without limitation + * the rights to use,copy,modify,merge,publish,distribute,sublicense, + * and/or sell copies of the Software,and to permit persons to whom the + * Software is furnished to do so,subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * THE SOFTWARE IS PROVIDED "AS IS",WITHOUT WARRANTY OF ANY KIND,EXPRESS + * OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM,DAMAGES + * OR OTHER LIABILITY,WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE, + * ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. + * Except as contained in this notice,the name of Maxim Integrated + * Products,Inc. shall not be used except as stated in the Maxim Integrated + * Products,Inc. Branding Policy. * * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all + * of trade secrets,proprietary technology,copyrights,patents, + * trademarks,maskwork rights,or any other form of intellectual + * property whatsoever. Maxim Integrated Products,Inc. retains all * ownership rights. * ******************************************************************************/ @@ -62,56 +62,56 @@ #include "string.h" -//HMAC RFC 4231 test vectors for HMAC SHA-224, SHA-256, SHA-384 and SHA-512 -u8 key_rfc4231_1[] = {0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b}; -u8 msg_rfc4231_1[] = {0x48, 0x69, 0x20, 0x54, 0x68, 0x65, 0x72, 0x65}; -u8 mac224_rfc4231_1[] = {0x89, 0x6f, 0xb1, 0x12, 0x8a, 0xbb, 0xdf, 0x19, 0x68, 0x32, 0x10, 0x7c, 0xd4, 0x9d, 0xf3, 0x3f, 0x47, 0xb4, 0xb1, 0x16, 0x99, 0x12, 0xba, 0x4f, 0x53, 0x68, 0x4b, 0x22}; -u8 mac256_rfc4231_1[] = {0xb0, 0x34, 0x4c, 0x61, 0xd8, 0xdb, 0x38, 0x53, 0x5c, 0xa8, 0xaf, 0xce, 0xaf, 0x0b, 0xf1, 0x2b, 0x88, 0x1d, 0xc2, 0x00, 0xc9, 0x83, 0x3d, 0xa7, 0x26, 0xe9, 0x37, 0x6c, 0x2e, 0x32, 0xcf, 0xf7}; -u8 mac384_rfc4231_1[] = {0xaf, 0xd0, 0x39, 0x44, 0xd8, 0x48, 0x95, 0x62, 0x6b, 0x08, 0x25, 0xf4, 0xab, 0x46, 0x90, 0x7f, 0x15, 0xf9, 0xda, 0xdb, 0xe4, 0x10, 0x1e, 0xc6, 0x82, 0xaa, 0x03, 0x4c, 0x7c, 0xeb, 0xc5, 0x9c, 0xfa, 0xea, 0x9e, 0xa9, 0x07, 0x6e, 0xde, 0x7f, 0x4a, 0xf1, 0x52, 0xe8, 0xb2, 0xfa, 0x9c, 0xb6}; -u8 mac512_rfc4231_1[] = {0x87, 0xaa, 0x7c, 0xde, 0xa5, 0xef, 0x61, 0x9d, 0x4f, 0xf0, 0xb4, 0x24, 0x1a, 0x1d, 0x6c, 0xb0, 0x23, 0x79, 0xf4, 0xe2, 0xce, 0x4e, 0xc2, 0x78, 0x7a, 0xd0, 0xb3, 0x05, 0x45, 0xe1, 0x7c, 0xde, 0xda, 0xa8, 0x33, 0xb7, 0xd6, 0xb8, 0xa7, 0x02, 0x03, 0x8b, 0x27, 0x4e, 0xae, 0xa3, 0xf4, 0xe4, 0xbe, 0x9d, 0x91, 0x4e, 0xeb, 0x61, 0xf1, 0x70, 0x2e, 0x69, 0x6c, 0x20, 0x3a, 0x12, 0x68, 0x54}; +//HMAC RFC 4231 test vectors for HMAC SHA-224,SHA-256,SHA-384 and SHA-512 +u8 key_rfc4231_1[] = {0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b}; +u8 msg_rfc4231_1[] = {0x48,0x69,0x20,0x54,0x68,0x65,0x72,0x65}; +u8 mac224_rfc4231_1[] = {0x89,0x6f,0xb1,0x12,0x8a,0xbb,0xdf,0x19,0x68,0x32,0x10,0x7c,0xd4,0x9d,0xf3,0x3f,0x47,0xb4,0xb1,0x16,0x99,0x12,0xba,0x4f,0x53,0x68,0x4b,0x22}; +u8 mac256_rfc4231_1[] = {0xb0,0x34,0x4c,0x61,0xd8,0xdb,0x38,0x53,0x5c,0xa8,0xaf,0xce,0xaf,0x0b,0xf1,0x2b,0x88,0x1d,0xc2,0x00,0xc9,0x83,0x3d,0xa7,0x26,0xe9,0x37,0x6c,0x2e,0x32,0xcf,0xf7}; +u8 mac384_rfc4231_1[] = {0xaf,0xd0,0x39,0x44,0xd8,0x48,0x95,0x62,0x6b,0x08,0x25,0xf4,0xab,0x46,0x90,0x7f,0x15,0xf9,0xda,0xdb,0xe4,0x10,0x1e,0xc6,0x82,0xaa,0x03,0x4c,0x7c,0xeb,0xc5,0x9c,0xfa,0xea,0x9e,0xa9,0x07,0x6e,0xde,0x7f,0x4a,0xf1,0x52,0xe8,0xb2,0xfa,0x9c,0xb6}; +u8 mac512_rfc4231_1[] = {0x87,0xaa,0x7c,0xde,0xa5,0xef,0x61,0x9d,0x4f,0xf0,0xb4,0x24,0x1a,0x1d,0x6c,0xb0,0x23,0x79,0xf4,0xe2,0xce,0x4e,0xc2,0x78,0x7a,0xd0,0xb3,0x05,0x45,0xe1,0x7c,0xde,0xda,0xa8,0x33,0xb7,0xd6,0xb8,0xa7,0x02,0x03,0x8b,0x27,0x4e,0xae,0xa3,0xf4,0xe4,0xbe,0x9d,0x91,0x4e,0xeb,0x61,0xf1,0x70,0x2e,0x69,0x6c,0x20,0x3a,0x12,0x68,0x54}; -u8 key_rfc4231_2[] = {0x4a, 0x65, 0x66, 0x65}; -u8 msg_rfc4231_2[] = {0x77, 0x68, 0x61, 0x74, 0x20, 0x64, 0x6f, 0x20, 0x79, 0x61, 0x20, 0x77, 0x61, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x3f}; +u8 key_rfc4231_2[] = {0x4a,0x65,0x66,0x65}; +u8 msg_rfc4231_2[] = {0x77,0x68,0x61,0x74,0x20,0x64,0x6f,0x20,0x79,0x61,0x20,0x77,0x61,0x6e,0x74,0x20,0x66,0x6f,0x72,0x20,0x6e,0x6f,0x74,0x68,0x69,0x6e,0x67,0x3f}; -u8 mac224_rfc4231_2[] = {0xa3, 0x0e, 0x01, 0x09, 0x8b, 0xc6, 0xdb, 0xbf, 0x45, 0x69, 0x0f, 0x3a, 0x7e, 0x9e, 0x6d, 0x0f, 0x8b, 0xbe, 0xa2, 0xa3, 0x9e, 0x61, 0x48, 0x00, 0x8f, 0xd0, 0x5e, 0x44}; -u8 mac256_rfc4231_2[] = {0x5b, 0xdc, 0xc1, 0x46, 0xbf, 0x60, 0x75, 0x4e, 0x6a, 0x04, 0x24, 0x26, 0x08, 0x95, 0x75, 0xc7, 0x5a, 0x00, 0x3f, 0x08, 0x9d, 0x27, 0x39, 0x83, 0x9d, 0xec, 0x58, 0xb9, 0x64, 0xec, 0x38, 0x43}; -u8 mac384_rfc4231_2[] = {0xaf, 0x45, 0xd2, 0xe3, 0x76, 0x48, 0x40, 0x31, 0x61, 0x7f, 0x78, 0xd2, 0xb5, 0x8a, 0x6b, 0x1b, 0x9c, 0x7e, 0xf4, 0x64, 0xf5, 0xa0, 0x1b, 0x47, 0xe4, 0x2e, 0xc3, 0x73, 0x63, 0x22, 0x44, 0x5e, 0x8e, 0x22, 0x40, 0xca, 0x5e, 0x69, 0xe2, 0xc7, 0x8b, 0x32, 0x39, 0xec, 0xfa, 0xb2, 0x16, 0x49}; -u8 mac512_rfc4231_2[] = {0x16, 0x4b, 0x7a, 0x7b, 0xfc, 0xf8, 0x19, 0xe2, 0xe3, 0x95, 0xfb, 0xe7, 0x3b, 0x56, 0xe0, 0xa3, 0x87, 0xbd, 0x64, 0x22, 0x2e, 0x83, 0x1f, 0xd6, 0x10, 0x27, 0x0c, 0xd7, 0xea, 0x25, 0x05, 0x54, 0x97, 0x58, 0xbf, 0x75, 0xc0, 0x5a, 0x99, 0x4a, 0x6d, 0x03, 0x4f, 0x65, 0xf8, 0xf0, 0xe6, 0xfd, 0xca, 0xea, 0xb1, 0xa3, 0x4d, 0x4a, 0x6b, 0x4b, 0x63, 0x6e, 0x07, 0x0a, 0x38, 0xbc, 0xe7, 0x37}; +u8 mac224_rfc4231_2[] = {0xa3,0x0e,0x01,0x09,0x8b,0xc6,0xdb,0xbf,0x45,0x69,0x0f,0x3a,0x7e,0x9e,0x6d,0x0f,0x8b,0xbe,0xa2,0xa3,0x9e,0x61,0x48,0x00,0x8f,0xd0,0x5e,0x44}; +u8 mac256_rfc4231_2[] = {0x5b,0xdc,0xc1,0x46,0xbf,0x60,0x75,0x4e,0x6a,0x04,0x24,0x26,0x08,0x95,0x75,0xc7,0x5a,0x00,0x3f,0x08,0x9d,0x27,0x39,0x83,0x9d,0xec,0x58,0xb9,0x64,0xec,0x38,0x43}; +u8 mac384_rfc4231_2[] = {0xaf,0x45,0xd2,0xe3,0x76,0x48,0x40,0x31,0x61,0x7f,0x78,0xd2,0xb5,0x8a,0x6b,0x1b,0x9c,0x7e,0xf4,0x64,0xf5,0xa0,0x1b,0x47,0xe4,0x2e,0xc3,0x73,0x63,0x22,0x44,0x5e,0x8e,0x22,0x40,0xca,0x5e,0x69,0xe2,0xc7,0x8b,0x32,0x39,0xec,0xfa,0xb2,0x16,0x49}; +u8 mac512_rfc4231_2[] = {0x16,0x4b,0x7a,0x7b,0xfc,0xf8,0x19,0xe2,0xe3,0x95,0xfb,0xe7,0x3b,0x56,0xe0,0xa3,0x87,0xbd,0x64,0x22,0x2e,0x83,0x1f,0xd6,0x10,0x27,0x0c,0xd7,0xea,0x25,0x05,0x54,0x97,0x58,0xbf,0x75,0xc0,0x5a,0x99,0x4a,0x6d,0x03,0x4f,0x65,0xf8,0xf0,0xe6,0xfd,0xca,0xea,0xb1,0xa3,0x4d,0x4a,0x6b,0x4b,0x63,0x6e,0x07,0x0a,0x38,0xbc,0xe7,0x37}; -u8 key_rfc4231_3[] = {0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa}; -u8 msg_rfc4231_3[] = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd}; +u8 key_rfc4231_3[] = {0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa}; +u8 msg_rfc4231_3[] = {0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd}; -u8 mac224_rfc4231_3[] = {0x7f, 0xb3, 0xcb, 0x35, 0x88, 0xc6, 0xc1, 0xf6, 0xff, 0xa9, 0x69, 0x4d, 0x7d, 0x6a, 0xd2, 0x64, 0x93, 0x65, 0xb0, 0xc1, 0xf6, 0x5d, 0x69, 0xd1, 0xec, 0x83, 0x33, 0xea}; -u8 mac256_rfc4231_3[] = {0x77, 0x3e, 0xa9, 0x1e, 0x36, 0x80, 0x0e, 0x46, 0x85, 0x4d, 0xb8, 0xeb, 0xd0, 0x91, 0x81, 0xa7, 0x29, 0x59, 0x09, 0x8b, 0x3e, 0xf8, 0xc1, 0x22, 0xd9, 0x63, 0x55, 0x14, 0xce, 0xd5, 0x65, 0xfe}; -u8 mac384_rfc4231_3[] = {0x88, 0x06, 0x26, 0x08, 0xd3, 0xe6, 0xad, 0x8a, 0x0a, 0xa2, 0xac, 0xe0, 0x14, 0xc8, 0xa8, 0x6f, 0x0a, 0xa6, 0x35, 0xd9, 0x47, 0xac, 0x9f, 0xeb, 0xe8, 0x3e, 0xf4, 0xe5, 0x59, 0x66, 0x14, 0x4b, 0x2a, 0x5a, 0xb3, 0x9d, 0xc1, 0x38, 0x14, 0xb9, 0x4e, 0x3a, 0xb6, 0xe1, 0x01, 0xa3, 0x4f, 0x27}; -u8 mac512_rfc4231_3[] = {0xfa, 0x73, 0xb0, 0x08, 0x9d, 0x56, 0xa2, 0x84, 0xef, 0xb0, 0xf0, 0x75, 0x6c, 0x89, 0x0b, 0xe9, 0xb1, 0xb5, 0xdb, 0xdd, 0x8e, 0xe8, 0x1a, 0x36, 0x55, 0xf8, 0x3e, 0x33, 0xb2, 0x27, 0x9d, 0x39, 0xbf, 0x3e, 0x84, 0x82, 0x79, 0xa7, 0x22, 0xc8, 0x06, 0xb4, 0x85, 0xa4, 0x7e, 0x67, 0xc8, 0x07, 0xb9, 0x46, 0xa3, 0x37, 0xbe, 0xe8, 0x94, 0x26, 0x74, 0x27, 0x88, 0x59, 0xe1, 0x32, 0x92, 0xfb}; +u8 mac224_rfc4231_3[] = {0x7f,0xb3,0xcb,0x35,0x88,0xc6,0xc1,0xf6,0xff,0xa9,0x69,0x4d,0x7d,0x6a,0xd2,0x64,0x93,0x65,0xb0,0xc1,0xf6,0x5d,0x69,0xd1,0xec,0x83,0x33,0xea}; +u8 mac256_rfc4231_3[] = {0x77,0x3e,0xa9,0x1e,0x36,0x80,0x0e,0x46,0x85,0x4d,0xb8,0xeb,0xd0,0x91,0x81,0xa7,0x29,0x59,0x09,0x8b,0x3e,0xf8,0xc1,0x22,0xd9,0x63,0x55,0x14,0xce,0xd5,0x65,0xfe}; +u8 mac384_rfc4231_3[] = {0x88,0x06,0x26,0x08,0xd3,0xe6,0xad,0x8a,0x0a,0xa2,0xac,0xe0,0x14,0xc8,0xa8,0x6f,0x0a,0xa6,0x35,0xd9,0x47,0xac,0x9f,0xeb,0xe8,0x3e,0xf4,0xe5,0x59,0x66,0x14,0x4b,0x2a,0x5a,0xb3,0x9d,0xc1,0x38,0x14,0xb9,0x4e,0x3a,0xb6,0xe1,0x01,0xa3,0x4f,0x27}; +u8 mac512_rfc4231_3[] = {0xfa,0x73,0xb0,0x08,0x9d,0x56,0xa2,0x84,0xef,0xb0,0xf0,0x75,0x6c,0x89,0x0b,0xe9,0xb1,0xb5,0xdb,0xdd,0x8e,0xe8,0x1a,0x36,0x55,0xf8,0x3e,0x33,0xb2,0x27,0x9d,0x39,0xbf,0x3e,0x84,0x82,0x79,0xa7,0x22,0xc8,0x06,0xb4,0x85,0xa4,0x7e,0x67,0xc8,0x07,0xb9,0x46,0xa3,0x37,0xbe,0xe8,0x94,0x26,0x74,0x27,0x88,0x59,0xe1,0x32,0x92,0xfb}; -u8 key_rfc4231_4[] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19}; -u8 msg_rfc4231_4[] = {0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd}; +u8 key_rfc4231_4[] = {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19}; +u8 msg_rfc4231_4[] = {0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd}; -u8 mac224_rfc4231_4[] = {0x6c, 0x11, 0x50, 0x68, 0x74, 0x01, 0x3c, 0xac, 0x6a, 0x2a, 0xbc, 0x1b, 0xb3, 0x82, 0x62, 0x7c, 0xec, 0x6a, 0x90, 0xd8, 0x6e, 0xfc, 0x01, 0x2d, 0xe7, 0xaf, 0xec, 0x5a, }; -u8 mac256_rfc4231_4[] = {0x82, 0x55, 0x8a, 0x38, 0x9a, 0x44, 0x3c, 0x0e, 0xa4, 0xcc, 0x81, 0x98, 0x99, 0xf2, 0x08, 0x3a, 0x85, 0xf0, 0xfa, 0xa3, 0xe5, 0x78, 0xf8, 0x07, 0x7a, 0x2e, 0x3f, 0xf4, 0x67, 0x29, 0x66, 0x5b}; -u8 mac384_rfc4231_4[] = {0x3e, 0x8a, 0x69, 0xb7, 0x78, 0x3c, 0x25, 0x85, 0x19, 0x33, 0xab, 0x62, 0x90, 0xaf, 0x6c, 0xa7, 0x7a, 0x99, 0x81, 0x48, 0x08, 0x50, 0x00, 0x9c, 0xc5, 0x57, 0x7c, 0x6e, 0x1f, 0x57, 0x3b, 0x4e, 0x68, 0x01, 0xdd, 0x23, 0xc4, 0xa7, 0xd6, 0x79, 0xcc, 0xf8, 0xa3, 0x86, 0xc6, 0x74, 0xcf, 0xfb}; -u8 mac512_rfc4231_4[] = {0xb0, 0xba, 0x46, 0x56, 0x37, 0x45, 0x8c, 0x69, 0x90, 0xe5, 0xa8, 0xc5, 0xf6, 0x1d, 0x4a, 0xf7, 0xe5, 0x76, 0xd9, 0x7f, 0xf9, 0x4b, 0x87, 0x2d, 0xe7, 0x6f, 0x80, 0x50, 0x36, 0x1e, 0xe3, 0xdb, 0xa9, 0x1c, 0xa5, 0xc1, 0x1a, 0xa2, 0x5e, 0xb4, 0xd6, 0x79, 0x27, 0x5c, 0xc5, 0x78, 0x80, 0x63, 0xa5, 0xf1, 0x97, 0x41, 0x12, 0x0c, 0x4f, 0x2d, 0xe2, 0xad, 0xeb, 0xeb, 0x10, 0xa2, 0x98, 0xdd}; +u8 mac224_rfc4231_4[] = {0x6c,0x11,0x50,0x68,0x74,0x01,0x3c,0xac,0x6a,0x2a,0xbc,0x1b,0xb3,0x82,0x62,0x7c,0xec,0x6a,0x90,0xd8,0x6e,0xfc,0x01,0x2d,0xe7,0xaf,0xec,0x5a,}; +u8 mac256_rfc4231_4[] = {0x82,0x55,0x8a,0x38,0x9a,0x44,0x3c,0x0e,0xa4,0xcc,0x81,0x98,0x99,0xf2,0x08,0x3a,0x85,0xf0,0xfa,0xa3,0xe5,0x78,0xf8,0x07,0x7a,0x2e,0x3f,0xf4,0x67,0x29,0x66,0x5b}; +u8 mac384_rfc4231_4[] = {0x3e,0x8a,0x69,0xb7,0x78,0x3c,0x25,0x85,0x19,0x33,0xab,0x62,0x90,0xaf,0x6c,0xa7,0x7a,0x99,0x81,0x48,0x08,0x50,0x00,0x9c,0xc5,0x57,0x7c,0x6e,0x1f,0x57,0x3b,0x4e,0x68,0x01,0xdd,0x23,0xc4,0xa7,0xd6,0x79,0xcc,0xf8,0xa3,0x86,0xc6,0x74,0xcf,0xfb}; +u8 mac512_rfc4231_4[] = {0xb0,0xba,0x46,0x56,0x37,0x45,0x8c,0x69,0x90,0xe5,0xa8,0xc5,0xf6,0x1d,0x4a,0xf7,0xe5,0x76,0xd9,0x7f,0xf9,0x4b,0x87,0x2d,0xe7,0x6f,0x80,0x50,0x36,0x1e,0xe3,0xdb,0xa9,0x1c,0xa5,0xc1,0x1a,0xa2,0x5e,0xb4,0xd6,0x79,0x27,0x5c,0xc5,0x78,0x80,0x63,0xa5,0xf1,0x97,0x41,0x12,0x0c,0x4f,0x2d,0xe2,0xad,0xeb,0xeb,0x10,0xa2,0x98,0xdd}; -u8 key_rfc4231_6[] = {0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa}; -u8 msg_rfc4231_6[] = {0x54, 0x65, 0x73, 0x74, 0x20, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x4c, 0x61, 0x72, 0x67, 0x65, 0x72, 0x20, 0x54, 0x68, 0x61, 0x6e, 0x20, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2d, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x4b, 0x65, 0x79, 0x20, 0x2d, 0x20, 0x48, 0x61, 0x73, 0x68, 0x20, 0x4b, 0x65, 0x79, 0x20, 0x46, 0x69, 0x72, 0x73, 0x74}; +u8 key_rfc4231_6[] = {0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa}; +u8 msg_rfc4231_6[] = {0x54,0x65,0x73,0x74,0x20,0x55,0x73,0x69,0x6e,0x67,0x20,0x4c,0x61,0x72,0x67,0x65,0x72,0x20,0x54,0x68,0x61,0x6e,0x20,0x42,0x6c,0x6f,0x63,0x6b,0x2d,0x53,0x69,0x7a,0x65,0x20,0x4b,0x65,0x79,0x20,0x2d,0x20,0x48,0x61,0x73,0x68,0x20,0x4b,0x65,0x79,0x20,0x46,0x69,0x72,0x73,0x74}; -u8 mac224_rfc4231_6[] = {0x95, 0xe9, 0xa0, 0xdb, 0x96, 0x20, 0x95, 0xad, 0xae, 0xbe, 0x9b, 0x2d, 0x6f, 0x0d, 0xbc, 0xe2, 0xd4, 0x99, 0xf1, 0x12, 0xf2, 0xd2, 0xb7, 0x27, 0x3f, 0xa6, 0x87, 0x0e}; -u8 mac256_rfc4231_6[] = {0x60, 0xe4, 0x31, 0x59, 0x1e, 0xe0, 0xb6, 0x7f, 0x0d, 0x8a, 0x26, 0xaa, 0xcb, 0xf5, 0xb7, 0x7f, 0x8e, 0x0b, 0xc6, 0x21, 0x37, 0x28, 0xc5, 0x14, 0x05, 0x46, 0x04, 0x0f, 0x0e, 0xe3, 0x7f, 0x54}; -u8 mac384_rfc4231_6[] = {0x4e, 0xce, 0x08, 0x44, 0x85, 0x81, 0x3e, 0x90, 0x88, 0xd2, 0xc6, 0x3a, 0x04, 0x1b, 0xc5, 0xb4, 0x4f, 0x9e, 0xf1, 0x01, 0x2a, 0x2b, 0x58, 0x8f, 0x3c, 0xd1, 0x1f, 0x05, 0x03, 0x3a, 0xc4, 0xc6, 0x0c, 0x2e, 0xf6, 0xab, 0x40, 0x30, 0xfe, 0x82, 0x96, 0x24, 0x8d, 0xf1, 0x63, 0xf4, 0x49, 0x52}; -u8 mac512_rfc4231_6[] = {0x80, 0xb2, 0x42, 0x63, 0xc7, 0xc1, 0xa3, 0xeb, 0xb7, 0x14, 0x93, 0xc1, 0xdd, 0x7b, 0xe8, 0xb4, 0x9b, 0x46, 0xd1, 0xf4, 0x1b, 0x4a, 0xee, 0xc1, 0x12, 0x1b, 0x01, 0x37, 0x83, 0xf8, 0xf3, 0x52, 0x6b, 0x56, 0xd0, 0x37, 0xe0, 0x5f, 0x25, 0x98, 0xbd, 0x0f, 0xd2, 0x21, 0x5d, 0x6a, 0x1e, 0x52, 0x95, 0xe6, 0x4f, 0x73, 0xf6, 0x3f, 0x0a, 0xec, 0x8b, 0x91, 0x5a, 0x98, 0x5d, 0x78, 0x65, 0x98, }; +u8 mac224_rfc4231_6[] = {0x95,0xe9,0xa0,0xdb,0x96,0x20,0x95,0xad,0xae,0xbe,0x9b,0x2d,0x6f,0x0d,0xbc,0xe2,0xd4,0x99,0xf1,0x12,0xf2,0xd2,0xb7,0x27,0x3f,0xa6,0x87,0x0e}; +u8 mac256_rfc4231_6[] = {0x60,0xe4,0x31,0x59,0x1e,0xe0,0xb6,0x7f,0x0d,0x8a,0x26,0xaa,0xcb,0xf5,0xb7,0x7f,0x8e,0x0b,0xc6,0x21,0x37,0x28,0xc5,0x14,0x05,0x46,0x04,0x0f,0x0e,0xe3,0x7f,0x54}; +u8 mac384_rfc4231_6[] = {0x4e,0xce,0x08,0x44,0x85,0x81,0x3e,0x90,0x88,0xd2,0xc6,0x3a,0x04,0x1b,0xc5,0xb4,0x4f,0x9e,0xf1,0x01,0x2a,0x2b,0x58,0x8f,0x3c,0xd1,0x1f,0x05,0x03,0x3a,0xc4,0xc6,0x0c,0x2e,0xf6,0xab,0x40,0x30,0xfe,0x82,0x96,0x24,0x8d,0xf1,0x63,0xf4,0x49,0x52}; +u8 mac512_rfc4231_6[] = {0x80,0xb2,0x42,0x63,0xc7,0xc1,0xa3,0xeb,0xb7,0x14,0x93,0xc1,0xdd,0x7b,0xe8,0xb4,0x9b,0x46,0xd1,0xf4,0x1b,0x4a,0xee,0xc1,0x12,0x1b,0x01,0x37,0x83,0xf8,0xf3,0x52,0x6b,0x56,0xd0,0x37,0xe0,0x5f,0x25,0x98,0xbd,0x0f,0xd2,0x21,0x5d,0x6a,0x1e,0x52,0x95,0xe6,0x4f,0x73,0xf6,0x3f,0x0a,0xec,0x8b,0x91,0x5a,0x98,0x5d,0x78,0x65,0x98,}; -const u8 key_rfc4231_7[] = {0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa}; -const u8 msg_rfc4231_7[] = {0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x68, 0x61, 0x73, 0x68, 0x65, 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x62, 0x65, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x48, 0x4d, 0x41, 0x43, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x2e}; +const u8 key_rfc4231_7[] = {0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa}; +const u8 msg_rfc4231_7[] = {0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x61,0x20,0x74,0x65,0x73,0x74,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x61,0x20,0x6c,0x61,0x72,0x67,0x65,0x72,0x20,0x74,0x68,0x61,0x6e,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x20,0x6b,0x65,0x79,0x20,0x61,0x6e,0x64,0x20,0x61,0x20,0x6c,0x61,0x72,0x67,0x65,0x72,0x20,0x74,0x68,0x61,0x6e,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x20,0x64,0x61,0x74,0x61,0x2e,0x20,0x54,0x68,0x65,0x20,0x6b,0x65,0x79,0x20,0x6e,0x65,0x65,0x64,0x73,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x68,0x61,0x73,0x68,0x65,0x64,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x62,0x65,0x69,0x6e,0x67,0x20,0x75,0x73,0x65,0x64,0x20,0x62,0x79,0x20,0x74,0x68,0x65,0x20,0x48,0x4d,0x41,0x43,0x20,0x61,0x6c,0x67,0x6f,0x72,0x69,0x74,0x68,0x6d,0x2e}; -const u8 mac224_rfc4231_7[] = {0x3a, 0x85, 0x41, 0x66, 0xac, 0x5d, 0x9f, 0x02, 0x3f, 0x54, 0xd5, 0x17, 0xd0, 0xb3, 0x9d, 0xbd, 0x94, 0x67, 0x70, 0xdb, 0x9c, 0x2b, 0x95, 0xc9, 0xf6, 0xf5, 0x65, 0xd1}; -u8 mac256_rfc4231_7[] = {0x9b, 0x09, 0xff, 0xa7, 0x1b, 0x94, 0x2f, 0xcb, 0x27, 0x63, 0x5f, 0xbc, 0xd5, 0xb0, 0xe9, 0x44, 0xbf, 0xdc, 0x63, 0x64, 0x4f, 0x07, 0x13, 0x93, 0x8a, 0x7f, 0x51, 0x53, 0x5c, 0x3a, 0x35, 0xe2}; -const u8 mac384_rfc4231_7[] = {0x66, 0x17, 0x17, 0x8e, 0x94, 0x1f, 0x02, 0x0d, 0x35, 0x1e, 0x2f, 0x25, 0x4e, 0x8f, 0xd3, 0x2c, 0x60, 0x24, 0x20, 0xfe, 0xb0, 0xb8, 0xfb, 0x9a, 0xdc, 0xce, 0xbb, 0x82, 0x46, 0x1e, 0x99, 0xc5, 0xa6, 0x78, 0xcc, 0x31, 0xe7, 0x99, 0x17, 0x6d, 0x38, 0x60, 0xe6, 0x11, 0x0c, 0x46, 0x52, 0x3e}; -const u8 mac512_rfc4231_7[] = {0xe3, 0x7b, 0x6a, 0x77, 0x5d, 0xc8, 0x7d, 0xba, 0xa4, 0xdf, 0xa9, 0xf9, 0x6e, 0x5e, 0x3f, 0xfd, 0xde, 0xbd, 0x71, 0xf8, 0x86, 0x72, 0x89, 0x86, 0x5d, 0xf5, 0xa3, 0x2d, 0x20, 0xcd, 0xc9, 0x44, 0xb6, 0x02, 0x2c, 0xac, 0x3c, 0x49, 0x82, 0xb1, 0x0d, 0x5e, 0xeb, 0x55, 0xc3, 0xe4, 0xde, 0x15, 0x13, 0x46, 0x76, 0xfb, 0x6d, 0xe0, 0x44, 0x60, 0x65, 0xc9, 0x74, 0x40, 0xfa, 0x8c, 0x6a, 0x58}; +const u8 mac224_rfc4231_7[] = {0x3a,0x85,0x41,0x66,0xac,0x5d,0x9f,0x02,0x3f,0x54,0xd5,0x17,0xd0,0xb3,0x9d,0xbd,0x94,0x67,0x70,0xdb,0x9c,0x2b,0x95,0xc9,0xf6,0xf5,0x65,0xd1}; +u8 mac256_rfc4231_7[] = {0x9b,0x09,0xff,0xa7,0x1b,0x94,0x2f,0xcb,0x27,0x63,0x5f,0xbc,0xd5,0xb0,0xe9,0x44,0xbf,0xdc,0x63,0x64,0x4f,0x07,0x13,0x93,0x8a,0x7f,0x51,0x53,0x5c,0x3a,0x35,0xe2}; +const u8 mac384_rfc4231_7[] = {0x66,0x17,0x17,0x8e,0x94,0x1f,0x02,0x0d,0x35,0x1e,0x2f,0x25,0x4e,0x8f,0xd3,0x2c,0x60,0x24,0x20,0xfe,0xb0,0xb8,0xfb,0x9a,0xdc,0xce,0xbb,0x82,0x46,0x1e,0x99,0xc5,0xa6,0x78,0xcc,0x31,0xe7,0x99,0x17,0x6d,0x38,0x60,0xe6,0x11,0x0c,0x46,0x52,0x3e}; +const u8 mac512_rfc4231_7[] = {0xe3,0x7b,0x6a,0x77,0x5d,0xc8,0x7d,0xba,0xa4,0xdf,0xa9,0xf9,0x6e,0x5e,0x3f,0xfd,0xde,0xbd,0x71,0xf8,0x86,0x72,0x89,0x86,0x5d,0xf5,0xa3,0x2d,0x20,0xcd,0xc9,0x44,0xb6,0x02,0x2c,0xac,0x3c,0x49,0x82,0xb1,0x0d,0x5e,0xeb,0x55,0xc3,0xe4,0xde,0x15,0x13,0x46,0x76,0xfb,0x6d,0xe0,0x44,0x60,0x65,0xc9,0x74,0x40,0xfa,0x8c,0x6a,0x58}; -int hex(char c1, char c2) +int hex(char c1,char c2) { int value; @@ -144,22 +144,22 @@ int hex(char c1, char c2) return(value); } -int check(u8 *h, char *sth, int l) +int check(u8 *h,char *sth,int l) { int i; //max size of a hash digest u8 th[64]; if ((int)strlen(sth) != l*2) { - PRINTF("ERROR: incorrect string length (%d -> %d\n", (int)strlen(sth), l); + PRINTF("ERROR: incorrect string length (%d -> %d\n",(int)strlen(sth),l); return(UCL_ERROR); } for (i = 0; i < l; i++) { - th[i] = hex(sth[i*2], sth[i*2+1]); + th[i] = hex(sth[i*2],sth[i*2+1]); } - if (memcmp(h, th, l) == 0) { + if (memcmp(h,th,l) == 0) { #ifdef VERBOSE PRINTF("OK\n"); #endif @@ -172,13 +172,13 @@ int check(u8 *h, char *sth, int l) int test_sia256(void) { - u8 sha256data1[] = {0x05, 0xC0, 0x57, 0x52, 0x78, 0xDA, 0x49, 0x02, 0x2B, 0x6E, 0x3D, 0x40, 0x4F, 0x8F, 0xBD, 0xAE, 0x3D, 0x41, 0x55, 0x2E, 0x27, 0x56, 0xAF, 0xBB, 0x99, 0x29, 0x0A, 0x1C, 0xDF, 0xFB, 0xDD, 0xE9, 0x42, 0xFE, 0x32, 0x56, 0xD3, 0xD6, 0x7F, 0xDA, 0x1D, 0xA0, 0x4E, 0xCA, 0xBE, 0x5E, 0xFD, 0xD5, 0xCF, 0xAF, 0x7D, 0xBA, 0xA2, 0x16, 0x68, 0x34, 0xF8, 0xE8, 0x99, 0x01, 0x62, 0x8F, 0x41, 0x1F, 0x00, 0x1E, 0x22, 0x40, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + u8 sha256data1[] = {0x05,0xC0,0x57,0x52,0x78,0xDA,0x49,0x02,0x2B,0x6E,0x3D,0x40,0x4F,0x8F,0xBD,0xAE,0x3D,0x41,0x55,0x2E,0x27,0x56,0xAF,0xBB,0x99,0x29,0x0A,0x1C,0xDF,0xFB,0xDD,0xE9,0x42,0xFE,0x32,0x56,0xD3,0xD6,0x7F,0xDA,0x1D,0xA0,0x4E,0xCA,0xBE,0x5E,0xFD,0xD5,0xCF,0xAF,0x7D,0xBA,0xA2,0x16,0x68,0x34,0xF8,0xE8,0x99,0x01,0x62,0x8F,0x41,0x1F,0x00,0x1E,0x22,0x40,0xC1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; //expected result - u8 sha256res1[32] = {0xd5, 0x3c, 0x1d, 0xf1, 0xff, 0x81, 0x96, 0x36, 0x06, 0x05, 0xb9, 0xf1, 0x7e, 0xf1, 0xee, 0xf0, 0x1b, 0xbc, 0xea, 0x54, 0x21, 0xc5, 0x5f, 0xd9, 0x56, 0x1c, 0x7b, 0xe3, 0xa4, 0xa6, 0xc8, 0xc0}; + u8 sha256res1[32] = {0xd5,0x3c,0x1d,0xf1,0xff,0x81,0x96,0x36,0x06,0x05,0xb9,0xf1,0x7e,0xf1,0xee,0xf0,0x1b,0xbc,0xea,0x54,0x21,0xc5,0x5f,0xd9,0x56,0x1c,0x7b,0xe3,0xa4,0xa6,0xc8,0xc0}; u8 digest[UCL_SIA256_HASHSIZE]; - ucl_sia256(digest, sha256data1, sizeof(sha256data1)); - if (memcmp(sha256res1, digest, UCL_SIA256_HASHSIZE) != 0) { + ucl_sia256(digest,sha256data1,sizeof(sha256data1)); + if (memcmp(sha256res1,digest,UCL_SIA256_HASHSIZE) != 0) { return(UCL_ERROR); } @@ -189,35 +189,35 @@ int test_sha256(void) { // FIPS 180-2 // "abc" l = 24 - u8 sha256data1[] = {0x61, 0x62, 0x63}; - u8 sha256res1[32] = {0xba, 0x78, 0x16, 0xbf, 0x8f, 0x01, 0xcf, 0xea, 0x41, 0x41, 0x40, 0xde, 0x5d, 0xae, 0x22, 0x23, 0xb0, 0x03, 0x61, 0xa3, 0x96, 0x17, 0x7a, 0x9c, 0xb4, 0x10, 0xff, 0x61, 0xf2, 0x00, 0x15, 0xad}; + u8 sha256data1[] = {0x61,0x62,0x63}; + u8 sha256res1[32] = {0xba,0x78,0x16,0xbf,0x8f,0x01,0xcf,0xea,0x41,0x41,0x40,0xde,0x5d,0xae,0x22,0x23,0xb0,0x03,0x61,0xa3,0x96,0x17,0x7a,0x9c,0xb4,0x10,0xff,0x61,0xf2,0x00,0x15,0xad}; // "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" l = 448b - u8 sha256data2[] = {0x61, 0x62, 0x63, 0x64, 0x62, 0x63, 0x64, 0x65, 0x63, 0x64, 0x65, 0x66, 0x64, 0x65, 0x66, 0x67, 0x65, 0x66, 0x67, 0x68, 0x66, 0x67, 0x68, 0x69, 0x67, 0x68, 0x69, 0x6A, 0x68, 0x69, 0x6A, 0x6B, 0x69, 0x6A, 0x6B, 0x6C, 0x6A, 0x6B, 0x6C, 0x6D, 0x6B, 0x6C, 0x6D, 0x6E, 0x6C, 0x6D, 0x6E, 0x6F, 0x6D, 0x6E, 0x6F, 0x70, 0x6E, 0x6F, 0x70, 0x71}; - u8 sha256res2[32] = {0x24, 0x8d, 0x6a, 0x61, 0xd2, 0x06, 0x38, 0xb8, 0xe5, 0xc0, 0x26, 0x93, 0x0c, 0x3e, 0x60, 0x39, 0xa3, 0x3c, 0xe4, 0x59, 0x64, 0xff, 0x21, 0x67, 0xf6, 0xec, 0xed, 0xd4, 0x19, 0xdb, 0x06, 0xc1}; + u8 sha256data2[] = {0x61,0x62,0x63,0x64,0x62,0x63,0x64,0x65,0x63,0x64,0x65,0x66,0x64,0x65,0x66,0x67,0x65,0x66,0x67,0x68,0x66,0x67,0x68,0x69,0x67,0x68,0x69,0x6A,0x68,0x69,0x6A,0x6B,0x69,0x6A,0x6B,0x6C,0x6A,0x6B,0x6C,0x6D,0x6B,0x6C,0x6D,0x6E,0x6C,0x6D,0x6E,0x6F,0x6D,0x6E,0x6F,0x70,0x6E,0x6F,0x70,0x71}; + u8 sha256res2[32] = {0x24,0x8d,0x6a,0x61,0xd2,0x06,0x38,0xb8,0xe5,0xc0,0x26,0x93,0x0c,0x3e,0x60,0x39,0xa3,0x3c,0xe4,0x59,0x64,0xff,0x21,0x67,0xf6,0xec,0xed,0xd4,0x19,0xdb,0x06,0xc1}; //data = 1 million "a" 1 million 61 - u8 sha256res3[] = {0xcd, 0xc7, 0x6e, 0x5c, 0x99, 0x14, 0xfb, 0x92, 0x81, 0xa1, 0xc7, 0xe2, 0x84, 0xd7, 0x3e, 0x67, 0xf1, 0x80, 0x9a, 0x48, 0xa4, 0x97, 0x20, 0x0e, 0x04, 0x6d, 0x39, 0xcc, 0xc7, 0x11, 0x2c, 0xd0}; + u8 sha256res3[] = {0xcd,0xc7,0x6e,0x5c,0x99,0x14,0xfb,0x92,0x81,0xa1,0xc7,0xe2,0x84,0xd7,0x3e,0x67,0xf1,0x80,0x9a,0x48,0xa4,0x97,0x20,0x0e,0x04,0x6d,0x39,0xcc,0xc7,0x11,0x2c,0xd0}; int i; u8 million[1000]; ucl_sha256_ctx_t ctxt; int err; u8 digest[UCL_SHA256_HASHSIZE]; - err = ucl_sha256(digest, sha256data1, sizeof(sha256data1)); + err = ucl_sha256(digest,sha256data1,sizeof(sha256data1)); if (err != UCL_OK) { return(UCL_ERROR); } - if (memcmp(digest, sha256res1, UCL_SHA256_HASHSIZE) != 0) { + if (memcmp(digest,sha256res1,UCL_SHA256_HASHSIZE) != 0) { return(UCL_ERROR); } - err = ucl_sha256(digest, sha256data2, sizeof(sha256data2)); + err = ucl_sha256(digest,sha256data2,sizeof(sha256data2)); if (err != UCL_OK) { return(UCL_ERROR); } - if (memcmp(digest, sha256res2, UCL_SHA256_HASHSIZE) != 0) { + if (memcmp(digest,sha256res2,UCL_SHA256_HASHSIZE) != 0) { return(UCL_ERROR); } @@ -227,41 +227,41 @@ int test_sha256(void) ucl_sha256_init(&ctxt); for (i = 0; i < 1000000/(int)sizeof(million); i++) { - ucl_sha256_core(&ctxt, million, sizeof(million)); + ucl_sha256_core(&ctxt,million,sizeof(million)); } - ucl_sha256_finish(digest, &ctxt); - if (memcmp(digest, sha256res3, UCL_SHA256_HASHSIZE) != 0) { + ucl_sha256_finish(digest,&ctxt); + if (memcmp(digest,sha256res3,UCL_SHA256_HASHSIZE) != 0) { return(UCL_ERROR); } - ucl_sha256(digest, million, 128); + ucl_sha256(digest,million,128); return(UCL_OK); } int test_sha3(void) { - u8 abc[] = {0x61, 0x62, 0x63}; - u8 sha3_abc_224[] = {0xe6, 0x42, 0x82, 0x4c, 0x3f, 0x8c, 0xf2, 0x4a, 0xd0, 0x92, 0x34, 0xee, 0x7d, 0x3c, 0x76, 0x6f, 0xc9, 0xa3, 0xa5, 0x16, 0x8d, 0x0c, 0x94, 0xad, 0x73, 0xb4, 0x6f, 0xdf}; - u8 sha3_abc_256[] = {0x3a, 0x98, 0x5d, 0xa7, 0x4f, 0xe2, 0x25, 0xb2, 0x04, 0x5c, 0x17, 0x2d, 0x6b, 0xd3, 0x90, 0xbd, 0x85, 0x5f, 0x08, 0x6e, 0x3e, 0x9d, 0x52, 0x5b, 0x46, 0xbf, 0xe2, 0x45, 0x11, 0x43, 0x15, 0x32}; - u8 sha3_abc_384[] = {0xec, 0x01, 0x49, 0x82, 0x88, 0x51, 0x6f, 0xc9, 0x26, 0x45, 0x9f, 0x58, 0xe2, 0xc6, 0xad, 0x8d, 0xf9, 0xb4, 0x73, 0xcb, 0x0f, 0xc0, 0x8c, 0x25, 0x96, 0xda, 0x7c, 0xf0, 0xe4, 0x9b, 0xe4, 0xb2, 0x98, 0xd8, 0x8c, 0xea, 0x92, 0x7a, 0xc7, 0xf5, 0x39, 0xf1, 0xed, 0xf2, 0x28, 0x37, 0x6d, 0x25}; - u8 sha3_abc_512[] = {0xb7, 0x51, 0x85, 0x0b, 0x1a, 0x57, 0x16, 0x8a, 0x56, 0x93, 0xcd, 0x92, 0x4b, 0x6b, 0x09, 0x6e, 0x08, 0xf6, 0x21, 0x82, 0x74, 0x44, 0xf7, 0x0d, 0x88, 0x4f, 0x5d, 0x02, 0x40, 0xd2, 0x71, 0x2e, 0x10, 0xe1, 0x16, 0xe9, 0x19, 0x2a, 0xf3, 0xc9, 0x1a, 0x7e, 0xc5, 0x76, 0x47, 0xe3, 0x93, 0x40, 0x57, 0x34, 0x0b, 0x4c, 0xf4, 0x08, 0xd5, 0xa5, 0x65, 0x92, 0xf8, 0x27, 0x4e, 0xec, 0x53, 0xf0}; + u8 abc[] = {0x61,0x62,0x63}; + u8 sha3_abc_224[] = {0xe6,0x42,0x82,0x4c,0x3f,0x8c,0xf2,0x4a,0xd0,0x92,0x34,0xee,0x7d,0x3c,0x76,0x6f,0xc9,0xa3,0xa5,0x16,0x8d,0x0c,0x94,0xad,0x73,0xb4,0x6f,0xdf}; + u8 sha3_abc_256[] = {0x3a,0x98,0x5d,0xa7,0x4f,0xe2,0x25,0xb2,0x04,0x5c,0x17,0x2d,0x6b,0xd3,0x90,0xbd,0x85,0x5f,0x08,0x6e,0x3e,0x9d,0x52,0x5b,0x46,0xbf,0xe2,0x45,0x11,0x43,0x15,0x32}; + u8 sha3_abc_384[] = {0xec,0x01,0x49,0x82,0x88,0x51,0x6f,0xc9,0x26,0x45,0x9f,0x58,0xe2,0xc6,0xad,0x8d,0xf9,0xb4,0x73,0xcb,0x0f,0xc0,0x8c,0x25,0x96,0xda,0x7c,0xf0,0xe4,0x9b,0xe4,0xb2,0x98,0xd8,0x8c,0xea,0x92,0x7a,0xc7,0xf5,0x39,0xf1,0xed,0xf2,0x28,0x37,0x6d,0x25}; + u8 sha3_abc_512[] = {0xb7,0x51,0x85,0x0b,0x1a,0x57,0x16,0x8a,0x56,0x93,0xcd,0x92,0x4b,0x6b,0x09,0x6e,0x08,0xf6,0x21,0x82,0x74,0x44,0xf7,0x0d,0x88,0x4f,0x5d,0x02,0x40,0xd2,0x71,0x2e,0x10,0xe1,0x16,0xe9,0x19,0x2a,0xf3,0xc9,0x1a,0x7e,0xc5,0x76,0x47,0xe3,0x93,0x40,0x57,0x34,0x0b,0x4c,0xf4,0x08,0xd5,0xa5,0x65,0x92,0xf8,0x27,0x4e,0xec,0x53,0xf0}; // "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" l = 448b - u8 abcopq[] = {0x61, 0x62, 0x63, 0x64, 0x62, 0x63, 0x64, 0x65, 0x63, 0x64, 0x65, 0x66, 0x64, 0x65, 0x66, 0x67, 0x65, 0x66, 0x67, 0x68, 0x66, 0x67, 0x68, 0x69, 0x67, 0x68, 0x69, 0x6A, 0x68, 0x69, 0x6A, 0x6B, 0x69, 0x6A, 0x6B, 0x6C, 0x6A, 0x6B, 0x6C, 0x6D, 0x6B, 0x6C, 0x6D, 0x6E, 0x6C, 0x6D, 0x6E, 0x6F, 0x6D, 0x6E, 0x6F, 0x70, 0x6E, 0x6F, 0x70, 0x71}; - u8 sha3_abcopq_224[] = {0x8a, 0x24, 0x10, 0x8b, 0x15, 0x4a, 0xda, 0x21, 0xc9, 0xfd, 0x55, 0x74, 0x49, 0x44, 0x79, 0xba, 0x5c, 0x7e, 0x7a, 0xb7, 0x6e, 0xf2, 0x64, 0xea, 0xd0, 0xfc, 0xce, 0x33}; - u8 sha3_void_224[] = {0x6b, 0x4e, 0x03, 0x42, 0x36, 0x67, 0xdb, 0xb7, 0x3b, 0x6e, 0x15, 0x45, 0x4f, 0x0e, 0xb1, 0xab, 0xd4, 0x59, 0x7f, 0x9a, 0x1b, 0x07, 0x8e, 0x3f, 0x5b, 0x5a, 0x6b, 0xc7}; - u8 sha3_abcopq_256[] = {0x41, 0xc0, 0xdb, 0xa2, 0xa9, 0xd6, 0x24, 0x08, 0x49, 0x10, 0x03, 0x76, 0xa8, 0x23, 0x5e, 0x2c, 0x82, 0xe1, 0xb9, 0x99, 0x8a, 0x99, 0x9e, 0x21, 0xdb, 0x32, 0xdd, 0x97, 0x49, 0x6d, 0x33, 0x76}; - u8 sha3_void_256[] = {0xa7, 0xff, 0xc6, 0xf8, 0xbf, 0x1e, 0xd7, 0x66, 0x51, 0xc1, 0x47, 0x56, 0xa0, 0x61, 0xd6, 0x62, 0xf5, 0x80, 0xff, 0x4d, 0xe4, 0x3b, 0x49, 0xfa, 0x82, 0xd8, 0x0a, 0x4b, 0x80, 0xf8, 0x43, 0x4a}; - u8 sha3_abcopq_384[] = {0x99, 0x1c, 0x66, 0x57, 0x55, 0xeb, 0x3a, 0x4b, 0x6b, 0xbd, 0xfb, 0x75, 0xc7, 0x8a, 0x49, 0x2e, 0x8c, 0x56, 0xa2, 0x2c, 0x5c, 0x4d, 0x7e, 0x42, 0x9b, 0xfd, 0xbc, 0x32, 0xb9, 0xd4, 0xad, 0x5a, 0xa0, 0x4a, 0x1f, 0x07, 0x6e, 0x62, 0xfe, 0xa1, 0x9e, 0xef, 0x51, 0xac, 0xd0, 0x65, 0x7c, 0x22}; - u8 sha3_void_384[] = {0x0c, 0x63, 0xa7, 0x5b, 0x84, 0x5e, 0x4f, 0x7d, 0x01, 0x10, 0x7d, 0x85, 0x2e, 0x4c, 0x24, 0x85, 0xc5, 0x1a, 0x50, 0xaa, 0xaa, 0x94, 0xfc, 0x61, 0x99, 0x5e, 0x71, 0xbb, 0xee, 0x98, 0x3a, 0x2a, 0xc3, 0x71, 0x38, 0x31, 0x26, 0x4a, 0xdb, 0x47, 0xfb, 0x6b, 0xd1, 0xe0, 0x58, 0xd5, 0xf0, 0x04}; - u8 sha3_abcopq_512[] = {0x04, 0xa3, 0x71, 0xe8, 0x4e, 0xcf, 0xb5, 0xb8, 0xb7, 0x7c, 0xb4, 0x86, 0x10, 0xfc, 0xa8, 0x18, 0x2d, 0xd4, 0x57, 0xce, 0x6f, 0x32, 0x6a, 0x0f, 0xd3, 0xd7, 0xec, 0x2f, 0x1e, 0x91, 0x63, 0x6d, 0xee, 0x69, 0x1f, 0xbe, 0x0c, 0x98, 0x53, 0x02, 0xba, 0x1b, 0x0d, 0x8d, 0xc7, 0x8c, 0x08, 0x63, 0x46, 0xb5, 0x33, 0xb4, 0x9c, 0x03, 0x0d, 0x99, 0xa2, 0x7d, 0xaf, 0x11, 0x39, 0xd6, 0xe7, 0x5e}; - u8 sha3_void_512[] = {0xa6, 0x9f, 0x73, 0xcc, 0xa2, 0x3a, 0x9a, 0xc5, 0xc8, 0xb5, 0x67, 0xdc, 0x18, 0x5a, 0x75, 0x6e, 0x97, 0xc9, 0x82, 0x16, 0x4f, 0xe2, 0x58, 0x59, 0xe0, 0xd1, 0xdc, 0xc1, 0x47, 0x5c, 0x80, 0xa6, 0x15, 0xb2, 0x12, 0x3a, 0xf1, 0xf5, 0xf9, 0x4c, 0x11, 0xe3, 0xe9, 0x40, 0x2c, 0x3a, 0xc5, 0x58, 0xf5, 0x00, 0x19, 0x9d, 0x95, 0xb6, 0xd3, 0xe3, 0x01, 0x75, 0x85, 0x86, 0x28, 0x1d, 0xcd, 0x26}; + u8 abcopq[] = {0x61,0x62,0x63,0x64,0x62,0x63,0x64,0x65,0x63,0x64,0x65,0x66,0x64,0x65,0x66,0x67,0x65,0x66,0x67,0x68,0x66,0x67,0x68,0x69,0x67,0x68,0x69,0x6A,0x68,0x69,0x6A,0x6B,0x69,0x6A,0x6B,0x6C,0x6A,0x6B,0x6C,0x6D,0x6B,0x6C,0x6D,0x6E,0x6C,0x6D,0x6E,0x6F,0x6D,0x6E,0x6F,0x70,0x6E,0x6F,0x70,0x71}; + u8 sha3_abcopq_224[] = {0x8a,0x24,0x10,0x8b,0x15,0x4a,0xda,0x21,0xc9,0xfd,0x55,0x74,0x49,0x44,0x79,0xba,0x5c,0x7e,0x7a,0xb7,0x6e,0xf2,0x64,0xea,0xd0,0xfc,0xce,0x33}; + u8 sha3_void_224[] = {0x6b,0x4e,0x03,0x42,0x36,0x67,0xdb,0xb7,0x3b,0x6e,0x15,0x45,0x4f,0x0e,0xb1,0xab,0xd4,0x59,0x7f,0x9a,0x1b,0x07,0x8e,0x3f,0x5b,0x5a,0x6b,0xc7}; + u8 sha3_abcopq_256[] = {0x41,0xc0,0xdb,0xa2,0xa9,0xd6,0x24,0x08,0x49,0x10,0x03,0x76,0xa8,0x23,0x5e,0x2c,0x82,0xe1,0xb9,0x99,0x8a,0x99,0x9e,0x21,0xdb,0x32,0xdd,0x97,0x49,0x6d,0x33,0x76}; + u8 sha3_void_256[] = {0xa7,0xff,0xc6,0xf8,0xbf,0x1e,0xd7,0x66,0x51,0xc1,0x47,0x56,0xa0,0x61,0xd6,0x62,0xf5,0x80,0xff,0x4d,0xe4,0x3b,0x49,0xfa,0x82,0xd8,0x0a,0x4b,0x80,0xf8,0x43,0x4a}; + u8 sha3_abcopq_384[] = {0x99,0x1c,0x66,0x57,0x55,0xeb,0x3a,0x4b,0x6b,0xbd,0xfb,0x75,0xc7,0x8a,0x49,0x2e,0x8c,0x56,0xa2,0x2c,0x5c,0x4d,0x7e,0x42,0x9b,0xfd,0xbc,0x32,0xb9,0xd4,0xad,0x5a,0xa0,0x4a,0x1f,0x07,0x6e,0x62,0xfe,0xa1,0x9e,0xef,0x51,0xac,0xd0,0x65,0x7c,0x22}; + u8 sha3_void_384[] = {0x0c,0x63,0xa7,0x5b,0x84,0x5e,0x4f,0x7d,0x01,0x10,0x7d,0x85,0x2e,0x4c,0x24,0x85,0xc5,0x1a,0x50,0xaa,0xaa,0x94,0xfc,0x61,0x99,0x5e,0x71,0xbb,0xee,0x98,0x3a,0x2a,0xc3,0x71,0x38,0x31,0x26,0x4a,0xdb,0x47,0xfb,0x6b,0xd1,0xe0,0x58,0xd5,0xf0,0x04}; + u8 sha3_abcopq_512[] = {0x04,0xa3,0x71,0xe8,0x4e,0xcf,0xb5,0xb8,0xb7,0x7c,0xb4,0x86,0x10,0xfc,0xa8,0x18,0x2d,0xd4,0x57,0xce,0x6f,0x32,0x6a,0x0f,0xd3,0xd7,0xec,0x2f,0x1e,0x91,0x63,0x6d,0xee,0x69,0x1f,0xbe,0x0c,0x98,0x53,0x02,0xba,0x1b,0x0d,0x8d,0xc7,0x8c,0x08,0x63,0x46,0xb5,0x33,0xb4,0x9c,0x03,0x0d,0x99,0xa2,0x7d,0xaf,0x11,0x39,0xd6,0xe7,0x5e}; + u8 sha3_void_512[] = {0xa6,0x9f,0x73,0xcc,0xa2,0x3a,0x9a,0xc5,0xc8,0xb5,0x67,0xdc,0x18,0x5a,0x75,0x6e,0x97,0xc9,0x82,0x16,0x4f,0xe2,0x58,0x59,0xe0,0xd1,0xdc,0xc1,0x47,0x5c,0x80,0xa6,0x15,0xb2,0x12,0x3a,0xf1,0xf5,0xf9,0x4c,0x11,0xe3,0xe9,0x40,0x2c,0x3a,0xc5,0x58,0xf5,0x00,0x19,0x9d,0x95,0xb6,0xd3,0xe3,0x01,0x75,0x85,0x86,0x28,0x1d,0xcd,0x26}; //data = 1 million "a" 1 million 61 - u8 sha3_million_a_224[] = {0xd6, 0x93, 0x35, 0xb9, 0x33, 0x25, 0x19, 0x2e, 0x51, 0x6a, 0x91, 0x2e, 0x6d, 0x19, 0xa1, 0x5c, 0xb5, 0x1c, 0x6e, 0xd5, 0xc1, 0x52, 0x43, 0xe7, 0xa7, 0xfd, 0x65, 0x3c}; - u8 sha3_million_a_256[] = {0x5c, 0x88, 0x75, 0xae, 0x47, 0x4a, 0x36, 0x34, 0xba, 0x4f, 0xd5, 0x5e, 0xc8, 0x5b, 0xff, 0xd6, 0x61, 0xf3, 0x2a, 0xca, 0x75, 0xc6, 0xd6, 0x99, 0xd0, 0xcd, 0xcb, 0x6c, 0x11, 0x58, 0x91, 0xc1}; - u8 sha3_million_a_384[] = {0xee, 0xe9, 0xe2, 0x4d, 0x78, 0xc1, 0x85, 0x53, 0x37, 0x98, 0x34, 0x51, 0xdf, 0x97, 0xc8, 0xad, 0x9e, 0xed, 0xf2, 0x56, 0xc6, 0x33, 0x4f, 0x8e, 0x94, 0x8d, 0x25, 0x2d, 0x5e, 0x0e, 0x76, 0x84, 0x7a, 0xa0, 0x77, 0x4d, 0xdb, 0x90, 0xa8, 0x42, 0x19, 0x0d, 0x2c, 0x55, 0x8b, 0x4b, 0x83, 0x40}; - u8 sha3_million_a_512[] = {0x3c, 0x3a, 0x87, 0x6d, 0xa1, 0x40, 0x34, 0xab, 0x60, 0x62, 0x7c, 0x07, 0x7b, 0xb9, 0x8f, 0x7e, 0x12, 0x0a, 0x2a, 0x53, 0x70, 0x21, 0x2d, 0xff, 0xb3, 0x38, 0x5a, 0x18, 0xd4, 0xf3, 0x88, 0x59, 0xed, 0x31, 0x1d, 0x0a, 0x9d, 0x51, 0x41, 0xce, 0x9c, 0xc5, 0xc6, 0x6e, 0xe6, 0x89, 0xb2, 0x66, 0xa8, 0xaa, 0x18, 0xac, 0xe8, 0x28, 0x2a, 0x0e, 0x0d, 0xb5, 0x96, 0xc9, 0x0b, 0x0a, 0x7b, 0x87}; + u8 sha3_million_a_224[] = {0xd6,0x93,0x35,0xb9,0x33,0x25,0x19,0x2e,0x51,0x6a,0x91,0x2e,0x6d,0x19,0xa1,0x5c,0xb5,0x1c,0x6e,0xd5,0xc1,0x52,0x43,0xe7,0xa7,0xfd,0x65,0x3c}; + u8 sha3_million_a_256[] = {0x5c,0x88,0x75,0xae,0x47,0x4a,0x36,0x34,0xba,0x4f,0xd5,0x5e,0xc8,0x5b,0xff,0xd6,0x61,0xf3,0x2a,0xca,0x75,0xc6,0xd6,0x99,0xd0,0xcd,0xcb,0x6c,0x11,0x58,0x91,0xc1}; + u8 sha3_million_a_384[] = {0xee,0xe9,0xe2,0x4d,0x78,0xc1,0x85,0x53,0x37,0x98,0x34,0x51,0xdf,0x97,0xc8,0xad,0x9e,0xed,0xf2,0x56,0xc6,0x33,0x4f,0x8e,0x94,0x8d,0x25,0x2d,0x5e,0x0e,0x76,0x84,0x7a,0xa0,0x77,0x4d,0xdb,0x90,0xa8,0x42,0x19,0x0d,0x2c,0x55,0x8b,0x4b,0x83,0x40}; + u8 sha3_million_a_512[] = {0x3c,0x3a,0x87,0x6d,0xa1,0x40,0x34,0xab,0x60,0x62,0x7c,0x07,0x7b,0xb9,0x8f,0x7e,0x12,0x0a,0x2a,0x53,0x70,0x21,0x2d,0xff,0xb3,0x38,0x5a,0x18,0xd4,0xf3,0x88,0x59,0xed,0x31,0x1d,0x0a,0x9d,0x51,0x41,0xce,0x9c,0xc5,0xc6,0x6e,0xe6,0x89,0xb2,0x66,0xa8,0xaa,0x18,0xac,0xe8,0x28,0x2a,0x0e,0x0d,0xb5,0x96,0xc9,0x0b,0x0a,0x7b,0x87}; int i; u8 digest[UCL_SHA3_512_HASHSIZE]; @@ -274,112 +274,112 @@ int test_sha3(void) } ucl_sha3_224_init(&ctx); - err = ucl_sha3_core(&ctx, abc, 3); + err = ucl_sha3_core(&ctx,abc,3); if (UCL_OK != err) { return(UCL_ERROR); } - err = ucl_sha3_finish(digest, &ctx); + err = ucl_sha3_finish(digest,&ctx); if (UCL_OK != err) { return(UCL_ERROR); } - ucl_sha3_224(digest, abc, sizeof(abc)); - if (memcmp(digest, sha3_abc_224, UCL_SHA3_224_HASHSIZE) != 0) { + ucl_sha3_224(digest,abc,sizeof(abc)); + if (memcmp(digest,sha3_abc_224,UCL_SHA3_224_HASHSIZE) != 0) { return(UCL_ERROR); } - ucl_sha3_224(digest, abcopq, sizeof(abcopq)); - if (memcmp(digest, sha3_abcopq_224, UCL_SHA3_224_HASHSIZE) != 0) { + ucl_sha3_224(digest,abcopq,sizeof(abcopq)); + if (memcmp(digest,sha3_abcopq_224,UCL_SHA3_224_HASHSIZE) != 0) { return(UCL_ERROR); } - ucl_sha3_224(digest, abc, 0); - if (memcmp(digest, sha3_void_224, UCL_SHA3_224_HASHSIZE) != 0) { + ucl_sha3_224(digest,abc,0); + if (memcmp(digest,sha3_void_224,UCL_SHA3_224_HASHSIZE) != 0) { return(UCL_ERROR); } ucl_sha3_224_init(&ctx); for (i = 0; i < 1000; i++) { - ucl_sha3_core(&ctx, million, 1000); + ucl_sha3_core(&ctx,million,1000); } - ucl_sha3_finish(digest, &ctx); - if (memcmp(digest, sha3_million_a_224, UCL_SHA3_224_HASHSIZE) != 0) { + ucl_sha3_finish(digest,&ctx); + if (memcmp(digest,sha3_million_a_224,UCL_SHA3_224_HASHSIZE) != 0) { return(UCL_ERROR); } - ucl_sha3_256(digest, abc, sizeof(abc)); - if (memcmp(digest, sha3_abc_256, UCL_SHA3_256_HASHSIZE) != 0) { + ucl_sha3_256(digest,abc,sizeof(abc)); + if (memcmp(digest,sha3_abc_256,UCL_SHA3_256_HASHSIZE) != 0) { return(UCL_ERROR); } - ucl_sha3_256(digest, abcopq, sizeof(abcopq)); - if (memcmp(digest, sha3_abcopq_256, UCL_SHA3_256_HASHSIZE) != 0) { + ucl_sha3_256(digest,abcopq,sizeof(abcopq)); + if (memcmp(digest,sha3_abcopq_256,UCL_SHA3_256_HASHSIZE) != 0) { return(UCL_ERROR); } - ucl_sha3_256(digest, abc, 0); - if (memcmp(digest, sha3_void_256, UCL_SHA3_256_HASHSIZE) != 0) { + ucl_sha3_256(digest,abc,0); + if (memcmp(digest,sha3_void_256,UCL_SHA3_256_HASHSIZE) != 0) { return(UCL_ERROR); } ucl_sha3_256_init(&ctx); for (i = 0; i < 1000; i++) { - ucl_sha3_core(&ctx, million, 1000); + ucl_sha3_core(&ctx,million,1000); } - ucl_sha3_finish(digest, &ctx); - if (memcmp(digest, sha3_million_a_256, UCL_SHA3_256_HASHSIZE) != 0) { + ucl_sha3_finish(digest,&ctx); + if (memcmp(digest,sha3_million_a_256,UCL_SHA3_256_HASHSIZE) != 0) { return(UCL_ERROR); } - ucl_sha3_384(digest, abc, sizeof(abc)); - if (memcmp(digest, sha3_abc_384, UCL_SHA3_384_HASHSIZE) != 0) { + ucl_sha3_384(digest,abc,sizeof(abc)); + if (memcmp(digest,sha3_abc_384,UCL_SHA3_384_HASHSIZE) != 0) { return(UCL_ERROR); } - ucl_sha3_384(digest, abcopq, sizeof(abcopq)); - if (memcmp(digest, sha3_abcopq_384, UCL_SHA3_384_HASHSIZE) != 0) { + ucl_sha3_384(digest,abcopq,sizeof(abcopq)); + if (memcmp(digest,sha3_abcopq_384,UCL_SHA3_384_HASHSIZE) != 0) { return(UCL_ERROR); } - ucl_sha3_384(digest, abc, 0); - if (memcmp(digest, sha3_void_384, UCL_SHA3_384_HASHSIZE) != 0) { + ucl_sha3_384(digest,abc,0); + if (memcmp(digest,sha3_void_384,UCL_SHA3_384_HASHSIZE) != 0) { return(UCL_ERROR); } ucl_sha3_384_init(&ctx); for (i = 0; i < 1000; i++) { - ucl_sha3_core(&ctx, million, 1000); + ucl_sha3_core(&ctx,million,1000); } - ucl_sha3_finish(digest, &ctx); - if (memcmp(digest, sha3_million_a_384, UCL_SHA3_384_HASHSIZE) != 0) { + ucl_sha3_finish(digest,&ctx); + if (memcmp(digest,sha3_million_a_384,UCL_SHA3_384_HASHSIZE) != 0) { return(UCL_ERROR); } - ucl_sha3_512(digest, abc, sizeof(abc)); - if (memcmp(digest, sha3_abc_512, UCL_SHA3_512_HASHSIZE) != 0) { + ucl_sha3_512(digest,abc,sizeof(abc)); + if (memcmp(digest,sha3_abc_512,UCL_SHA3_512_HASHSIZE) != 0) { return(UCL_ERROR); } - ucl_sha3_512(digest, abcopq, sizeof(abcopq)); - if (memcmp(digest, sha3_abcopq_512, UCL_SHA3_512_HASHSIZE) != 0) { + ucl_sha3_512(digest,abcopq,sizeof(abcopq)); + if (memcmp(digest,sha3_abcopq_512,UCL_SHA3_512_HASHSIZE) != 0) { return(UCL_ERROR); } - ucl_sha3_512(digest, abc, 0); - if (memcmp(digest, sha3_void_512, UCL_SHA3_512_HASHSIZE) != 0) { + ucl_sha3_512(digest,abc,0); + if (memcmp(digest,sha3_void_512,UCL_SHA3_512_HASHSIZE) != 0) { return(UCL_ERROR); } ucl_sha3_512_init(&ctx); for (i = 0; i < 1000; i++) { - ucl_sha3_core(&ctx, million, 1000); + ucl_sha3_core(&ctx,million,1000); } - ucl_sha3_finish(digest, &ctx); - if (memcmp(digest, sha3_million_a_512, UCL_SHA3_512_HASHSIZE) != 0) { + ucl_sha3_finish(digest,&ctx); + if (memcmp(digest,sha3_million_a_512,UCL_SHA3_512_HASHSIZE) != 0) { return(UCL_ERROR); } @@ -431,98 +431,98 @@ int test_sha384(void) ucl_sha384_ctx_t ctx; u8 e[UCL_SHA384_HASHSIZE]; u8 tab[1005]; - u8 digest_void[] = {0x38, 0xb0, 0x60, 0xa7, 0x51, 0xac, 0x96, 0x38, 0x4c, 0xd9, 0x32, 0x7e, 0xb1, 0xb1, 0xe3, 0x6a, 0x21, 0xfd, 0xb7, 0x11, 0x14, 0xbe, 0x07, 0x43, 0x4c, 0x0c, 0xc7, 0xbf, 0x63, 0xf6, 0xe1, 0xda, 0x27, 0x4e, 0xde, 0xbf, 0xe7, 0x6f, 0x65, 0xfb, 0xd5, 0x1a, 0xd2, 0xf1, 0x48, 0x98, 0xb9, 0x5b}; - u8 digest_1110[] = {0x43, 0x57, 0x70, 0x71, 0x2c, 0x61, 0x1b, 0xe7, 0x29, 0x3a, 0x66, 0xdd, 0x0d, 0xc8, 0xd1, 0x45, 0x0d, 0xc7, 0xff, 0x73, 0x37, 0xbf, 0xe1, 0x15, 0xbf, 0x05, 0x8e, 0xf2, 0xeb, 0x9b, 0xed, 0x09, 0xce, 0xe8, 0x5c, 0x26, 0x96, 0x3a, 0x5b, 0xcc, 0x09, 0x05, 0xdc, 0x2d, 0xf7, 0xcc, 0x6a, 0x76}; - u8 digest_1120[] = {0x3e, 0x0c, 0xbf, 0x3a, 0xee, 0x0e, 0x3a, 0xa7, 0x04, 0x15, 0xbe, 0xae, 0x1b, 0xd1, 0x2d, 0xd7, 0xdb, 0x82, 0x1e, 0xfa, 0x44, 0x64, 0x40, 0xf1, 0x21, 0x32, 0xed, 0xff, 0xce, 0x76, 0xf6, 0x35, 0xe5, 0x35, 0x26, 0xa1, 0x11, 0x49, 0x1e, 0x75, 0xee, 0x8e, 0x27, 0xb9, 0x70, 0x0e, 0xec, 0x20}; - u8 digest_1130[] = {0x6b, 0xe9, 0xaf, 0x2c, 0xf3, 0xcd, 0x5d, 0xd1, 0x2c, 0x8d, 0x93, 0x99, 0xec, 0x2b, 0x34, 0xe6, 0x60, 0x34, 0xfb, 0xd6, 0x99, 0xd4, 0xe0, 0x22, 0x1d, 0x39, 0x07, 0x41, 0x72, 0xa3, 0x80, 0x65, 0x60, 0x89, 0xca, 0xaf, 0xe8, 0xf3, 0x99, 0x63, 0xf9, 0x4c, 0xc7, 0xc0, 0xa0, 0x7e, 0x3d, 0x21}; - u8 digest_1220[] = {0x12, 0xa7, 0x2a, 0xe4, 0x97, 0x27, 0x76, 0xb0, 0xdb, 0x7d, 0x73, 0xd1, 0x60, 0xa1, 0x5e, 0xf0, 0xd1, 0x96, 0x45, 0xec, 0x96, 0xc7, 0xf8, 0x16, 0x41, 0x1a, 0xb7, 0x80, 0xc7, 0x94, 0xaa, 0x49, 0x6a, 0x22, 0x90, 0x9d, 0x94, 0x1f, 0xe6, 0x71, 0xed, 0x3f, 0x3c, 0xae, 0xe9, 0x00, 0xbd, 0xd5}; - u8 digest_10000[] = {0xaa, 0xe0, 0x17, 0xd4, 0xae, 0x5b, 0x63, 0x46, 0xdd, 0x60, 0xa1, 0x9d, 0x52, 0x13, 0x0f, 0xb5, 0x51, 0x94, 0xb6, 0x32, 0x7d, 0xd4, 0x0b, 0x89, 0xc1, 0x1e, 0xfc, 0x82, 0x22, 0x29, 0x2d, 0xe8, 0x1e, 0x1a, 0x23, 0xc9, 0xb5, 0x9f, 0x9f, 0x58, 0xb7, 0xf6, 0xad, 0x46, 0x3f, 0xa1, 0x08, 0xca}; - u8 digest_1000A[] = {0x7d, 0xf0, 0x11, 0x48, 0x67, 0x7b, 0x7f, 0x18, 0x61, 0x7e, 0xee, 0x3a, 0x23, 0x10, 0x4f, 0x0e, 0xed, 0x6b, 0xb8, 0xc9, 0x0a, 0x60, 0x46, 0xf7, 0x15, 0xc9, 0x44, 0x5f, 0xf4, 0x3c, 0x30, 0xd6, 0x9e, 0x9e, 0x70, 0x82, 0xde, 0x39, 0xc3, 0x45, 0x2f, 0xd1, 0xd3, 0xaf, 0xd9, 0xba, 0x06, 0x89}; - u8 digest_1005U[] = {0x1b, 0xb8, 0xe2, 0x56, 0xda, 0x4a, 0x0d, 0x1e, 0x87, 0x45, 0x35, 0x28, 0x25, 0x4f, 0x22, 0x3b, 0x4c, 0xb7, 0xe4, 0x9c, 0x44, 0x20, 0xdb, 0xfa, 0x76, 0x6b, 0xba, 0x4a, 0xdb, 0xa4, 0x4e, 0xec, 0xa3, 0x92, 0xff, 0x6a, 0x9f, 0x56, 0x5b, 0xc3, 0x47, 0x15, 0x8c, 0xc9, 0x70, 0xce, 0x44, 0xec}; - u8 digest_1mil0[] = {0x8a, 0x19, 0x79, 0xf9, 0x04, 0x9b, 0x3f, 0xff, 0x15, 0xea, 0x3a, 0x43, 0xa4, 0xcf, 0x84, 0xc6, 0x34, 0xfd, 0x14, 0xac, 0xad, 0x1c, 0x33, 0x3f, 0xec, 0xb7, 0x2c, 0x58, 0x8b, 0x68, 0x86, 0x8b, 0x66, 0xa9, 0x94, 0x38, 0x6d, 0xc0, 0xcd, 0x16, 0x87, 0xb9, 0xee, 0x2e, 0x34, 0x98, 0x3b, 0x81}; - u8 digest_536Z[] = {0x18, 0xad, 0xed, 0x22, 0x7c, 0xc6, 0xb5, 0x62, 0xcc, 0x7f, 0xb2, 0x59, 0xe8, 0xf4, 0x04, 0x54, 0x9e, 0x52, 0x91, 0x45, 0x31, 0xaa, 0x1c, 0x5d, 0x85, 0x16, 0x78, 0x97, 0xc7, 0x79, 0xcc, 0x4b, 0x25, 0xd0, 0x42, 0x5f, 0xd1, 0x59, 0x0e, 0x40, 0xbd, 0x76, 0x3e, 0xc3, 0xf4, 0x31, 0x1c, 0x1a}; - u8 digest_1090[] = {0x83, 0xab, 0x05, 0xca, 0x48, 0x3a, 0xbe, 0x3f, 0xaa, 0x59, 0x7a, 0xd5, 0x24, 0xd3, 0x12, 0x91, 0xae, 0x82, 0x7c, 0x5b, 0xe2, 0xb3, 0xef, 0xcb, 0x63, 0x91, 0xbf, 0xed, 0x31, 0xcc, 0xd9, 0x37, 0xb6, 0x13, 0x5e, 0x03, 0x78, 0xc6, 0xc7, 0xf5, 0x98, 0x85, 0x7a, 0x7c, 0x51, 0x6f, 0x20, 0x7a}; + u8 digest_void[] = {0x38,0xb0,0x60,0xa7,0x51,0xac,0x96,0x38,0x4c,0xd9,0x32,0x7e,0xb1,0xb1,0xe3,0x6a,0x21,0xfd,0xb7,0x11,0x14,0xbe,0x07,0x43,0x4c,0x0c,0xc7,0xbf,0x63,0xf6,0xe1,0xda,0x27,0x4e,0xde,0xbf,0xe7,0x6f,0x65,0xfb,0xd5,0x1a,0xd2,0xf1,0x48,0x98,0xb9,0x5b}; + u8 digest_1110[] = {0x43,0x57,0x70,0x71,0x2c,0x61,0x1b,0xe7,0x29,0x3a,0x66,0xdd,0x0d,0xc8,0xd1,0x45,0x0d,0xc7,0xff,0x73,0x37,0xbf,0xe1,0x15,0xbf,0x05,0x8e,0xf2,0xeb,0x9b,0xed,0x09,0xce,0xe8,0x5c,0x26,0x96,0x3a,0x5b,0xcc,0x09,0x05,0xdc,0x2d,0xf7,0xcc,0x6a,0x76}; + u8 digest_1120[] = {0x3e,0x0c,0xbf,0x3a,0xee,0x0e,0x3a,0xa7,0x04,0x15,0xbe,0xae,0x1b,0xd1,0x2d,0xd7,0xdb,0x82,0x1e,0xfa,0x44,0x64,0x40,0xf1,0x21,0x32,0xed,0xff,0xce,0x76,0xf6,0x35,0xe5,0x35,0x26,0xa1,0x11,0x49,0x1e,0x75,0xee,0x8e,0x27,0xb9,0x70,0x0e,0xec,0x20}; + u8 digest_1130[] = {0x6b,0xe9,0xaf,0x2c,0xf3,0xcd,0x5d,0xd1,0x2c,0x8d,0x93,0x99,0xec,0x2b,0x34,0xe6,0x60,0x34,0xfb,0xd6,0x99,0xd4,0xe0,0x22,0x1d,0x39,0x07,0x41,0x72,0xa3,0x80,0x65,0x60,0x89,0xca,0xaf,0xe8,0xf3,0x99,0x63,0xf9,0x4c,0xc7,0xc0,0xa0,0x7e,0x3d,0x21}; + u8 digest_1220[] = {0x12,0xa7,0x2a,0xe4,0x97,0x27,0x76,0xb0,0xdb,0x7d,0x73,0xd1,0x60,0xa1,0x5e,0xf0,0xd1,0x96,0x45,0xec,0x96,0xc7,0xf8,0x16,0x41,0x1a,0xb7,0x80,0xc7,0x94,0xaa,0x49,0x6a,0x22,0x90,0x9d,0x94,0x1f,0xe6,0x71,0xed,0x3f,0x3c,0xae,0xe9,0x00,0xbd,0xd5}; + u8 digest_10000[] = {0xaa,0xe0,0x17,0xd4,0xae,0x5b,0x63,0x46,0xdd,0x60,0xa1,0x9d,0x52,0x13,0x0f,0xb5,0x51,0x94,0xb6,0x32,0x7d,0xd4,0x0b,0x89,0xc1,0x1e,0xfc,0x82,0x22,0x29,0x2d,0xe8,0x1e,0x1a,0x23,0xc9,0xb5,0x9f,0x9f,0x58,0xb7,0xf6,0xad,0x46,0x3f,0xa1,0x08,0xca}; + u8 digest_1000A[] = {0x7d,0xf0,0x11,0x48,0x67,0x7b,0x7f,0x18,0x61,0x7e,0xee,0x3a,0x23,0x10,0x4f,0x0e,0xed,0x6b,0xb8,0xc9,0x0a,0x60,0x46,0xf7,0x15,0xc9,0x44,0x5f,0xf4,0x3c,0x30,0xd6,0x9e,0x9e,0x70,0x82,0xde,0x39,0xc3,0x45,0x2f,0xd1,0xd3,0xaf,0xd9,0xba,0x06,0x89}; + u8 digest_1005U[] = {0x1b,0xb8,0xe2,0x56,0xda,0x4a,0x0d,0x1e,0x87,0x45,0x35,0x28,0x25,0x4f,0x22,0x3b,0x4c,0xb7,0xe4,0x9c,0x44,0x20,0xdb,0xfa,0x76,0x6b,0xba,0x4a,0xdb,0xa4,0x4e,0xec,0xa3,0x92,0xff,0x6a,0x9f,0x56,0x5b,0xc3,0x47,0x15,0x8c,0xc9,0x70,0xce,0x44,0xec}; + u8 digest_1mil0[] = {0x8a,0x19,0x79,0xf9,0x04,0x9b,0x3f,0xff,0x15,0xea,0x3a,0x43,0xa4,0xcf,0x84,0xc6,0x34,0xfd,0x14,0xac,0xad,0x1c,0x33,0x3f,0xec,0xb7,0x2c,0x58,0x8b,0x68,0x86,0x8b,0x66,0xa9,0x94,0x38,0x6d,0xc0,0xcd,0x16,0x87,0xb9,0xee,0x2e,0x34,0x98,0x3b,0x81}; + u8 digest_536Z[] = {0x18,0xad,0xed,0x22,0x7c,0xc6,0xb5,0x62,0xcc,0x7f,0xb2,0x59,0xe8,0xf4,0x04,0x54,0x9e,0x52,0x91,0x45,0x31,0xaa,0x1c,0x5d,0x85,0x16,0x78,0x97,0xc7,0x79,0xcc,0x4b,0x25,0xd0,0x42,0x5f,0xd1,0x59,0x0e,0x40,0xbd,0x76,0x3e,0xc3,0xf4,0x31,0x1c,0x1a}; + u8 digest_1090[] = {0x83,0xab,0x05,0xca,0x48,0x3a,0xbe,0x3f,0xaa,0x59,0x7a,0xd5,0x24,0xd3,0x12,0x91,0xae,0x82,0x7c,0x5b,0xe2,0xb3,0xef,0xcb,0x63,0x91,0xbf,0xed,0x31,0xcc,0xd9,0x37,0xb6,0x13,0x5e,0x03,0x78,0xc6,0xc7,0xf5,0x98,0x85,0x7a,0x7c,0x51,0x6f,0x20,0x7a}; #ifdef VERBOSE PRINTF("TEST SHA384\n"); PRINTF("sha384(void)\n"); #endif - ucl_sha384(e, tab, 0); + ucl_sha384(e,tab,0); //#1) 0 byte (null message) - if (memcmp(e, digest_void, 48) != 0) { + if (memcmp(e,digest_void,48) != 0) { return(UCL_ERROR); } for (i = 0; i < 1000; i++) tab[i] = 0; - ucl_sha384(e, tab, 111); + ucl_sha384(e,tab,111); #ifdef VERBOSE PRINTF("sha384(111-0)\n"); #endif //#2) 111 bytes of zeros - if (memcmp(e, digest_1110, 48) != 0) { + if (memcmp(e,digest_1110,48) != 0) { for (i = 0; i < 48; i++) - printf("%02x", e[i]); + printf("%02x",e[i]); printf("\n"); return(UCL_ERROR); } - ucl_sha384(e, tab, 112); + ucl_sha384(e,tab,112); #ifdef VERBOSE PRINTF("sha384(112-0)\n"); #endif //#3) 112 bytes of zeros - if (memcmp(e, digest_1120, 48) != 0) { + if (memcmp(e,digest_1120,48) != 0) { return(UCL_ERROR); } - ucl_sha384(e, tab, 113); + ucl_sha384(e,tab,113); #ifdef VERBOSE PRINTF("sha384(113-0):"); #endif //#4) 113 bytes of zeros - if (memcmp(e, digest_1130, 48) != 0) { + if (memcmp(e,digest_1130,48) != 0) { return(UCL_ERROR); } - ucl_sha384(e, tab, 122); + ucl_sha384(e,tab,122); #ifdef VERBOSE PRINTF("sha384(122-0):"); #endif //#5) 122 bytes of zeros - if (memcmp(e, digest_1220, 48) != 0) { + if (memcmp(e,digest_1220,48) != 0) { return(UCL_ERROR); } - ucl_sha384(e, tab, 1000); + ucl_sha384(e,tab,1000); #ifdef VERBOSE PRINTF("sha384(1000-0):"); #endif //#6) 1000 bytes of zeros - if (memcmp(e, digest_10000, 48) != 0) { + if (memcmp(e,digest_10000,48) != 0) { return(UCL_ERROR); } for (i = 0; i < 1000; i++) { tab[i] = 'A'; } - ucl_sha384(e, tab, 1000); + ucl_sha384(e,tab,1000); #ifdef VERBOSE PRINTF("sha384(1000-A):"); #endif //#7) 1000 bytes of 0x41 'A' - if (memcmp(e, digest_1000A, 48) != 0) { + if (memcmp(e,digest_1000A,48) != 0) { return(UCL_ERROR); } for (i = 0; i < 1005; i++) { tab[i] = 'U'; } - ucl_sha384(e, tab, 1005); + ucl_sha384(e,tab,1005); #ifdef VERBOSE PRINTF("sha384(1005-U):"); #endif //#8) 1005 bytes of 0x55 'U' - if (memcmp(e, digest_1005U, 48) != 0) { + if (memcmp(e,digest_1005U,48) != 0) { return(UCL_ERROR); } @@ -532,14 +532,14 @@ int test_sha384(void) ucl_sha384_init(&ctx); for (i = 0; i < 1000; i++) { - ucl_sha384_core(&ctx, tab, 1000); + ucl_sha384_core(&ctx,tab,1000); } - ucl_sha384_finish(e, &ctx); + ucl_sha384_finish(e,&ctx); #ifdef VERBOSE PRINTF("sha384(1mil-0):"); #endif //#9) 1000000 bytes of zeros - if (memcmp(e, digest_1mil0, 48) != 0) { + if (memcmp(e,digest_1mil0,48) != 0) { return(UCL_ERROR); } @@ -549,14 +549,14 @@ int test_sha384(void) ucl_sha384_init(&ctx); for (i = 0; i < 1048576; i++) { - ucl_sha384_core(&ctx, tab, 512); + ucl_sha384_core(&ctx,tab,512); } - ucl_sha384_finish(e, &ctx); + ucl_sha384_finish(e,&ctx); #ifdef VERBOSE PRINTF("sha384(2^29-Z):"); #endif //#10) 0x20000000 (536870912) bytes of 0x5a 'Z' - if (memcmp(e, digest_536Z, 48) != 0) { + if (memcmp(e,digest_536Z,48) != 0) { return(UCL_ERROR); } @@ -566,14 +566,14 @@ int test_sha384(void) ucl_sha384_init(&ctx); for (i = 0; i < 2097152; i++) { - ucl_sha384_core(&ctx, tab, 520); + ucl_sha384_core(&ctx,tab,520); } - ucl_sha384_finish(e, &ctx); + ucl_sha384_finish(e,&ctx); #ifdef VERBOSE PRINTF("sha384(2^24*5*13-0):"); #endif //#11) 0x41000000 (1090519040) bytes of zeros - if (memcmp(e, digest_1090, 48) != 0) { + if (memcmp(e,digest_1090,48) != 0) { return(UCL_ERROR); } @@ -625,117 +625,117 @@ int test_sha512(void) int i; ucl_sha512_ctx_t ctx; u8 e[UCL_SHA512_HASHSIZE]; - u8 mabc[3] = {'a', 'b', 'c'}; + u8 mabc[3] = {'a','b','c'}; u8 mtwoblock512[] = {"abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"}; - u8 digest_void[] = {0xcf, 0x83, 0xe1, 0x35, 0x7e, 0xef, 0xb8, 0xbd, 0xf1, 0x54, 0x28, 0x50, 0xd6, 0x6d, 0x80, 0x07, 0xd6, 0x20, 0xe4, 0x05, 0x0b, 0x57, 0x15, 0xdc, 0x83, 0xf4, 0xa9, 0x21, 0xd3, 0x6c, 0xe9, 0xce, 0x47, 0xd0, 0xd1, 0x3c, 0x5d, 0x85, 0xf2, 0xb0, 0xff, 0x83, 0x18, 0xd2, 0x87, 0x7e, 0xec, 0x2f, 0x63, 0xb9, 0x31, 0xbd, 0x47, 0x41, 0x7a, 0x81, 0xa5, 0x38, 0x32, 0x7a, 0xf9, 0x27, 0xda, 0x3e}; - u8 digest_abc[] = {0xdd, 0xaf, 0x35, 0xa1, 0x93, 0x61, 0x7a, 0xba, 0xcc, 0x41, 0x73, 0x49, 0xae, 0x20, 0x41, 0x31, 0x12, 0xe6, 0xfa, 0x4e, 0x89, 0xa9, 0x7e, 0xa2, 0x0a, 0x9e, 0xee, 0xe6, 0x4b, 0x55, 0xd3, 0x9a, 0x21, 0x92, 0x99, 0x2a, 0x27, 0x4f, 0xc1, 0xa8, 0x36, 0xba, 0x3c, 0x23, 0xa3, 0xfe, 0xeb, 0xbd, 0x45, 0x4d, 0x44, 0x23, 0x64, 0x3c, 0xe8, 0x0e, 0x2a, 0x9a, 0xc9, 0x4f, 0xa5, 0x4c, 0xa4, 0x9f}; - u8 digest_2blocks[] = {0x8e, 0x95, 0x9b, 0x75, 0xda, 0xe3, 0x13, 0xda, 0x8c, 0xf4, 0xf7, 0x28, 0x14, 0xfc, 0x14, 0x3f, 0x8f, 0x77, 0x79, 0xc6, 0xeb, 0x9f, 0x7f, 0xa1, 0x72, 0x99, 0xae, 0xad, 0xb6, 0x88, 0x90, 0x18, 0x50, 0x1d, 0x28, 0x9e, 0x49, 0x00, 0xf7, 0xe4, 0x33, 0x1b, 0x99, 0xde, 0xc4, 0xb5, 0x43, 0x3a, 0xc7, 0xd3, 0x29, 0xee, 0xb6, 0xdd, 0x26, 0x54, 0x5e, 0x96, 0xe5, 0x5b, 0x87, 0x4b, 0xe9, 0x09}; - u8 digest_1110[] = {0x77, 0xdd, 0xd3, 0xa5, 0x42, 0xe5, 0x30, 0xfd, 0x04, 0x7b, 0x89, 0x77, 0xc6, 0x57, 0xba, 0x6c, 0xe7, 0x2f, 0x14, 0x92, 0xe3, 0x60, 0xb2, 0xb2, 0x21, 0x2c, 0xd2, 0x64, 0xe7, 0x5e, 0xc0, 0x38, 0x82, 0xe4, 0xff, 0x05, 0x25, 0x51, 0x7a, 0xb4, 0x20, 0x7d, 0x14, 0xc7, 0x0c, 0x22, 0x59, 0xba, 0x88, 0xd4, 0xd3, 0x35, 0xee, 0x0e, 0x7e, 0x20, 0x54, 0x3d, 0x22, 0x10, 0x2a, 0xb1, 0x78, 0x8c}; - u8 digest_1120[] = {0x2b, 0xe2, 0xe7, 0x88, 0xc8, 0xa8, 0xad, 0xea, 0xa9, 0xc8, 0x9a, 0x7f, 0x78, 0x90, 0x4c, 0xac, 0xea, 0x6e, 0x39, 0x29, 0x7d, 0x75, 0xe0, 0x57, 0x3a, 0x73, 0xc7, 0x56, 0x23, 0x45, 0x34, 0xd6, 0x62, 0x7a, 0xb4, 0x15, 0x6b, 0x48, 0xa6, 0x65, 0x7b, 0x29, 0xab, 0x8b, 0xeb, 0x73, 0x33, 0x40, 0x40, 0xad, 0x39, 0xea, 0xd8, 0x14, 0x46, 0xbb, 0x09, 0xc7, 0x07, 0x04, 0xec, 0x70, 0x79, 0x52}; - u8 digest_1130[] = {0x0e, 0x67, 0x91, 0x0b, 0xcf, 0x0f, 0x9c, 0xcd, 0xe5, 0x46, 0x4c, 0x63, 0xb9, 0xc8, 0x50, 0xa1, 0x2a, 0x75, 0x92, 0x27, 0xd1, 0x6b, 0x04, 0x0d, 0x98, 0x98, 0x6d, 0x54, 0x25, 0x3f, 0x9f, 0x34, 0x32, 0x23, 0x18, 0xe5, 0x6b, 0x8f, 0xeb, 0x86, 0xc5, 0xfb, 0x22, 0x70, 0xed, 0x87, 0xf3, 0x12, 0x52, 0xf7, 0xf6, 0x84, 0x93, 0xee, 0x75, 0x97, 0x43, 0x90, 0x9b, 0xd7, 0x5e, 0x4b, 0xb5, 0x44}; - u8 digest_1220[] = {0x4f, 0x3f, 0x09, 0x5d, 0x01, 0x5b, 0xe4, 0xa7, 0xa7, 0xcc, 0x0b, 0x8c, 0x04, 0xda, 0x4a, 0xa0, 0x9e, 0x74, 0x35, 0x1e, 0x3a, 0x97, 0x65, 0x1f, 0x74, 0x4c, 0x23, 0x71, 0x6e, 0xbd, 0x9b, 0x3e, 0x82, 0x2e, 0x50, 0x77, 0xa0, 0x1b, 0xaa, 0x5c, 0xc0, 0xed, 0x45, 0xb9, 0x24, 0x9e, 0x88, 0xab, 0x34, 0x3d, 0x43, 0x33, 0x53, 0x9d, 0xf2, 0x1e, 0xd2, 0x29, 0xda, 0x6f, 0x4a, 0x51, 0x4e, 0x0f}; - u8 digest_10000[] = {0xca, 0x3d, 0xff, 0x61, 0xbb, 0x23, 0x47, 0x7a, 0xa6, 0x08, 0x7b, 0x27, 0x50, 0x82, 0x64, 0xa6, 0xf9, 0x12, 0x6e, 0xe3, 0xa0, 0x04, 0xf5, 0x3c, 0xb8, 0xdb, 0x94, 0x2e, 0xd3, 0x45, 0xf2, 0xf2, 0xd2, 0x29, 0xb4, 0xb5, 0x9c, 0x85, 0x92, 0x20, 0xa1, 0xcf, 0x19, 0x13, 0xf3, 0x42, 0x48, 0xe3, 0x80, 0x3b, 0xab, 0x65, 0x0e, 0x84, 0x9a, 0x3d, 0x9a, 0x70, 0x9e, 0xdc, 0x09, 0xae, 0x4a, 0x76}; - u8 digest_100041[] = {0x32, 0x9c, 0x52, 0xac, 0x62, 0xd1, 0xfe, 0x73, 0x11, 0x51, 0xf2, 0xb8, 0x95, 0xa0, 0x04, 0x75, 0x44, 0x5e, 0xf7, 0x4f, 0x50, 0xb9, 0x79, 0xc6, 0xf7, 0xbb, 0x7c, 0xae, 0x34, 0x93, 0x28, 0xc1, 0xd4, 0xcb, 0x4f, 0x72, 0x61, 0xa0, 0xab, 0x43, 0xf9, 0x36, 0xa2, 0x4b, 0x00, 0x06, 0x51, 0xd4, 0xa8, 0x24, 0xfc, 0xdd, 0x57, 0x7f, 0x21, 0x1a, 0xef, 0x8f, 0x80, 0x6b, 0x16, 0xaf, 0xe8, 0xaf}; - u8 digest_1005U[] = {0x59, 0xf5, 0xe5, 0x4f, 0xe2, 0x99, 0xc6, 0xa8, 0x76, 0x4c, 0x6b, 0x19, 0x9e, 0x44, 0x92, 0x4a, 0x37, 0xf5, 0x9e, 0x2b, 0x56, 0xc3, 0xeb, 0xad, 0x93, 0x9b, 0x72, 0x89, 0x21, 0x0d, 0xc8, 0xe4, 0xc2, 0x1b, 0x97, 0x20, 0x16, 0x5b, 0x0f, 0x4d, 0x43, 0x74, 0xc9, 0x0f, 0x1b, 0xf4, 0xfb, 0x4a, 0x5a, 0xce, 0x17, 0xa1, 0x16, 0x17, 0x98, 0x01, 0x50, 0x52, 0x89, 0x3a, 0x48, 0xc3, 0xd1, 0x61}; - u8 digest_1mil0[] = {0xce, 0x04, 0x4b, 0xc9, 0xfd, 0x43, 0x26, 0x9d, 0x5b, 0xbc, 0x94, 0x6c, 0xbe, 0xbc, 0x3b, 0xb7, 0x11, 0x34, 0x11, 0x15, 0xcc, 0x4a, 0xbd, 0xf2, 0xed, 0xbc, 0x3f, 0xf2, 0xc5, 0x7a, 0xd4, 0xb1, 0x5d, 0xeb, 0x69, 0x9b, 0xda, 0x25, 0x7f, 0xea, 0x5a, 0xef, 0x9c, 0x6e, 0x55, 0xfc, 0xf4, 0xcf, 0x9d, 0xc2, 0x5a, 0x8c, 0x3c, 0xe2, 0x5f, 0x2e, 0xfe, 0x90, 0x90, 0x83, 0x79, 0xbf, 0xf7, 0xed}; - u8 digest_5a[] = {0xda, 0x17, 0x22, 0x79, 0xf3, 0xeb, 0xbd, 0xa9, 0x5f, 0x6b, 0x6e, 0x1e, 0x5f, 0x0e, 0xbe, 0xc6, 0x82, 0xc2, 0x5d, 0x3d, 0x93, 0x56, 0x1a, 0x16, 0x24, 0xc2, 0xfa, 0x90, 0x09, 0xd6, 0x4c, 0x7e, 0x99, 0x23, 0xf3, 0xb4, 0x6b, 0xca, 0xf1, 0x1d, 0x39, 0xa5, 0x31, 0xf4, 0x32, 0x97, 0x99, 0x2b, 0xa4, 0x15, 0x5c, 0x7e, 0x82, 0x7b, 0xd0, 0xf1, 0xe1, 0x94, 0xae, 0x7e, 0xd6, 0xde, 0x4c, 0xac}; - u8 digest_1090[] = {0x14, 0xb1, 0xbe, 0x90, 0x1c, 0xb4, 0x35, 0x49, 0xb4, 0xd8, 0x31, 0xe6, 0x1e, 0x5f, 0x9d, 0xf1, 0xc7, 0x91, 0xc8, 0x5b, 0x50, 0xe8, 0x5f, 0x9d, 0x6b, 0xc6, 0x41, 0x35, 0x80, 0x4a, 0xd4, 0x3c, 0xe8, 0x40, 0x27, 0x50, 0xed, 0xbe, 0x4e, 0x5c, 0x0f, 0xc1, 0x70, 0xb9, 0x9c, 0xf7, 0x8b, 0x9f, 0x4e, 0xcb, 0x9c, 0x7e, 0x02, 0xa1, 0x57, 0x91, 0x1d, 0x1b, 0xd1, 0x83, 0x2d, 0x76, 0x78, 0x4f}; - u8 digest_42[] = {0xfd, 0x05, 0xe1, 0x3e, 0xb7, 0x71, 0xf0, 0x51, 0x90, 0xbd, 0x97, 0xd6, 0x26, 0x47, 0x15, 0x7e, 0xa8, 0xf1, 0xf6, 0x94, 0x9a, 0x52, 0xbb, 0x6d, 0xaa, 0xed, 0xba, 0xd5, 0xf5, 0x78, 0xec, 0x59, 0xb1, 0xb8, 0xd6, 0xc4, 0xa7, 0xec, 0xb2, 0xfe, 0xca, 0x68, 0x92, 0xb4, 0xdc, 0x13, 0x87, 0x71, 0x67, 0x0a, 0x0f, 0x3b, 0xd5, 0x77, 0xee, 0xa3, 0x26, 0xae, 0xd4, 0x0a, 0xb7, 0xdd, 0x58, 0xb1}; + u8 digest_void[] = {0xcf,0x83,0xe1,0x35,0x7e,0xef,0xb8,0xbd,0xf1,0x54,0x28,0x50,0xd6,0x6d,0x80,0x07,0xd6,0x20,0xe4,0x05,0x0b,0x57,0x15,0xdc,0x83,0xf4,0xa9,0x21,0xd3,0x6c,0xe9,0xce,0x47,0xd0,0xd1,0x3c,0x5d,0x85,0xf2,0xb0,0xff,0x83,0x18,0xd2,0x87,0x7e,0xec,0x2f,0x63,0xb9,0x31,0xbd,0x47,0x41,0x7a,0x81,0xa5,0x38,0x32,0x7a,0xf9,0x27,0xda,0x3e}; + u8 digest_abc[] = {0xdd,0xaf,0x35,0xa1,0x93,0x61,0x7a,0xba,0xcc,0x41,0x73,0x49,0xae,0x20,0x41,0x31,0x12,0xe6,0xfa,0x4e,0x89,0xa9,0x7e,0xa2,0x0a,0x9e,0xee,0xe6,0x4b,0x55,0xd3,0x9a,0x21,0x92,0x99,0x2a,0x27,0x4f,0xc1,0xa8,0x36,0xba,0x3c,0x23,0xa3,0xfe,0xeb,0xbd,0x45,0x4d,0x44,0x23,0x64,0x3c,0xe8,0x0e,0x2a,0x9a,0xc9,0x4f,0xa5,0x4c,0xa4,0x9f}; + u8 digest_2blocks[] = {0x8e,0x95,0x9b,0x75,0xda,0xe3,0x13,0xda,0x8c,0xf4,0xf7,0x28,0x14,0xfc,0x14,0x3f,0x8f,0x77,0x79,0xc6,0xeb,0x9f,0x7f,0xa1,0x72,0x99,0xae,0xad,0xb6,0x88,0x90,0x18,0x50,0x1d,0x28,0x9e,0x49,0x00,0xf7,0xe4,0x33,0x1b,0x99,0xde,0xc4,0xb5,0x43,0x3a,0xc7,0xd3,0x29,0xee,0xb6,0xdd,0x26,0x54,0x5e,0x96,0xe5,0x5b,0x87,0x4b,0xe9,0x09}; + u8 digest_1110[] = {0x77,0xdd,0xd3,0xa5,0x42,0xe5,0x30,0xfd,0x04,0x7b,0x89,0x77,0xc6,0x57,0xba,0x6c,0xe7,0x2f,0x14,0x92,0xe3,0x60,0xb2,0xb2,0x21,0x2c,0xd2,0x64,0xe7,0x5e,0xc0,0x38,0x82,0xe4,0xff,0x05,0x25,0x51,0x7a,0xb4,0x20,0x7d,0x14,0xc7,0x0c,0x22,0x59,0xba,0x88,0xd4,0xd3,0x35,0xee,0x0e,0x7e,0x20,0x54,0x3d,0x22,0x10,0x2a,0xb1,0x78,0x8c}; + u8 digest_1120[] = {0x2b,0xe2,0xe7,0x88,0xc8,0xa8,0xad,0xea,0xa9,0xc8,0x9a,0x7f,0x78,0x90,0x4c,0xac,0xea,0x6e,0x39,0x29,0x7d,0x75,0xe0,0x57,0x3a,0x73,0xc7,0x56,0x23,0x45,0x34,0xd6,0x62,0x7a,0xb4,0x15,0x6b,0x48,0xa6,0x65,0x7b,0x29,0xab,0x8b,0xeb,0x73,0x33,0x40,0x40,0xad,0x39,0xea,0xd8,0x14,0x46,0xbb,0x09,0xc7,0x07,0x04,0xec,0x70,0x79,0x52}; + u8 digest_1130[] = {0x0e,0x67,0x91,0x0b,0xcf,0x0f,0x9c,0xcd,0xe5,0x46,0x4c,0x63,0xb9,0xc8,0x50,0xa1,0x2a,0x75,0x92,0x27,0xd1,0x6b,0x04,0x0d,0x98,0x98,0x6d,0x54,0x25,0x3f,0x9f,0x34,0x32,0x23,0x18,0xe5,0x6b,0x8f,0xeb,0x86,0xc5,0xfb,0x22,0x70,0xed,0x87,0xf3,0x12,0x52,0xf7,0xf6,0x84,0x93,0xee,0x75,0x97,0x43,0x90,0x9b,0xd7,0x5e,0x4b,0xb5,0x44}; + u8 digest_1220[] = {0x4f,0x3f,0x09,0x5d,0x01,0x5b,0xe4,0xa7,0xa7,0xcc,0x0b,0x8c,0x04,0xda,0x4a,0xa0,0x9e,0x74,0x35,0x1e,0x3a,0x97,0x65,0x1f,0x74,0x4c,0x23,0x71,0x6e,0xbd,0x9b,0x3e,0x82,0x2e,0x50,0x77,0xa0,0x1b,0xaa,0x5c,0xc0,0xed,0x45,0xb9,0x24,0x9e,0x88,0xab,0x34,0x3d,0x43,0x33,0x53,0x9d,0xf2,0x1e,0xd2,0x29,0xda,0x6f,0x4a,0x51,0x4e,0x0f}; + u8 digest_10000[] = {0xca,0x3d,0xff,0x61,0xbb,0x23,0x47,0x7a,0xa6,0x08,0x7b,0x27,0x50,0x82,0x64,0xa6,0xf9,0x12,0x6e,0xe3,0xa0,0x04,0xf5,0x3c,0xb8,0xdb,0x94,0x2e,0xd3,0x45,0xf2,0xf2,0xd2,0x29,0xb4,0xb5,0x9c,0x85,0x92,0x20,0xa1,0xcf,0x19,0x13,0xf3,0x42,0x48,0xe3,0x80,0x3b,0xab,0x65,0x0e,0x84,0x9a,0x3d,0x9a,0x70,0x9e,0xdc,0x09,0xae,0x4a,0x76}; + u8 digest_100041[] = {0x32,0x9c,0x52,0xac,0x62,0xd1,0xfe,0x73,0x11,0x51,0xf2,0xb8,0x95,0xa0,0x04,0x75,0x44,0x5e,0xf7,0x4f,0x50,0xb9,0x79,0xc6,0xf7,0xbb,0x7c,0xae,0x34,0x93,0x28,0xc1,0xd4,0xcb,0x4f,0x72,0x61,0xa0,0xab,0x43,0xf9,0x36,0xa2,0x4b,0x00,0x06,0x51,0xd4,0xa8,0x24,0xfc,0xdd,0x57,0x7f,0x21,0x1a,0xef,0x8f,0x80,0x6b,0x16,0xaf,0xe8,0xaf}; + u8 digest_1005U[] = {0x59,0xf5,0xe5,0x4f,0xe2,0x99,0xc6,0xa8,0x76,0x4c,0x6b,0x19,0x9e,0x44,0x92,0x4a,0x37,0xf5,0x9e,0x2b,0x56,0xc3,0xeb,0xad,0x93,0x9b,0x72,0x89,0x21,0x0d,0xc8,0xe4,0xc2,0x1b,0x97,0x20,0x16,0x5b,0x0f,0x4d,0x43,0x74,0xc9,0x0f,0x1b,0xf4,0xfb,0x4a,0x5a,0xce,0x17,0xa1,0x16,0x17,0x98,0x01,0x50,0x52,0x89,0x3a,0x48,0xc3,0xd1,0x61}; + u8 digest_1mil0[] = {0xce,0x04,0x4b,0xc9,0xfd,0x43,0x26,0x9d,0x5b,0xbc,0x94,0x6c,0xbe,0xbc,0x3b,0xb7,0x11,0x34,0x11,0x15,0xcc,0x4a,0xbd,0xf2,0xed,0xbc,0x3f,0xf2,0xc5,0x7a,0xd4,0xb1,0x5d,0xeb,0x69,0x9b,0xda,0x25,0x7f,0xea,0x5a,0xef,0x9c,0x6e,0x55,0xfc,0xf4,0xcf,0x9d,0xc2,0x5a,0x8c,0x3c,0xe2,0x5f,0x2e,0xfe,0x90,0x90,0x83,0x79,0xbf,0xf7,0xed}; + u8 digest_5a[] = {0xda,0x17,0x22,0x79,0xf3,0xeb,0xbd,0xa9,0x5f,0x6b,0x6e,0x1e,0x5f,0x0e,0xbe,0xc6,0x82,0xc2,0x5d,0x3d,0x93,0x56,0x1a,0x16,0x24,0xc2,0xfa,0x90,0x09,0xd6,0x4c,0x7e,0x99,0x23,0xf3,0xb4,0x6b,0xca,0xf1,0x1d,0x39,0xa5,0x31,0xf4,0x32,0x97,0x99,0x2b,0xa4,0x15,0x5c,0x7e,0x82,0x7b,0xd0,0xf1,0xe1,0x94,0xae,0x7e,0xd6,0xde,0x4c,0xac}; + u8 digest_1090[] = {0x14,0xb1,0xbe,0x90,0x1c,0xb4,0x35,0x49,0xb4,0xd8,0x31,0xe6,0x1e,0x5f,0x9d,0xf1,0xc7,0x91,0xc8,0x5b,0x50,0xe8,0x5f,0x9d,0x6b,0xc6,0x41,0x35,0x80,0x4a,0xd4,0x3c,0xe8,0x40,0x27,0x50,0xed,0xbe,0x4e,0x5c,0x0f,0xc1,0x70,0xb9,0x9c,0xf7,0x8b,0x9f,0x4e,0xcb,0x9c,0x7e,0x02,0xa1,0x57,0x91,0x1d,0x1b,0xd1,0x83,0x2d,0x76,0x78,0x4f}; + u8 digest_42[] = {0xfd,0x05,0xe1,0x3e,0xb7,0x71,0xf0,0x51,0x90,0xbd,0x97,0xd6,0x26,0x47,0x15,0x7e,0xa8,0xf1,0xf6,0x94,0x9a,0x52,0xbb,0x6d,0xaa,0xed,0xba,0xd5,0xf5,0x78,0xec,0x59,0xb1,0xb8,0xd6,0xc4,0xa7,0xec,0xb2,0xfe,0xca,0x68,0x92,0xb4,0xdc,0x13,0x87,0x71,0x67,0x0a,0x0f,0x3b,0xd5,0x77,0xee,0xa3,0x26,0xae,0xd4,0x0a,0xb7,0xdd,0x58,0xb1}; u8 tab[1005]; #ifdef VERBOSE PRINTF("TEST SHA512\n"); #endif - ucl_sha512(e, mabc, 0); + ucl_sha512(e,mabc,0); #ifdef VERBOSE PRINTF("sha512(void):"); #endif - if (memcmp(e, digest_void, 64) != 0) { + if (memcmp(e,digest_void,64) != 0) { return(UCL_ERROR); } - ucl_sha512(e, mabc, 3); + ucl_sha512(e,mabc,3); #ifdef VERBOSE PRINTF("sha512(abc):"); #endif - if (memcmp(e, digest_abc, 64) != 0) { + if (memcmp(e,digest_abc,64) != 0) { return(UCL_ERROR); } - ucl_sha512(e, mtwoblock512, 112); + ucl_sha512(e,mtwoblock512,112); #ifdef VERBOSE PRINTF("sha512(2blocks):"); #endif - if (memcmp(e, digest_2blocks, 64) != 0) { + if (memcmp(e,digest_2blocks,64) != 0) { return(UCL_ERROR); } for (i = 0; i < 1000; i++) { tab[i] = 0; } - ucl_sha512(e, tab, 111); + ucl_sha512(e,tab,111); #ifdef VERBOSE PRINTF("sha512(111-0):"); #endif - if (memcmp(e, digest_1110, 64) != 0) { + if (memcmp(e,digest_1110,64) != 0) { return(UCL_ERROR); } - ucl_sha512(e, tab, 112); + ucl_sha512(e,tab,112); #ifdef VERBOSE PRINTF("sha512(112-0):"); #endif - if (memcmp(e, digest_1120, 64) != 0) { + if (memcmp(e,digest_1120,64) != 0) { return(UCL_ERROR); } - ucl_sha512(e, tab, 113); + ucl_sha512(e,tab,113); #ifdef VERBOSE PRINTF("sha512(113-0):"); #endif - if (memcmp(e, digest_1130, 64) != 0) { + if (memcmp(e,digest_1130,64) != 0) { return(UCL_ERROR); } - ucl_sha512(e, tab, 122); + ucl_sha512(e,tab,122); #ifdef VERBOSE PRINTF("sha512(122-0):"); #endif //#5) 122 bytes of zeros - if (memcmp(e, digest_1220, 64) != 0) { + if (memcmp(e,digest_1220,64) != 0) { return(UCL_ERROR); } - ucl_sha512(e, tab, 1000); + ucl_sha512(e,tab,1000); #ifdef VERBOSE PRINTF("sha512(1000-0):"); #endif //#6) 1000 bytes of zeros - if (memcmp(e, digest_10000, 64) != 0) { + if (memcmp(e,digest_10000,64) != 0) { return(UCL_ERROR); } for (i = 0; i < 1000; i ++) { tab[i] = 'A'; } - ucl_sha512(e, tab, 1000); + ucl_sha512(e,tab,1000); #ifdef VERBOSE PRINTF("sha512(1000-A):"); #endif //#7) 1000 bytes of 0x41 - if (memcmp(e, digest_100041, 64) != 0) { + if (memcmp(e,digest_100041,64) != 0) { return(UCL_ERROR); } for (i = 0; i < 1005; i++) { tab[i] = 'U'; } - ucl_sha512(e, tab, 1005); + ucl_sha512(e,tab,1005); #ifdef VERBOSE PRINTF("sha512(1005-U):"); #endif //#8) 1005 bytes of 0x55 - if (memcmp(e, digest_1005U, 64) != 0) { + if (memcmp(e,digest_1005U,64) != 0) { return(UCL_ERROR); } @@ -745,14 +745,14 @@ int test_sha512(void) ucl_sha512_init(&ctx); for (i = 0; i < 1000; i++) { - ucl_sha512_core(&ctx, tab, 1000); + ucl_sha512_core(&ctx,tab,1000); } - ucl_sha512_finish(e, &ctx); + ucl_sha512_finish(e,&ctx); #ifdef VERBOSE PRINTF("sha512(1mil-0):"); #endif //#9) 1000000 bytes of zeros - if (memcmp(e, digest_1mil0, 64) != 0) { + if (memcmp(e,digest_1mil0,64) != 0) { return(UCL_ERROR); } @@ -762,14 +762,14 @@ int test_sha512(void) ucl_sha512_init(&ctx); for (i = 0; i < 1048576; i++) { - ucl_sha512_core(&ctx, tab, 512); + ucl_sha512_core(&ctx,tab,512); } - ucl_sha512_finish(e, &ctx); + ucl_sha512_finish(e,&ctx); #ifdef VERBOSE PRINTF("sha512(2^29-Z):"); #endif //#10) 0x20000000 (536870912) bytes of 0x5a - if (memcmp(e, digest_5a, 64) != 0) + if (memcmp(e,digest_5a,64) != 0) return(UCL_ERROR); for (i = 0; i < 520; i++) { @@ -778,14 +778,14 @@ int test_sha512(void) ucl_sha512_init(&ctx); for (i = 0; i < 2097152; i++) { - ucl_sha512_core(&ctx, tab, 520); + ucl_sha512_core(&ctx,tab,520); } - ucl_sha512_finish(e, &ctx); + ucl_sha512_finish(e,&ctx); #ifdef VERBOSE PRINTF("sha512(2^24*5*13-0):"); #endif //#11) 0x41000000 (1090519040) bytes of zeros - if (memcmp(e, digest_1090, 64) != 0) { + if (memcmp(e,digest_1090,64) != 0) { return(UCL_ERROR); } @@ -795,14 +795,14 @@ int test_sha512(void) ucl_sha512_init(&ctx); for (i = 0; i < 13649261; i++) { - ucl_sha512_core(&ctx, tab, 118); + ucl_sha512_core(&ctx,tab,118); } - ucl_sha512_finish(e, &ctx); + ucl_sha512_finish(e,&ctx); #ifdef VERBOSE PRINTF("sha512(2*59*13649261-'B'):"); #endif //#12) 0x6000003e (1610612798) bytes of 0x42 - if (memcmp(e, digest_42, 64) != 0) { + if (memcmp(e,digest_42,64) != 0) { return(UCL_ERROR); } diff --git a/Libraries/FCL/src/ucl_aes_cbc.c b/Libraries/FCL/src/ucl_aes_cbc.c index 30e66964190..ab78684f9bf 100644 --- a/Libraries/FCL/src/ucl_aes_cbc.c +++ b/Libraries/FCL/src/ucl_aes_cbc.c @@ -1,49 +1,49 @@ /****************************************************************************** * - * Copyright 2023 Analog Devices, Inc. + * Copyright 2023 Analog Devices,Inc. * - * Licensed under the Apache License, Version 2.0 (the "License"); + * Licensed under the Apache License,Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software + * Unless required by applicable law or agreed to in writing,software * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** * - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * Copyright (C) 2023 Maxim Integrated Products,Inc.,All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a + * Permission is hereby granted,free of charge,to any person obtaining a * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: + * to deal in the Software without restriction,including without limitation + * the rights to use,copy,modify,merge,publish,distribute,sublicense, + * and/or sell copies of the Software,and to permit persons to whom the + * Software is furnished to do so,subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * THE SOFTWARE IS PROVIDED "AS IS",WITHOUT WARRANTY OF ANY KIND,EXPRESS + * OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM,DAMAGES + * OR OTHER LIABILITY,WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE, + * ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. + * Except as contained in this notice,the name of Maxim Integrated + * Products,Inc. shall not be used except as stated in the Maxim Integrated + * Products,Inc. Branding Policy. * * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all + * of trade secrets,proprietary technology,copyrights,patents, + * trademarks,maskwork rights,or any other form of intellectual + * property whatsoever. Maxim Integrated Products,Inc. retains all * ownership rights. * ******************************************************************************/ @@ -61,7 +61,7 @@ //used to not increment the *dst pointer in cbc mode when cbc-mac is targeted int _ucl_increment_dst; -int ucl_aes_cbc(u8 *dst, u8 *src, u32 len, u8 *key, u32 keylen, u8 *IV, int mode) +int ucl_aes_cbc(u8 *dst,u8 *src,u32 len,u8 *key,u32 keylen,u8 *IV,int mode) { ucl_aes_ctx_t ctx; int ret; @@ -85,9 +85,9 @@ int ucl_aes_cbc(u8 *dst, u8 *src, u32 len, u8 *key, u32 keylen, u8 *IV, int mode return UCL_INVALID_ARG; } - ucl_aes_cbc_init(&ctx, key, keylen, IV, mode); + ucl_aes_cbc_init(&ctx,key,keylen,IV,mode); - ret = ucl_aes_cbc_core(dst, &ctx, src, len); + ret = ucl_aes_cbc_core(dst,&ctx,src,len); //fault testing if (UCL_OK != ret) { return(ret); @@ -98,7 +98,7 @@ int ucl_aes_cbc(u8 *dst, u8 *src, u32 len, u8 *key, u32 keylen, u8 *IV, int mode return UCL_OK; } -int ucl_aes_cbc_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen, u8 *IV, int mode) +int ucl_aes_cbc_init(ucl_aes_ctx_t *ctx,u8 *key,u32 keylen,u8 *IV,int mode) { int resu; int i; @@ -124,19 +124,19 @@ int ucl_aes_cbc_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen, u8 *IV, int mode) ctx->origin_keylen = (int)keylen; if (mode == UCL_CIPHER_ENCRYPT) { - aes_set_ekey(&ctx->key, key, keylen); + aes_set_ekey(&ctx->key,key,keylen); } else if (mode == UCL_CIPHER_DECRYPT) { - aes_set_dkey(&ctx->key, key, keylen); + aes_set_dkey(&ctx->key,key,keylen); } else { return UCL_INVALID_MODE; } - memcpy(ctx->memory, IV, UCL_AES_BLOCKSIZE); + memcpy(ctx->memory,IV,UCL_AES_BLOCKSIZE); ctx->mode = mode; return UCL_OK; } -int ucl_aes_cbc_core(u8 *dst, ucl_aes_ctx_t *ctx, u8 *src, u32 len) +int ucl_aes_cbc_core(u8 *dst,ucl_aes_ctx_t *ctx,u8 *src,u32 len) { int ret; u32 i; @@ -161,7 +161,7 @@ int ucl_aes_cbc_core(u8 *dst, ucl_aes_ctx_t *ctx, u8 *src, u32 len) block[i] = src[i] ^ ctx->memory[i]; } - aes_encrypt(dst, block, &ctx->key); + aes_encrypt(dst,block,&ctx->key); src += UCL_AES_BLOCKSIZE; while (src != data_end) { @@ -174,14 +174,14 @@ int ucl_aes_cbc_core(u8 *dst, ucl_aes_ctx_t *ctx, u8 *src, u32 len) } src += UCL_AES_BLOCKSIZE; - aes_encrypt(dst, block, &ctx->key); + aes_encrypt(dst,block,&ctx->key); } - memcpy(ctx->memory, dst, UCL_AES_BLOCKSIZE); + memcpy(ctx->memory,dst,UCL_AES_BLOCKSIZE); } else if (ctx->mode == UCL_CIPHER_DECRYPT) { u8 save_src[UCL_AES_BLOCKSIZE]; - aes_decrypt(block, src, &ctx->key); + aes_decrypt(block,src,&ctx->key); // Xor dest with IV for (i = 0; i < UCL_AES_BLOCKSIZE; i++) { @@ -193,7 +193,7 @@ int ucl_aes_cbc_core(u8 *dst, ucl_aes_ctx_t *ctx, u8 *src, u32 len) // Go to next dest block dst += UCL_AES_BLOCKSIZE; while ((src + UCL_AES_BLOCKSIZE) != data_end) { - aes_decrypt(block, (src + UCL_AES_BLOCKSIZE), &ctx->key); + aes_decrypt(block,(src + UCL_AES_BLOCKSIZE),&ctx->key); // Xor for (i = 0; i < UCL_AES_BLOCKSIZE; i++) { @@ -207,7 +207,7 @@ int ucl_aes_cbc_core(u8 *dst, ucl_aes_ctx_t *ctx, u8 *src, u32 len) } // Save IV for next call - memcpy(ctx->memory, src, UCL_AES_BLOCKSIZE); + memcpy(ctx->memory,src,UCL_AES_BLOCKSIZE); } return UCL_OK; } @@ -218,7 +218,7 @@ int ucl_aes_cbc_finish(ucl_aes_ctx_t *ctx) return UCL_INVALID_OUTPUT; } - memset((unsigned char *)ctx, 0, sizeof(*ctx)); + memset((unsigned char *)ctx,0,sizeof(*ctx)); return UCL_OK; } diff --git a/Libraries/FCL/src/ucl_aes_cbc_mac.c b/Libraries/FCL/src/ucl_aes_cbc_mac.c index 21ce3b30253..b48f64af322 100644 --- a/Libraries/FCL/src/ucl_aes_cbc_mac.c +++ b/Libraries/FCL/src/ucl_aes_cbc_mac.c @@ -32,18 +32,18 @@ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE, + * ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. + * Except as contained in this notice,the name of Maxim Integrated + * Products,Inc. shall not be used except as stated in the Maxim Integrated + * Products,Inc. Branding Policy. * * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all + * of trade secrets,proprietary technology,copyrights,patents, + * trademarks,maskwork rights,or any other form of intellectual + * property whatsoever. Maxim Integrated Products,Inc. retains all * ownership rights. * ******************************************************************************/ @@ -84,7 +84,7 @@ extern int _ucl_increment_dst; * * @ingroup UCL_CBC_MAC */ -int ucl_aes_cbc_mac(u8 *tmac, u8 tmac_byteLen, u8 *src, u32 len, u8 *key, u32 keylen) +int ucl_aes_cbc_mac(u8 *tmac,u8 tmac_byteLen,u8 *src,u32 len,u8 *key,u32 keylen) { u8 mac[UCL_AES_BLOCKSIZE]; ucl_aes_ctx_t ctx; @@ -105,10 +105,10 @@ int ucl_aes_cbc_mac(u8 *tmac, u8 tmac_byteLen, u8 *src, u32 len, u8 *key, u32 ke return UCL_INVALID_ARG; } - ucl_aes_cbc_mac_init(&ctx, key, keylen); + ucl_aes_cbc_mac_init(&ctx,key,keylen); _ucl_increment_dst = UCL_NOP; - ucl_aes_cbc_mac_core(&ctx, src, len); - ucl_aes_cbc_mac_finish(tmac, tmac_byteLen, &ctx); + ucl_aes_cbc_mac_core(&ctx,src,len); + ucl_aes_cbc_mac_finish(tmac,tmac_byteLen,&ctx); return(UCL_OK); } @@ -130,7 +130,7 @@ int ucl_aes_cbc_mac(u8 *tmac, u8 tmac_byteLen, u8 *src, u32 len, u8 *key, u32 ke * @ingroup UCL_CBC_MAC */ -int ucl_aes_cbc_mac_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen) +int ucl_aes_cbc_mac_init(ucl_aes_ctx_t *ctx,u8 *key,u32 keylen) { u8 ivnull[UCL_AES_BLOCKSIZE]; int i; @@ -141,10 +141,10 @@ int ucl_aes_cbc_mac_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen) return UCL_INVALID_INPUT; } - memset(ivnull, 0, UCL_AES_BLOCKSIZE); + memset(ivnull,0,UCL_AES_BLOCKSIZE); ctx->mode = UCL_CIPHER_ENCRYPT; - return(ucl_aes_cbc_init(ctx, key, keylen, ivnull, UCL_CIPHER_ENCRYPT)); + return(ucl_aes_cbc_init(ctx,key,keylen,ivnull,UCL_CIPHER_ENCRYPT)); } @@ -152,7 +152,7 @@ int ucl_aes_cbc_mac_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen) /** < b >AES-CBC-MAC Core < /b >. * Process the Data. * - * @param[in, out] ctx Pointer to the context + * @param[in,out] ctx Pointer to the context * @param[in] data Pointer to the data * @param[in] data_byteLen Byte length * @@ -167,11 +167,11 @@ int ucl_aes_cbc_mac_init(ucl_aes_ctx_t *ctx, u8 *key, u32 keylen) * * @ingroup UCL_CBC_MAC */ -int ucl_aes_cbc_mac_core(ucl_aes_ctx_t *ctx, u8 *src, u32 len) +int ucl_aes_cbc_mac_core(ucl_aes_ctx_t *ctx,u8 *src,u32 len) { u8 dst[1]; - return(ucl_aes_cbc_core(dst, ctx, src, len)); + return(ucl_aes_cbc_core(dst,ctx,src,len)); } /** < b >AES-CBC-MAC Finish < /b >. @@ -179,7 +179,7 @@ int ucl_aes_cbc_mac_core(ucl_aes_ctx_t *ctx, u8 *src, u32 len) * * @param[out] tmac Pointer to the mac * @param[in] tmac_byteLen MAC byte length - * @param[in, out] ctx Pointer to the context + * @param[in,out] ctx Pointer to the context * * @return Error code * @@ -188,13 +188,13 @@ int ucl_aes_cbc_mac_core(ucl_aes_ctx_t *ctx, u8 *src, u32 len) * * @ingroup UCL_CBC_MAC */ -int ucl_aes_cbc_mac_finish(u8 *tmac, u32 tmac_byteLen, ucl_aes_ctx_t *ctx) +int ucl_aes_cbc_mac_finish(u8 *tmac,u32 tmac_byteLen,ucl_aes_ctx_t *ctx) { if (ctx == NULL) { return UCL_INVALID_OUTPUT; } - - memcpy(tmac, ctx->memory, tmac_byteLen); - + + memcpy(tmac,ctx->memory,tmac_byteLen); + return(UCL_OK); } diff --git a/Libraries/FCL/src/ucl_rng.c b/Libraries/FCL/src/ucl_rng.c index 6a3d8bc34e0..032000bcfbc 100644 --- a/Libraries/FCL/src/ucl_rng.c +++ b/Libraries/FCL/src/ucl_rng.c @@ -69,8 +69,8 @@ int ucl_rng_read(u8 *rand, u32 rand_byteLen) u8 output[32], input[16]; u8 blocksize; blocksize = 16; - - + + for (msgi = 0; msgi < (int)rand_byteLen;) { for (j = 0; j < blocksize; j++) { input[j] = pseudo[j]; diff --git a/Libraries/FCL/src/ucl_sha256.c b/Libraries/FCL/src/ucl_sha256.c index 07b1f71ff28..7515433a24e 100644 --- a/Libraries/FCL/src/ucl_sha256.c +++ b/Libraries/FCL/src/ucl_sha256.c @@ -1,49 +1,49 @@ /****************************************************************************** * - * Copyright 2023 Analog Devices, Inc. + * Copyright 2023 Analog Devices,Inc. * - * Licensed under the Apache License, Version 2.0 (the "License"); + * Licensed under the Apache License,Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software + * Unless required by applicable law or agreed to in writing,software * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** * - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * Copyright (C) 2023 Maxim Integrated Products,Inc.,All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a + * Permission is hereby granted,free of charge,to any person obtaining a * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: + * to deal in the Software without restriction,including without limitation + * the rights to use,copy,modify,merge,publish,distribute,sublicense, + * and/or sell copies of the Software,and to permit persons to whom the + * Software is furnished to do so,subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * THE SOFTWARE IS PROVIDED "AS IS",WITHOUT WARRANTY OF ANY KIND,EXPRESS + * OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM,DAMAGES + * OR OTHER LIABILITY,WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE, + * ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. + * Except as contained in this notice,the name of Maxim Integrated + * Products,Inc. shall not be used except as stated in the Maxim Integrated + * Products,Inc. Branding Policy. * * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all + * of trade secrets,proprietary technology,copyrights,patents, + * trademarks,maskwork rights,or any other form of intellectual + * property whatsoever. Maxim Integrated Products,Inc. retains all * ownership rights. * ******************************************************************************/ @@ -64,7 +64,7 @@ static u32 _wsb_b2w(u8 *src) return ((u32)src[3] | ((u32)src[2] << 8) | ((u32)src[1] << 16) | ((u32)src[0] << 24)); } -static void _wsb_w2b(u8 *dst, u32 src) +static void _wsb_w2b(u8 *dst,u32 src) { dst[3] = src & 0xFF; src >>= 8; @@ -75,7 +75,7 @@ static void _wsb_w2b(u8 *dst, u32 src) dst[0] = src & 0xFF; } -void swapcpy_b2w(u32 *dst, const u8 *src, u32 wordlen) +void swapcpy_b2w(u32 *dst,const u8 *src,u32 wordlen) { int i; @@ -86,17 +86,17 @@ void swapcpy_b2w(u32 *dst, const u8 *src, u32 wordlen) } -void swapcpy_w2b(u8 *dst, const u32 *src, u32 wordlen) +void swapcpy_w2b(u8 *dst,const u32 *src,u32 wordlen) { int i; for (i = 0; i < (int)wordlen; i++) { - _wsb_w2b(dst, src[i]); + _wsb_w2b(dst,src[i]); dst += 4; } } -void swapcpy_b2b(u8 *dst, u8 *src, u32 wordlen) +void swapcpy_b2b(u8 *dst,u8 *src,u32 wordlen) { u8 tmp; int i; @@ -129,16 +129,16 @@ int ucl_sha256_init(ucl_sha256_ctx_t *ctx) ctx->state[5] = 0x9b05688c; ctx->state[6] = 0x1f83d9ab; ctx->state[7] = 0x5be0cd19; - + ctx->count[0] = 0; ctx->count[1] = 0; return UCL_OK; } -int ucl_sha256_core(ucl_sha256_ctx_t *ctx, u8 *data, u32 dataLen) +int ucl_sha256_core(ucl_sha256_ctx_t *ctx,u8 *data,u32 dataLen) { - u32 indexh, partLen, i; + u32 indexh,partLen,i; if (ctx == NULL) { return UCL_INVALID_INPUT; } @@ -162,16 +162,16 @@ int ucl_sha256_core(ucl_sha256_ctx_t *ctx, u8 *data, u32 dataLen) /** Process 512-bits block as many times as possible. */ if (dataLen >= partLen) { - memcpy(&ctx->buffer[indexh], data, partLen); + memcpy(&ctx->buffer[indexh],data,partLen); - swapcpy_b2b(ctx->buffer, ctx->buffer, 16); + swapcpy_b2b(ctx->buffer,ctx->buffer,16); - sha256_stone(ctx->state, (u32 *) ctx->buffer); + sha256_stone(ctx->state,(u32 *) ctx->buffer); for (i = partLen; i + 63 < dataLen; i += 64) { - swapcpy_b2b(ctx->buffer, &data[i], 16); + swapcpy_b2b(ctx->buffer,&data[i],16); - sha256_stone(ctx->state, (u32 *) ctx->buffer); + sha256_stone(ctx->state,(u32 *) ctx->buffer); } indexh = 0; @@ -180,22 +180,22 @@ int ucl_sha256_core(ucl_sha256_ctx_t *ctx, u8 *data, u32 dataLen) } /** Buffer remaining data */ - memcpy(&ctx->buffer[indexh], &data[i], dataLen - i); + memcpy(&ctx->buffer[indexh],&data[i],dataLen - i); return UCL_OK; } -int ucl_sha256_finish(u8 *hash, ucl_sha256_ctx_t *ctx) +int ucl_sha256_finish(u8 *hash,ucl_sha256_ctx_t *ctx) { u8 bits[8]; - u32 indexh, padLen; + u32 indexh,padLen; u8 padding[64]; padding[0] = 0x80; - memset(padding + 1, 0, 63); - + memset(padding + 1,0,63); + if (hash == NULL) { return UCL_INVALID_OUTPUT; } @@ -205,28 +205,28 @@ int ucl_sha256_finish(u8 *hash, ucl_sha256_ctx_t *ctx) } /** Save number of bits */ - swapcpy_w2b(bits, ctx->count, 2); + swapcpy_w2b(bits,ctx->count,2); /** Pad out to 56 mod 64. */ indexh = (u32)((ctx->count[1] >> 3) & 0x3f); padLen = (indexh < 56) ? (56 - indexh) : (120 - indexh); - ucl_sha256_core(ctx, padding, padLen); + ucl_sha256_core(ctx,padding,padLen); /** Append length (before padding) */ - ucl_sha256_core(ctx, bits, 8); + ucl_sha256_core(ctx,bits,8); /** Store state in digest */ - swapcpy_w2b(hash, ctx->state, 8); + swapcpy_w2b(hash,ctx->state,8); /** Zeroize sensitive information. */ - memset(ctx, 0, sizeof(*ctx)); + memset(ctx,0,sizeof(*ctx)); return UCL_OK; } -int ucl_sha256(u8 *hash, u8 *message, u32 byteLength) +int ucl_sha256(u8 *hash,u8 *message,u32 byteLength) { ucl_sha256_ctx_t ctx; @@ -235,8 +235,8 @@ int ucl_sha256(u8 *hash, u8 *message, u32 byteLength) } ucl_sha256_init(&ctx); - ucl_sha256_core(&ctx, message, byteLength); - ucl_sha256_finish(hash, &ctx); + ucl_sha256_core(&ctx,message,byteLength); + ucl_sha256_finish(hash,&ctx); return UCL_OK; } diff --git a/Libraries/FCL/src/ucl_sha3.c b/Libraries/FCL/src/ucl_sha3.c index d44e1feafd4..5814ae7a6da 100644 --- a/Libraries/FCL/src/ucl_sha3.c +++ b/Libraries/FCL/src/ucl_sha3.c @@ -78,8 +78,8 @@ static void kcf(u64 state[25]) int i, j, round; u64 t, c[5]; - //I(chi(Pi(ro(theta( - for (round = 0; round < N_ROUNDS; round++) { + //I(chi(Pi(ro(theta( + for (round = 0; round < N_ROUNDS; round++) { // Theta for (i = 0; i < 5; i++) { c[i] = state[i] ^ state[i + 5] ^ state[i + 10] ^ state[i + 15] ^ state[i + 20]; @@ -87,7 +87,7 @@ static void kcf(u64 state[25]) for (i = 0; i < 5; i++) { t = c[(i + 4) % 5] ^ (u64)ROTL64(c[(i + 1) % 5], 1); - + for (j = 0; j < 25; j += 5) { state[j + i] ^ = t; } @@ -203,7 +203,7 @@ int ucl_sha3_core(ucl_sha3_ctx_t *ctx, const u8 *bufIn, u32 len) while (len--) { ctx->saved | = (u64) (*(buf++)) << ((ctx->byteIndex++) * 8); } - + return(UCL_OK); } diff --git a/Libraries/FCL/src/ucl_sha384.c b/Libraries/FCL/src/ucl_sha384.c index 63af5915ab9..cea2765271f 100644 --- a/Libraries/FCL/src/ucl_sha384.c +++ b/Libraries/FCL/src/ucl_sha384.c @@ -83,7 +83,7 @@ int __API__ ucl_sha384_init(ucl_sha384_ctx_t *ctx) ctx->state[5] = 0x8eb44a8768581511ULL; ctx->state[6] = 0xdb0c2e0d64f98fa7ULL; ctx->state[7] = 0x47b5481dbefa4fa4ULL; - + ctx->count[0] = 0; ctx->count[1] = 0; diff --git a/Libraries/FCL/src/ucl_sia256.c b/Libraries/FCL/src/ucl_sia256.c index 2bbd26dbb2d..fc6fbc64e1b 100644 --- a/Libraries/FCL/src/ucl_sia256.c +++ b/Libraries/FCL/src/ucl_sia256.c @@ -1,49 +1,49 @@ /****************************************************************************** * - * Copyright 2023 Analog Devices, Inc. + * Copyright 2023 Analog Devices,Inc. * - * Licensed under the Apache License, Version 2.0 (the "License"); + * Licensed under the Apache License,Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software + * Unless required by applicable law or agreed to in writing,software * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** * - * Copyright (C) 2023 Maxim Integrated Products, Inc., All Rights Reserved. + * Copyright (C) 2023 Maxim Integrated Products,Inc.,All Rights Reserved. * - * Permission is hereby granted, free of charge, to any person obtaining a + * Permission is hereby granted,free of charge,to any person obtaining a * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: + * to deal in the Software without restriction,including without limitation + * the rights to use,copy,modify,merge,publish,distribute,sublicense, + * and/or sell copies of the Software,and to permit persons to whom the + * Software is furnished to do so,subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES - * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * THE SOFTWARE IS PROVIDED "AS IS",WITHOUT WARRANTY OF ANY KIND,EXPRESS + * OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM,DAMAGES + * OR OTHER LIABILITY,WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE, + * ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * - * Except as contained in this notice, the name of Maxim Integrated - * Products, Inc. shall not be used except as stated in the Maxim Integrated - * Products, Inc. Branding Policy. + * Except as contained in this notice,the name of Maxim Integrated + * Products,Inc. shall not be used except as stated in the Maxim Integrated + * Products,Inc. Branding Policy. * * The mere transfer of this software does not imply any licenses - * of trade secrets, proprietary technology, copyrights, patents, - * trademarks, maskwork rights, or any other form of intellectual - * property whatsoever. Maxim Integrated Products, Inc. retains all + * of trade secrets,proprietary technology,copyrights,patents, + * trademarks,maskwork rights,or any other form of intellectual + * property whatsoever. Maxim Integrated Products,Inc. retains all * ownership rights. * ******************************************************************************/ @@ -67,26 +67,26 @@ // SHA-256 Functions -int ComputeSHA256(u8* message, int length, u32 skipconst, u32 reverse, u8* digest); -int ComputeMAC256(u8* message, int length, u8* MAC); -int VerifyMAC256(u8* message, int length, u8* compare_MAC); -int CalculateNextSecret256(u8* binding, u8* partial, int page_num, u8* manid); +int ComputeSHA256(u8* message,int length,u32 skipconst,u32 reverse,u8* digest); +int ComputeMAC256(u8* message,int length,u8* MAC); +int VerifyMAC256(u8* message,int length,u8* compare_MAC); +int CalculateNextSecret256(u8* binding,u8* partial,int page_num,u8* manid); void set_secret(u8 *secret); // Utility Functions -u32 sha_ch(u32 x, u32 y, u32 z); -u32 sha_maj(u32 x, u32 y, u32 z); -u32 sha_rotr_32(u32 val, u32 r); -u32 sha_shr_32(u32 val, u32 r); +u32 sha_ch(u32 x,u32 y,u32 z); +u32 sha_maj(u32 x,u32 y,u32 z); +u32 sha_rotr_32(u32 val,u32 r); +u32 sha_shr_32(u32 val,u32 r); u32 sha_bigsigma256_0(u32 x); u32 sha_littlesigma256_0(u32 x); u32 sha_littlesigma256_1(u32 x); -void sha_copy32(u32* p1, u32* p2, u32 length); -void sha_copyWordsToBytes32(u32* input, u8* output, u32 numwords); -void sha_writeResult(u32 reverse, u8* outpointer); +void sha_copy32(u32* p1,u32* p2,u32 length); +void sha_copyWordsToBytes32(u32* input,u8* output,u32 numwords); +void sha_writeResult(u32 reverse,u8* outpointer); u32 sha_getW(int index); void sha_prepareSchedule(u8* message); -void sha256_hashblock(u8* message, u32 lastblock); +void sha256_hashblock(u8* message,u32 lastblock); // hold secret for creating a @@ -105,21 +105,21 @@ u32 SHA_256_Initial[] = { }; u32 SHA_CONSTANTS[] = { - 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, - 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, - 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, - 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, - 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, - 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, - 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, - 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2, - 0xca273ece, 0xd186b8c7, 0xeada7dd6, 0xf57d4f7f, 0x06f067aa, 0x0a637dc5, 0x113f9804, 0x1b710b35, - 0x28db77f5, 0x32caab7b, 0x3c9ebe0a, 0x431d67c4, 0x4cc5d4be, 0x597f299c, 0x5fcb6fab, 0x6c44198c + 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5, + 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174, + 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da, + 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967, + 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85, + 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070, + 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3, + 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2, + 0xca273ece,0xd186b8c7,0xeada7dd6,0xf57d4f7f,0x06f067aa,0x0a637dc5,0x113f9804,0x1b710b35, + 0x28db77f5,0x32caab7b,0x3c9ebe0a,0x431d67c4,0x4cc5d4be,0x597f299c,0x5fcb6fab,0x6c44198c }; u8 workbuffer[128]; -u32 a32, b32, c32, d32, e32, f32, g32, h32; // SHA working variables +u32 a32,b32,c32,d32,e32,f32,g32,h32; // SHA working variables u32 W32[16]; // SHA message schedule u32 H32[8]; // last SHA result variables @@ -149,15 +149,15 @@ void set_secret(u8 *secret) // 'length' - Length of block to digest // 'MAC' - result MAC in byte order used by 1-Wire device // -int ComputeMAC256(u8* MT, int length, u8* MAC) +int ComputeMAC256(u8* MT,int length,u8* MAC) { - int i, j; + int i,j; u8 tmp[4]; // check for two block format if (length == 119) { // insert secret - memcpy(&MT[64], &SECRET[0], 32); + memcpy(&MT[64],&SECRET[0],32); // change to little endian for A1 devices if (reverse_endian) { @@ -171,11 +171,11 @@ int ComputeMAC256(u8* MT, int length, u8* MAC) } } } - - ComputeSHA256(MT, 119, UCL_TRUE, UCL_TRUE, MAC); + + ComputeSHA256(MT,119,UCL_TRUE,UCL_TRUE,MAC); } else { // one block format // insert secret - memcpy(&MT[0], &SECRET[0], 32); + memcpy(&MT[0],&SECRET[0],32); // change to little endian for A1 devices if (reverse_endian) { @@ -190,7 +190,7 @@ int ComputeMAC256(u8* MT, int length, u8* MAC) } } - ComputeSHA256(MT, 55, UCL_TRUE, UCL_TRUE, MAC); + ComputeSHA256(MT,55,UCL_TRUE,UCL_TRUE,MAC); } return (UCL_OK); @@ -207,13 +207,13 @@ int ComputeMAC256(u8* MT, int length, u8* MAC) // 'compare_MAC' - MAC in byte order used by 1-Wire device to compare // with calculate MAC. // -int VerifyMAC256(u8* MT, int length, u8* compare_MAC) +int VerifyMAC256(u8* MT,int length,u8* compare_MAC) { u8 calc_mac[32]; int i; // calculate the MAC - ComputeMAC256(MT, length, calc_mac); + ComputeMAC256(MT,length,calc_mac); // Compare calculated mac with one read from device for (i = 0; i < 32; i++) { @@ -240,28 +240,28 @@ int VerifyMAC256(u8* MT, int length, u8* compare_MAC) // Returns: UCL_OK if compute successful // UCL_ERROR failed to do compute // -int CalculateNextSecret256(u8* binding, u8* partial, int page_num, u8* manid) +int CalculateNextSecret256(u8* binding,u8* partial,int page_num,u8* manid) { u8 MT[128]; u8 MAC[64]; // clear - memset(MT, 0, 128); + memset(MT,0,128); // insert page data - memcpy(&MT[0], binding, 32); + memcpy(&MT[0],binding,32); // insert challenge - memcpy(&MT[32], partial, 32); + memcpy(&MT[32],partial,32); // insert ROM number or FF - // memcpy(&MT[96], ROM_NO, 8); + // memcpy(&MT[96],ROM_NO,8); MT[106] = (u8)page_num; MT[105] = manid[0]; MT[104] = manid[1]; - ComputeMAC256(MT, 119, MAC); + ComputeMAC256(MT,119,MAC); // set the new secret to the first 32 bytes of MAC set_secret(MAC); @@ -272,7 +272,7 @@ int CalculateNextSecret256(u8* binding, u8* partial, int page_num, u8* manid) //---------------------------------------------------------------------- // SHA-256 support function // -u32 sha_ch(u32 x, u32 y, u32 z) +u32 sha_ch(u32 x,u32 y,u32 z) { return (x & y) ^ ((~x) & z); } @@ -280,7 +280,7 @@ u32 sha_ch(u32 x, u32 y, u32 z) //---------------------------------------------------------------------- // SHA-256 support function // -u32 sha_maj(u32 x, u32 y, u32 z) +u32 sha_maj(u32 x,u32 y,u32 z) { u32 temp = x & y; @@ -292,7 +292,7 @@ u32 sha_maj(u32 x, u32 y, u32 z) //---------------------------------------------------------------------- // SHA-256 support function // -u32 sha_rotr_32(u32 val, u32 r) +u32 sha_rotr_32(u32 val,u32 r) { val = val & 0xFFFFFFFFL; return ((val >> r) | (val << (32 - r))) & 0xFFFFFFFFL; @@ -301,7 +301,7 @@ u32 sha_rotr_32(u32 val, u32 r) //---------------------------------------------------------------------- // SHA-256 support function // -u32 sha_shr_32(u32 val, u32 r) +u32 sha_shr_32(u32 val,u32 r) { val = val & 0xFFFFFFFFL; return val >> r; @@ -312,7 +312,7 @@ u32 sha_shr_32(u32 val, u32 r) // u32 sha_bigsigma256_0(u32 x) { - return sha_rotr_32(x, 2) ^ sha_rotr_32(x, 13) ^ sha_rotr_32(x, 22); + return sha_rotr_32(x,2) ^ sha_rotr_32(x,13) ^ sha_rotr_32(x,22); } //---------------------------------------------------------------------- @@ -320,7 +320,7 @@ u32 sha_bigsigma256_0(u32 x) // u32 sha_bigsigma256_1(u32 x) { - return sha_rotr_32(x, 6) ^ sha_rotr_32(x, 11) ^ sha_rotr_32(x, 25); + return sha_rotr_32(x,6) ^ sha_rotr_32(x,11) ^ sha_rotr_32(x,25); } //---------------------------------------------------------------------- @@ -328,7 +328,7 @@ u32 sha_bigsigma256_1(u32 x) // u32 sha_littlesigma256_0(u32 x) { - return sha_rotr_32(x, 7) ^ sha_rotr_32(x, 18) ^ sha_shr_32(x, 3); + return sha_rotr_32(x,7) ^ sha_rotr_32(x,18) ^ sha_shr_32(x,3); } //---------------------------------------------------------------------- @@ -336,16 +336,16 @@ u32 sha_littlesigma256_0(u32 x) // u32 sha_littlesigma256_1(u32 x) { - return sha_rotr_32(x, 17) ^ sha_rotr_32(x, 19) ^ sha_shr_32(x, 10); + return sha_rotr_32(x,17) ^ sha_rotr_32(x,19) ^ sha_shr_32(x,10); } //---------------------------------------------------------------------- // SHA-256 support function // -void sha_copy32(u32* p1, u32* p2, u32 length) +void sha_copy32(u32* p1,u32* p2,u32 length) { while (length > 0) { - *p2+ += *p1++; + *p2++ = *p1++; length--; } } @@ -353,29 +353,29 @@ void sha_copy32(u32* p1, u32* p2, u32 length) //---------------------------------------------------------------------- // SHA-256 support function // -void sha_copyWordsToBytes32(u32* input, u8* output, u32 numwords) +void sha_copyWordsToBytes32(u32* input,u8* output,u32 numwords) { u32 temp; u32 i; for (i = 0; i < numwords; i++) { temp = *input++; - *output+ += (u8)(temp >> 24); - *output+ += (u8)(temp >> 16); - *output+ += (u8)(temp >> 8); - *output+ += (u8)(temp); + *output++ = (u8)(temp >> 24); + *output++ = (u8)(temp >> 16); + *output++ = (u8)(temp >> 8); + *output++ = (u8)(temp); } } //---------------------------------------------------------------------- // SHA-256 support function // -void sha_writeResult(u32 reverse, u8* outpointer) +void sha_writeResult(u32 reverse,u8* outpointer) { int i; u8 tmp; - sha_copyWordsToBytes32(H32, outpointer, 8); + sha_copyWordsToBytes32(H32,outpointer,8); if (reverse) { for (i = 0; i < 16; i++) { @@ -409,7 +409,7 @@ u32 sha_getW(int indexh) void sha_prepareSchedule(u8* message) { // we need to copy the initial message into the 16 W registers - u32 i, j; + u32 i,j; u32 temp; for (i = 0; i < 16; i++) { @@ -428,13 +428,13 @@ void sha_prepareSchedule(u8* message) //---------------------------------------------------------------------- // Hash a single block of data. // -void sha256_hashblock(u8* message, u32 lastblock) +void sha256_hashblock(u8* message,u32 lastblock) { u32 sha1counter = 0; u32 sha1functionselect = 0; u32 i; - u32 nodeT1, nodeT2; - u32 Wt, Kt; + u32 nodeT1,nodeT2; + u32 Wt,Kt; // chunk the original message into the working schedule sha_prepareSchedule(message); @@ -453,8 +453,8 @@ void sha256_hashblock(u8* message, u32 lastblock) Wt = sha_getW((int)i); Kt = SHA_CONSTANTS[i]; - nodeT1 = (h32 + sha_bigsigma256_1(e32) + sha_ch(e32, f32, g32) + Kt + Wt); // & 0xFFFFFFFFL; - nodeT2 = (sha_bigsigma256_0(a32) + sha_maj(a32, b32, c32)); // & 0xFFFFFFFFL; + nodeT1 = (h32 + sha_bigsigma256_1(e32) + sha_ch(e32,f32,g32) + Kt + Wt); // & 0xFFFFFFFFL; + nodeT2 = (sha_bigsigma256_0(a32) + sha_maj(a32,b32,c32)); // & 0xFFFFFFFFL; h32 = g32; g32 = f32; f32 = e32; @@ -497,29 +497,29 @@ void sha256_hashblock(u8* message, u32 lastblock) //---------------------------------------------------------------------- // Computes SHA-256 given the data block 'message' with no padding. -// The result is returned in 'digest'. +// The result is returned in 'digest'. // // 'message' - buffer containing the message // 'skipconst' - skip adding constant on last block (skipconst = 1) -// 'reverse' - reverse order of digest (reverse = 1, MSWord first, LSByte first) +// 'reverse' - reverse order of digest (reverse = 1,MSWord first,LSByte first) // 'digest' - result hash digest in byte order used by 1-Wire device // -int ComputeSHA256(u8* message, int length, u32 skipconst, u32 reverse, u8* digest) +int ComputeSHA256(u8* message,int length,u32 skipconst,u32 reverse,u8* digest) { u32 bytes_per_block; u32 nonpaddedlength; u32 numblocks; - u32 i, j; + u32 i,j; u32 bitlength; u32 markerwritten; u32 lastblock; u32 wordsize = 32; - // if wordsize is 32 bits, we need 512 bit blocks. else 1024 bit blocks. + // if wordsize is 32 bits,we need 512 bit blocks. else 1024 bit blocks. // that means 16 words are in one message. bytes_per_block = 16 * (wordsize / 8); - // 1 byte for the '80' that follows the message, 8 or 16 bytes of length + // 1 byte for the '80' that follows the message,8 or 16 bytes of length nonpaddedlength = (u32)length + 1 + (wordsize/4); numblocks = nonpaddedlength / bytes_per_block; if ((nonpaddedlength % bytes_per_block) != 0) { @@ -527,7 +527,7 @@ int ComputeSHA256(u8* message, int length, u32 skipconst, u32 reverse, u8* diges numblocks++; } - sha_copy32(SHA_256_Initial, H32, SHA_256_INITIAL_LENGTH); + sha_copy32(SHA_256_Initial,H32,SHA_256_INITIAL_LENGTH); bitlength = 8 * (u32)length; markerwritten = 0; @@ -535,25 +535,25 @@ int ComputeSHA256(u8* message, int length, u32 skipconst, u32 reverse, u8* diges // 'length' is our number of bytes remaining. for (i = 0; i < numblocks; i++) { if ((u32)length > bytes_per_block) { - memcpy(workbuffer, message, bytes_per_block); + memcpy(workbuffer,message,bytes_per_block); length -= (int)bytes_per_block; } else if (length == (int)bytes_per_block) { - memcpy(workbuffer, message, (size_t)length); + memcpy(workbuffer,message,(size_t)length); length = 0; } else { // length is less than number of bytes in a block - memcpy(workbuffer, message, (size_t)length); + memcpy(workbuffer,message,(size_t)length); // message is now used for temporary space message = workbuffer + length; if (markerwritten == 0) { - *message+ += 0x80; + *message++ = 0x80; length++; } while (length < (int)bytes_per_block) { - // this loop is inserting padding, in this case all zeroes - *message+ += 0; + // this loop is inserting padding,in this case all zeroes + *message++ = 0; length++; } length = 0; @@ -561,7 +561,7 @@ int ComputeSHA256(u8* message, int length, u32 skipconst, u32 reverse, u8* diges markerwritten = 1; } - // on the last block, put the bit length at the very end + // on the last block,put the bit length at the very end lastblock = (i == (numblocks - 1)); if (lastblock) { // point at the last byte in the block @@ -573,27 +573,27 @@ int ComputeSHA256(u8* message, int length, u32 skipconst, u32 reverse, u8* diges } // SHA in software - sha256_hashblock(workbuffer, (u32)(lastblock && skipconst)); + sha256_hashblock(workbuffer,(u32)(lastblock && skipconst)); message += bytes_per_block; } - sha_writeResult(reverse, digest); + sha_writeResult(reverse,digest); return (UCL_OK); } -int __API__ ucl_sia256(u8 *hash, u8 *data, u32 data_byteLen) +int __API__ ucl_sia256(u8 *hash,u8 *data,u32 data_byteLen) { //---------------------------------------------------------------------- // Computes SHA-256 given the data block 'message' with no padding. - // The result is returned in 'digest'. + // The result is returned in 'digest'. // // 'message' - buffer containing the message // 'skipconst' - skip adding constant on last block (skipconst = 1) - // 'reverse' - reverse order of digest (reverse = 1, MSWord first, LSByte first) + // 'reverse' - reverse order of digest (reverse = 1,MSWord first,LSByte first) // 'digest' - result hash digest in byte order used by 1-Wire device // - return(ComputeSHA256(data, (int)data_byteLen, 1, 0, hash)); + return(ComputeSHA256(data,(int)data_byteLen,1,0,hash)); } #endif//SIA256