Keys/a> provides functions to handle keys and data related operations.<\/p>\n<h2 id=\"content-required-header\"><a href=https://samsungtizenos.com/"#content-required-header\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Required Header<\/h2>\n<p>#include <hal\/hal-security-keys.h><\/p>\n<h2 id=\"content-overview\"><a href=https://samsungtizenos.com/"#content-overview\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Overview<\/h2>\n<p>The Security Keys provides functions to handle keys and data related operations<\/p>\n<p>The Security Keys functions provide methods to:<\/p>\n<ul>\n<li>Create initialization vector<\/li>\n<li>Create\/Destroy keys (AES, RSA, DSA, ECDSA, KEM)<\/li>\n<li>Import\/Export wrapped keys<\/li>\n<li>Encapsulate\/Decapsulate KEM keys<\/li>\n<li>Import\/Export data<\/li>\n<li>Wrap\/Unwrap concatenated data<\/li>\n<li>Encrypt\/Decrypt data<\/li>\n<li>Initialize and perform cipher operations<\/li>\n<li>Create and verify signatures<\/li>\n<li>Derive keys (ECDH, KBKDF, KBKDF hybrid)<\/li>\n<li>Get key chunk size<\/li>\n<li>Create DBP key<\/li>\n<li>Encrypt data with DBP key<\/li>\n<\/ul>\n<p>For more information on the Security Keys features and the macros, see HAL Security programming guides and tutorials.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Typedefs<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#struct__hal__backend__security__keys__funcs\">_hal_backend_security_keys_funcs<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga6a17e7e41277e0aaf1050820174e8911\">hal_backend_security_keys_funcs<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for security keys functions.<\/td>\n<\/tr>\n<tr>\n<td>typedef size_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga5f38b5658d44f440c555eb666edf2c99\">hal_security_keys_cipher_context_t<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Type for cipher context.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h2 id=\"content-data-structure-documentation\"><a href=https://samsungtizenos.com/"#content-data-structure-documentation\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Data Structure Documentation<\/h2>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _hal_backend_security_keys_funcs<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for security keys functions.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SECURITY_KEYS 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a07738724766aaf5b47ae861216a68d6c\">context_initialize<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> *context)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ab217b5c27bd940c71828afb76ccd8d8d\">context_free<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> *context)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a13bc93a4fb7df77f0a2966cda125525b\">create_iv<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *iv)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a7b67ee8bcca6e5bc745845e98866fadd\">create_key_aes<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const size_t key_size_bits, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> key_pwd, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *key_tag)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a5777f56e69420dd72f47e1f4aafb23a1\">create_key_pair_rsa<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const size_t key_size_bits, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> priv_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> priv_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> pub_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> pub_key_pwd, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *priv_key_tag, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *pub_key_tag)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ae687229be3dea3958b01163812d7f60f\">create_key_pair_dsa<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const size_t key_size_bits, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> prime, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> subprime, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> base, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> priv_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> priv_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> pub_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> pub_key_pwd, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *priv_key_tag, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *pub_key_tag)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a09e1bc60b4f4a4c8aaff46a283a48cad\">create_key_pair_ecdsa<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#gad143e90cc82d2509cab2205530d38c7c\">hal_security_keys_ec_type_e<\/a> ec_type, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> priv_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> priv_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> pub_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> pub_key_pwd, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *priv_key_tag, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *pub_key_tag)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#aa36da7db95558fdfcab774965e4c781e\">create_key_pair_kem<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga5761dd2dccf44c007b195b080077a37a\">hal_security_keys_kem_type_e<\/a> kem_type, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> priv_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> priv_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> pub_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> pub_key_pwd, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *priv_key_tag, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *pub_key_tag)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a4f703fe30526ef088f7122ea4c701bb6\">import_wrapped_key<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga7e3553227e4197446395a6d52de84bb1\">hal_security_keys_algo_type_e<\/a> algo, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga9808d68840f3fbb608142a436a5bfc05\">hal_security_keys_hash_algorithm_e<\/a> hash, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> iv, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> aad, const size_t ctr_len_or_tag_size_bits, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> wrapping_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> wrapping_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> wrapped_key, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga6152821d442f84a2f612de48815a8981\">hal_security_keys_data_type_e<\/a> key_type, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *key_tag)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a01bb9887effead29138ba6b93865db4c\">export_wrapped_key<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga7e3553227e4197446395a6d52de84bb1\">hal_security_keys_algo_type_e<\/a> algo, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga9808d68840f3fbb608142a436a5bfc05\">hal_security_keys_hash_algorithm_e<\/a> hash, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> iv, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> aad, const size_t ctr_len_or_tag_size_bits, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> wrapping_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> wrapping_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga6152821d442f84a2f612de48815a8981\">hal_security_keys_data_type_e<\/a> key_type, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *wrapped_key)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a74623506f1dcb8a6796d830048ff9b4d\">encapsulate_key<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga5761dd2dccf44c007b195b080077a37a\">hal_security_keys_kem_type_e<\/a> kem_type, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> pub_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> pub_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> shared_secret_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> shared_secret_pwd, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *ciphertext, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *shared_secret_tag)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ae64bdff2724874d52ae98704723f796c\">decapsulate_key<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga5761dd2dccf44c007b195b080077a37a\">hal_security_keys_kem_type_e<\/a> kem_type, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> priv_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> priv_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> shared_secret_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> shared_secret_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> ciphertext, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *shared_secret_tag)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ad1da4331975a504c1b15354578c43495\">destroy_key<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a8c253777a4cf8bb8350a04e983aa4c48\">import_data<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> data_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga6152821d442f84a2f612de48815a8981\">hal_security_keys_data_type_e<\/a> data_type, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data_encryption_iv, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data_encryption_tag, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *data_tag)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a94c899707ea18a1fbf5901e13ac38396\">export_data<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> data_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga6152821d442f84a2f612de48815a8981\">hal_security_keys_data_type_e<\/a> data_type, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *data)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a162b715d1b44642506bc9357cadd9ca8\">wrap_concatenated_data<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga7e3553227e4197446395a6d52de84bb1\">hal_security_keys_algo_type_e<\/a> algo, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga9808d68840f3fbb608142a436a5bfc05\">hal_security_keys_hash_algorithm_e<\/a> hash, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> wrapping_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> wrapping_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *wrapped_key)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a9cf65f50f3d2c5b545bac9050a87dee6\">unwrap_concatenated_data<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga7e3553227e4197446395a6d52de84bb1\">hal_security_keys_algo_type_e<\/a> algo, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga9808d68840f3fbb608142a436a5bfc05\">hal_security_keys_hash_algorithm_e<\/a> hash, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> wrapping_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> wrapping_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> wrapped_key, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga6152821d442f84a2f612de48815a8981\">hal_security_keys_data_type_e<\/a> key_type, const size_t key_size_bits, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *data, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *key_tag)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a25a8d72d93143d78b45fc5421fb8ee9d\">encrypt_data_auth<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> iv, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> aad, const size_t tag_size_bits, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *tag, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *out)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ad5f5da65aea1e32743acea51a9197064\">decrypt_data_auth<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> iv, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> aad, const size_t tag_size_bits, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> tag, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *out)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ada445f2bfb0a1381a18e2888a9c8f8ae\">encrypt_data<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga7e3553227e4197446395a6d52de84bb1\">hal_security_keys_algo_type_e<\/a> algo, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga9808d68840f3fbb608142a436a5bfc05\">hal_security_keys_hash_algorithm_e<\/a> hash, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#gabb3d0468618a7086653b628e10f45f57\">hal_security_keys_padding_algorithm_e<\/a> padding, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> iv, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *out)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a6bbce8a856e47387ffb5053fff11d70e\">decrypt_data<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga7e3553227e4197446395a6d52de84bb1\">hal_security_keys_algo_type_e<\/a> algo, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga9808d68840f3fbb608142a436a5bfc05\">hal_security_keys_hash_algorithm_e<\/a> hash, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#gabb3d0468618a7086653b628e10f45f57\">hal_security_keys_padding_algorithm_e<\/a> padding, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> iv, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *out)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a29db9da3610966c809560fe5e4df2c4a\">destroy_data<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data_id)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a62447c7d40e03aefa847784e72e55dde\">cipher_initialize<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const bool encrypt, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> iv, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> aad, const size_t tag_size_bits, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga5f38b5658d44f440c555eb666edf2c99\">hal_security_keys_cipher_context_t<\/a> *cipher_context)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a3296fd33d8398a9ed6152bbdc46fd781\">cipher_add_aad<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga5f38b5658d44f440c555eb666edf2c99\">hal_security_keys_cipher_context_t<\/a> cipher_context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> aad)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a7ed63ae825de4fbeae4b40a7d9003398\">cipher_update<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga5f38b5658d44f440c555eb666edf2c99\">hal_security_keys_cipher_context_t<\/a> cipher_context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *out)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a6560a3763b8410b327bc0429dd4a66a4\">cipher_finalize<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga5f38b5658d44f440c555eb666edf2c99\">hal_security_keys_cipher_context_t<\/a> cipher_context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *out)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a88151bb946fa2fd7e511e75b2240ffd3\">cipher_free<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga5f38b5658d44f440c555eb666edf2c99\">hal_security_keys_cipher_context_t<\/a> cipher_context)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a588d7e2436039d325da9c271fa53fcef\">create_signature<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga7e3553227e4197446395a6d52de84bb1\">hal_security_keys_algo_type_e<\/a> algo, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga9808d68840f3fbb608142a436a5bfc05\">hal_security_keys_hash_algorithm_e<\/a> hash, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> priv_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> priv_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> message, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *signature)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a9bce149d2fe12050be4835eec3610612\">verify_signature<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga7e3553227e4197446395a6d52de84bb1\">hal_security_keys_algo_type_e<\/a> algo, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga9808d68840f3fbb608142a436a5bfc05\">hal_security_keys_hash_algorithm_e<\/a> hash, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> pub_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> pub_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> message, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> signature)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a2c11e715090ee39c837860d3829dbfad\">derive_ecdh<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#gad143e90cc82d2509cab2205530d38c7c\">hal_security_keys_ec_type_e<\/a> ec_type, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> pub_key_x, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> pub_key_y, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> priv_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> priv_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> secret_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> secret_pwd, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *secret_tag)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a5f3925588ccec5f0b248bce9f0c988f1\">derive_kbkdf<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__kbkdf__params__s\">hal_security_keys_kbkdf_params_s<\/a> params, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> secret_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> secret_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> key_pwd, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *key_tag)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#abad70552060fd2210a71b52dcbbf1074\">derive_hybrid_kbkdf<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__kbkdf__params__s\">hal_security_keys_kbkdf_params_s<\/a> params, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> first_secret_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> first_secret_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> second_secret_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> second_secret_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> key_pwd, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *key_tag)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a11499601b830c878068e1488f70d6d7b\">get_max_chunk_size<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, size_t *chunk_size)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a99c7e6728a92da1de6c2b08ad478f9c0\">create_key_dbp<\/a> )(const bool destroy_old)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ac2f22078b4f316034ce557608eb9391e\">encrypt_data_dbp<\/a> )(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga81f77dba0509f9319625c5207817c396\">hal_security_keys_dbp_scheme_version_e<\/a> dbp_scheme_version, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> iv, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *out)<\/td>\n<\/tr>\n<tr>\n<td>bool(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ac5bf9b7029434a9706dc52e2b70e88ba\">is_tz_supported<\/a> )(void)<\/td>\n<\/tr>\n<tr>\n<td>bool(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ab6dd6f7237677ef756290dccf3087e0a\">is_se_supported<\/a> )(void)<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation\"><a href=https://samsungtizenos.com/"#content-field-documentation\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a3296fd33d8398a9ed6152bbdc46fd781\">_hal_backend_security_keys_funcs::cipher_add_aad<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga5f38b5658d44f440c555eb666edf2c99\">hal_security_keys_cipher_context_t<\/a> cipher_context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> aad)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Add AAD<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a6560a3763b8410b327bc0429dd4a66a4\">_hal_backend_security_keys_funcs::cipher_finalize<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga5f38b5658d44f440c555eb666edf2c99\">hal_security_keys_cipher_context_t<\/a> cipher_context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *out)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Finalize cipher<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a88151bb946fa2fd7e511e75b2240ffd3\">_hal_backend_security_keys_funcs::cipher_free<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga5f38b5658d44f440c555eb666edf2c99\">hal_security_keys_cipher_context_t<\/a> cipher_context)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Cleanup cipher<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a62447c7d40e03aefa847784e72e55dde\">_hal_backend_security_keys_funcs::cipher_initialize<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const bool encrypt, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> iv, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> aad, const size_t tag_size_bits, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga5f38b5658d44f440c555eb666edf2c99\">hal_security_keys_cipher_context_t<\/a> *cipher_context)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Initialize cipher<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a7ed63ae825de4fbeae4b40a7d9003398\">_hal_backend_security_keys_funcs::cipher_update<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga5f38b5658d44f440c555eb666edf2c99\">hal_security_keys_cipher_context_t<\/a> cipher_context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *out)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Update cipher<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ab217b5c27bd940c71828afb76ccd8d8d\">_hal_backend_security_keys_funcs::context_free<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> *context)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Free HAL backend context<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a07738724766aaf5b47ae861216a68d6c\">_hal_backend_security_keys_funcs::context_initialize<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> *context)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Initialize HAL backend context<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a13bc93a4fb7df77f0a2966cda125525b\">_hal_backend_security_keys_funcs::create_iv<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *iv)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Create initialization vector<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a7b67ee8bcca6e5bc745845e98866fadd\">_hal_backend_security_keys_funcs::create_key_aes<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const size_t key_size_bits, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> key_pwd, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *key_tag)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Create AES key<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a99c7e6728a92da1de6c2b08ad478f9c0\">_hal_backend_security_keys_funcs::create_key_dbp<\/a>)(const bool destroy_old)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Create DBP key<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ae687229be3dea3958b01163812d7f60f\">_hal_backend_security_keys_funcs::create_key_pair_dsa<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const size_t key_size_bits, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> prime, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> subprime, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> base, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> priv_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> priv_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> pub_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> pub_key_pwd, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *priv_key_tag, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *pub_key_tag)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Create DSA key pair<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a09e1bc60b4f4a4c8aaff46a283a48cad\">_hal_backend_security_keys_funcs::create_key_pair_ecdsa<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#gad143e90cc82d2509cab2205530d38c7c\">hal_security_keys_ec_type_e<\/a> ec_type, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> priv_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> priv_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> pub_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> pub_key_pwd, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *priv_key_tag, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *pub_key_tag)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Create ECDSA key pair<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#aa36da7db95558fdfcab774965e4c781e\">_hal_backend_security_keys_funcs::create_key_pair_kem<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga5761dd2dccf44c007b195b080077a37a\">hal_security_keys_kem_type_e<\/a> kem_type, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> priv_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> priv_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> pub_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> pub_key_pwd, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *priv_key_tag, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *pub_key_tag)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Create KEM key pair<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a5777f56e69420dd72f47e1f4aafb23a1\">_hal_backend_security_keys_funcs::create_key_pair_rsa<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const size_t key_size_bits, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> priv_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> priv_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> pub_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> pub_key_pwd, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *priv_key_tag, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *pub_key_tag)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Create RSA key pair<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a588d7e2436039d325da9c271fa53fcef\">_hal_backend_security_keys_funcs::create_signature<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga7e3553227e4197446395a6d52de84bb1\">hal_security_keys_algo_type_e<\/a> algo, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga9808d68840f3fbb608142a436a5bfc05\">hal_security_keys_hash_algorithm_e<\/a> hash, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> priv_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> priv_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> message, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *signature)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Create signature<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ae64bdff2724874d52ae98704723f796c\">_hal_backend_security_keys_funcs::decapsulate_key<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga5761dd2dccf44c007b195b080077a37a\">hal_security_keys_kem_type_e<\/a> kem_type, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> priv_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> priv_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> shared_secret_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> shared_secret_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> ciphertext, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *shared_secret_tag)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Decapsulate key<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a6bbce8a856e47387ffb5053fff11d70e\">_hal_backend_security_keys_funcs::decrypt_data<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga7e3553227e4197446395a6d52de84bb1\">hal_security_keys_algo_type_e<\/a> algo, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga9808d68840f3fbb608142a436a5bfc05\">hal_security_keys_hash_algorithm_e<\/a> hash, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#gabb3d0468618a7086653b628e10f45f57\">hal_security_keys_padding_algorithm_e<\/a> padding, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> iv, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *out)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Decrypt data<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ad5f5da65aea1e32743acea51a9197064\">_hal_backend_security_keys_funcs::decrypt_data_auth<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> iv, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> aad, const size_t tag_size_bits, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> tag, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *out)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Authenticated data decryption<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a2c11e715090ee39c837860d3829dbfad\">_hal_backend_security_keys_funcs::derive_ecdh<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#gad143e90cc82d2509cab2205530d38c7c\">hal_security_keys_ec_type_e<\/a> ec_type, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> pub_key_x, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> pub_key_y, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> priv_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> priv_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> secret_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> secret_pwd, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *secret_tag)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Derive ECDH<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#abad70552060fd2210a71b52dcbbf1074\">_hal_backend_security_keys_funcs::derive_hybrid_kbkdf<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__kbkdf__params__s\">hal_security_keys_kbkdf_params_s<\/a> params, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> first_secret_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> first_secret_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> second_secret_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> second_secret_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> key_pwd, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *key_tag)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Derive hybrid KBKDF<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a5f3925588ccec5f0b248bce9f0c988f1\">_hal_backend_security_keys_funcs::derive_kbkdf<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__kbkdf__params__s\">hal_security_keys_kbkdf_params_s<\/a> params, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> secret_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> secret_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> key_pwd, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *key_tag)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Derive KBKDF<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a29db9da3610966c809560fe5e4df2c4a\">_hal_backend_security_keys_funcs::destroy_data<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data_id)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Destroy data<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ad1da4331975a504c1b15354578c43495\">_hal_backend_security_keys_funcs::destroy_key<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Destroy key<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a74623506f1dcb8a6796d830048ff9b4d\">_hal_backend_security_keys_funcs::encapsulate_key<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga5761dd2dccf44c007b195b080077a37a\">hal_security_keys_kem_type_e<\/a> kem_type, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> pub_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> pub_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> shared_secret_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> shared_secret_pwd, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *ciphertext, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *shared_secret_tag)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Encapsulate key<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ada445f2bfb0a1381a18e2888a9c8f8ae\">_hal_backend_security_keys_funcs::encrypt_data<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga7e3553227e4197446395a6d52de84bb1\">hal_security_keys_algo_type_e<\/a> algo, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga9808d68840f3fbb608142a436a5bfc05\">hal_security_keys_hash_algorithm_e<\/a> hash, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#gabb3d0468618a7086653b628e10f45f57\">hal_security_keys_padding_algorithm_e<\/a> padding, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> iv, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *out)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Encrypt data<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a25a8d72d93143d78b45fc5421fb8ee9d\">_hal_backend_security_keys_funcs::encrypt_data_auth<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> iv, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> aad, const size_t tag_size_bits, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *tag, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *out)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Authenticated data encryption<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ac2f22078b4f316034ce557608eb9391e\">_hal_backend_security_keys_funcs::encrypt_data_dbp<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga81f77dba0509f9319625c5207817c396\">hal_security_keys_dbp_scheme_version_e<\/a> dbp_scheme_version, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> iv, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *out)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Encrypt data with DBP key<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a94c899707ea18a1fbf5901e13ac38396\">_hal_backend_security_keys_funcs::export_data<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> data_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga6152821d442f84a2f612de48815a8981\">hal_security_keys_data_type_e<\/a> data_type, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *data)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Export data<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a01bb9887effead29138ba6b93865db4c\">_hal_backend_security_keys_funcs::export_wrapped_key<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga7e3553227e4197446395a6d52de84bb1\">hal_security_keys_algo_type_e<\/a> algo, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga9808d68840f3fbb608142a436a5bfc05\">hal_security_keys_hash_algorithm_e<\/a> hash, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> iv, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> aad, const size_t ctr_len_or_tag_size_bits, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> wrapping_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> wrapping_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga6152821d442f84a2f612de48815a8981\">hal_security_keys_data_type_e<\/a> key_type, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *wrapped_key)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Export wrapped key<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a11499601b830c878068e1488f70d6d7b\">_hal_backend_security_keys_funcs::get_max_chunk_size<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, size_t *chunk_size)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get max chunk size<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a8c253777a4cf8bb8350a04e983aa4c48\">_hal_backend_security_keys_funcs::import_data<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> data_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga6152821d442f84a2f612de48815a8981\">hal_security_keys_data_type_e<\/a> data_type, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data_encryption_iv, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data_encryption_tag, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *data_tag)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Import data<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a4f703fe30526ef088f7122ea4c701bb6\">_hal_backend_security_keys_funcs::import_wrapped_key<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga7e3553227e4197446395a6d52de84bb1\">hal_security_keys_algo_type_e<\/a> algo, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga9808d68840f3fbb608142a436a5bfc05\">hal_security_keys_hash_algorithm_e<\/a> hash, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> iv, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> aad, const size_t ctr_len_or_tag_size_bits, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> wrapping_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> wrapping_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> wrapped_key, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga6152821d442f84a2f612de48815a8981\">hal_security_keys_data_type_e<\/a> key_type, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *key_tag)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Import wrapped key<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>bool(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ab6dd6f7237677ef756290dccf3087e0a\">_hal_backend_security_keys_funcs::is_se_supported<\/a>)(void)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Check if SE backend is supported<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>bool(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ac5bf9b7029434a9706dc52e2b70e88ba\">_hal_backend_security_keys_funcs::is_tz_supported<\/a>)(void)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Check if TZ backend is supported<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a9cf65f50f3d2c5b545bac9050a87dee6\">_hal_backend_security_keys_funcs::unwrap_concatenated_data<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga7e3553227e4197446395a6d52de84bb1\">hal_security_keys_algo_type_e<\/a> algo, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga9808d68840f3fbb608142a436a5bfc05\">hal_security_keys_hash_algorithm_e<\/a> hash, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> wrapping_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> wrapping_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> wrapped_key, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__s\">hal_security_keys_password_iv_s<\/a> key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga6152821d442f84a2f612de48815a8981\">hal_security_keys_data_type_e<\/a> key_type, const size_t key_size_bits, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *data, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *key_tag)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Unwrap concatenated data<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a9bce149d2fe12050be4835eec3610612\">_hal_backend_security_keys_funcs::verify_signature<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga7e3553227e4197446395a6d52de84bb1\">hal_security_keys_algo_type_e<\/a> algo, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga9808d68840f3fbb608142a436a5bfc05\">hal_security_keys_hash_algorithm_e<\/a> hash, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> pub_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> pub_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> message, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> signature)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Verify signature<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a162b715d1b44642506bc9357cadd9ca8\">_hal_backend_security_keys_funcs::wrap_concatenated_data<\/a>)(const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__context__s\">hal_security_keys_context_s<\/a> context, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga7e3553227e4197446395a6d52de84bb1\">hal_security_keys_algo_type_e<\/a> algo, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga9808d68840f3fbb608142a436a5bfc05\">hal_security_keys_hash_algorithm_e<\/a> hash, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> wrapping_key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> wrapping_key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> key_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__password__iv__tag__s\">hal_security_keys_password_iv_tag_s<\/a> key_pwd, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> data, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> *wrapped_key)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Wrap concatenated data<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct hal_security_keys_context_s<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for security keys context.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SECURITY_KEYS 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>void *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a2649aa43789dd34c458645324958fbf7\">ctx<\/a><\/td>\n<\/tr>\n<tr>\n<td>void *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a6d716fc038b4ff1f0fda4bfa9c4ee189\">session<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-1\"><a href=https://samsungtizenos.com/"#content-field-documentation-1\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>void* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a2649aa43789dd34c458645324958fbf7\">hal_security_keys_context_s::ctx<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Backend context<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>void* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a6d716fc038b4ff1f0fda4bfa9c4ee189\">hal_security_keys_context_s::session<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Backend session<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct hal_security_keys_data_s<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for binary data exchange.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SECURITY_KEYS 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>unsigned char *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a00988fccf0fed80a7113ebc7f20486f3\">buffer<\/a><\/td>\n<\/tr>\n<tr>\n<td>size_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a19a2d0309c46722c01534fc4dcbee66a\">length<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-2\"><a href=https://samsungtizenos.com/"#content-field-documentation-2\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>unsigned char* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a00988fccf0fed80a7113ebc7f20486f3\">hal_security_keys_data_s::buffer<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Binary data buffer<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>size_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a19a2d0309c46722c01534fc4dcbee66a\">hal_security_keys_data_s::length<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Binary data length<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct hal_security_keys_password_iv_s<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for password and iv params exchange.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SECURITY_KEYS 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a37f0a508b07e96d97db1e9207bb8b938\">password<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a98c0ceb303c2e0fc0732e98dc36b0fe8\">iv<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-3\"><a href=https://samsungtizenos.com/"#content-field-documentation-3\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a98c0ceb303c2e0fc0732e98dc36b0fe8\">hal_security_keys_password_iv_s::iv<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Initialization vector buffer<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a37f0a508b07e96d97db1e9207bb8b938\">hal_security_keys_password_iv_s::password<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Password buffer<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct hal_security_keys_password_iv_tag_s<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for password, iv and tag params exchange.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SECURITY_KEYS 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#aefa45aeb157dbb5f17ed584720e89950\">password<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ad668c65f096dd824a8d1ff113e8d3b74\">iv<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#aee9db8c51b4e44e0a0185c6edd839f5f\">tag<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-4\"><a href=https://samsungtizenos.com/"#content-field-documentation-4\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ad668c65f096dd824a8d1ff113e8d3b74\">hal_security_keys_password_iv_tag_s::iv<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Initialization vector buffer<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#aefa45aeb157dbb5f17ed584720e89950\">hal_security_keys_password_iv_tag_s::password<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Password buffer<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#aee9db8c51b4e44e0a0185c6edd839f5f\">hal_security_keys_password_iv_tag_s::tag<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Tag buffer<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct hal_security_keys_kbkdf_params_s<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for KBKDF params exchange.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SECURITY_KEYS 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#gacb6e5034fcaf60c9aa9d85a7d5200195\">hal_security_keys_kdf_prf_type_e<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a469a73ea94e2cee02d6a48ccfbee4312\">prf<\/a><\/td>\n<\/tr>\n<tr>\n<td>size_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#aa4189aebf62982cc4eb0e9a43ed4cf57\">length<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga849ffa5b07db749a0f8f0bfd6175a2a0\">hal_security_keys_kbkdf_mode_e<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#af6540b138e4c3109a9ceb070b4f8838f\">mode<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#aa6b8062607ec5cca3d7a486252355cbd\">label<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a00b048791fb4de9e19f54f77b30909e2\">context<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#aacb1c9470088bd55fe6b289f2e2209a8\">fixed<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#gab1d2189b183ca8d6a3c713627fa553f2\">hal_security_keys_kbkdf_counter_location_e<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#aca5d99544137e5a875af0126aa784bff\">location<\/a><\/td>\n<\/tr>\n<tr>\n<td>size_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ac5aff0930a75fa3e74728d8892fc52a3\">rlen<\/a><\/td>\n<\/tr>\n<tr>\n<td>size_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a7c2a9f639ba1562d954a3da70edfb24e\">llen<\/a><\/td>\n<\/tr>\n<tr>\n<td>bool<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a9c2da6e72619587a476cadec833dda4c\">no_separator<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-5\"><a href=https://samsungtizenos.com/"#content-field-documentation-5\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a00b048791fb4de9e19f54f77b30909e2\">hal_security_keys_kbkdf_params_s::context<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Information related to the derived key<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#aacb1c9470088bd55fe6b289f2e2209a8\">hal_security_keys_kbkdf_params_s::fixed<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>KBKDF fixed input replacing context and label<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#structhal__security__keys__data__s\">hal_security_keys_data_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#aa6b8062607ec5cca3d7a486252355cbd\">hal_security_keys_kbkdf_params_s::label<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Purpose for the derived key<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>size_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#aa4189aebf62982cc4eb0e9a43ed4cf57\">hal_security_keys_kbkdf_params_s::length<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Length of the derived key in bytes<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>size_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a7c2a9f639ba1562d954a3da70edfb24e\">hal_security_keys_kbkdf_params_s::llen<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Specifies the extent of the length suffix representation in bits<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#gab1d2189b183ca8d6a3c713627fa553f2\">hal_security_keys_kbkdf_counter_location_e<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#aca5d99544137e5a875af0126aa784bff\">hal_security_keys_kbkdf_params_s::location<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Specifies location of the counter<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga849ffa5b07db749a0f8f0bfd6175a2a0\">hal_security_keys_kbkdf_mode_e<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#af6540b138e4c3109a9ceb070b4f8838f\">hal_security_keys_kbkdf_params_s::mode<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>KDF mode<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>bool <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a9c2da6e72619587a476cadec833dda4c\">hal_security_keys_kbkdf_params_s::no_separator<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Skip the zero octet separator between label and context<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#gacb6e5034fcaf60c9aa9d85a7d5200195\">hal_security_keys_kdf_prf_type_e<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#a469a73ea94e2cee02d6a48ccfbee4312\">hal_security_keys_kbkdf_params_s::prf<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Pseudo-random function<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>size_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ac5aff0930a75fa3e74728d8892fc52a3\">hal_security_keys_kbkdf_params_s::rlen<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Specifies the length of the counter representation in bits<\/p>\n<hr \/>\n<h2 id=\"content-typedef-documentation\"><a href=https://samsungtizenos.com/"#content-typedef-documentation\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Typedef Documentation<\/h2>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#struct__hal__backend__security__keys__funcs\">_hal_backend_security_keys_funcs<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga6a17e7e41277e0aaf1050820174e8911\">hal_backend_security_keys_funcs<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for security keys functions.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SECURITY_KEYS 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef size_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga5f38b5658d44f440c555eb666edf2c99\">hal_security_keys_cipher_context_t<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Type for cipher context.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SECURITY_KEYS 1.0<\/p>\n<hr \/>\n<h2 id=\"content-enumeration-type-documentation\"><a href=https://samsungtizenos.com/"#content-enumeration-type-documentation\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Enumeration Type Documentation<\/h2>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga7e3553227e4197446395a6d52de84bb1\">hal_security_keys_algo_type_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for algorithm type.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SECURITY_KEYS 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>HAL_SECURITY_KEYS_ALGO_TYPE_AES_CTR<\/em> | AES CTR |\n| --- | --- |\n| <em>HAL_SECURITY_KEYS_ALGO_TYPE_AES_CBC<\/em> | AES CBC |\n| <em>HAL_SECURITY_KEYS_ALGO_TYPE_AES_GCM<\/em> | AES GCM |\n| <em>HAL_SECURITY_KEYS_ALGO_TYPE_AES_CFB<\/em> | AES CFB |\n| <em>HAL_SECURITY_KEYS_ALGO_TYPE_RSA_OAEP<\/em> | RSA OAEP |\n| <em>HAL_SECURITY_KEYS_ALGO_TYPE_RSA<\/em> | RSA |\n| <em>HAL_SECURITY_KEYS_ALGO_TYPE_DSA<\/em> | DSA |\n| <em>HAL_SECURITY_KEYS_ALGO_TYPE_ECDSA<\/em> | ECDSA |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga6152821d442f84a2f612de48815a8981\">hal_security_keys_data_type_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for data type.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SECURITY_KEYS 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>HAL_SECURITY_KEYS_DATA_TYPE_BINARY_DATA<\/em> | Binary data |\n| --- | --- |\n| <em>HAL_SECURITY_KEYS_DATA_TYPE_KEY_AES<\/em> | AES key |\n| <em>HAL_SECURITY_KEYS_DATA_TYPE_KEY_RSA_PUBLIC<\/em> | Public RSA key |\n| <em>HAL_SECURITY_KEYS_DATA_TYPE_KEY_RSA_PRIVATE<\/em> | Private RSA key |\n| <em>HAL_SECURITY_KEYS_DATA_TYPE_KEY_DSA_PUBLIC<\/em> | Public DSA key |\n| <em>HAL_SECURITY_KEYS_DATA_TYPE_KEY_DSA_PRIVATE<\/em> | Private DSA key |\n| <em>HAL_SECURITY_KEYS_DATA_TYPE_KEY_ECDSA_PUBLIC<\/em> | Public ECDSA key |\n| <em>HAL_SECURITY_KEYS_DATA_TYPE_KEY_ECDSA_PRIVATE<\/em> | Private ECDSA key |\n| <em>HAL_SECURITY_KEYS_DATA_TYPE_KEY_KEM_PUBLIC<\/em> | Public KEM key |\n| <em>HAL_SECURITY_KEYS_DATA_TYPE_KEY_KEM_PRIVATE<\/em> | Private KEM key |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga81f77dba0509f9319625c5207817c396\">hal_security_keys_dbp_scheme_version_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for DBP scheme version.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SECURITY_KEYS 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>HAL_SECURITY_KEYS_DBP_SCHEME_VERSION_1<\/em> | Database protection scheme version 1 (AES-256-CBC) |\n| --- | --- |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#gad143e90cc82d2509cab2205530d38c7c\">hal_security_keys_ec_type_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for elliptic curve type.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SECURITY_KEYS 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>HAL_SECURITY_KEYS_EC_TYPE_PRIME192V1<\/em> | PRIME192V1 |\n| --- | --- |\n| <em>HAL_SECURITY_KEYS_EC_TYPE_PRIME256V1<\/em> | PRIME256V1 |\n| <em>HAL_SECURITY_KEYS_EC_TYPE_SECP384R1<\/em> | SECP384R1 |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga91e3c1845e0cb601ae6b951e230eb1cf\">hal_security_keys_error_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for security keys errors.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SECURITY_KEYS 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>HAL_SECURITY_KEYS_ERROR_NONE<\/em> | Successful |\n| --- | --- |\n| <em>HAL_SECURITY_KEYS_ERROR_INVALID_PARAMETER<\/em> | Invalid input parameter |\n| <em>HAL_SECURITY_KEYS_ERROR_OUT_OF_MEMORY<\/em> | Out of memory |\n| <em>HAL_SECURITY_KEYS_ERROR_NOT_SUPPORTED<\/em> | Operation not supported |\n| <em>HAL_SECURITY_KEYS_ERROR_AUTHENTICATION_FAILED<\/em> | Authentication failed |\n| <em>HAL_SECURITY_KEYS_ERROR_VERIFICATION_FAILED<\/em> | Verification failed |\n| <em>HAL_SECURITY_KEYS_ERROR_INTERNAL_ERROR<\/em> | Internal error |\n| <em>HAL_SECURITY_KEYS_ERROR_TARGET_DEAD<\/em> | Target dead |\n| <em>HAL_SECURITY_KEYS_ERROR_NO_KEY<\/em> | No key available |\n| <em>HAL_SECURITY_KEYS_ERROR_NOT_PERMITTED<\/em> | Operation not permitted |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga9808d68840f3fbb608142a436a5bfc05\">hal_security_keys_hash_algorithm_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for hash algorithm.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SECURITY_KEYS 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>HAL_SECURITY_KEYS_HASH_ALGORITHM_NONE<\/em> | None |\n| --- | --- |\n| <em>HAL_SECURITY_KEYS_HASH_ALGORITHM_SHA1<\/em> | SHA1 |\n| <em>HAL_SECURITY_KEYS_HASH_ALGORITHM_SHA256<\/em> | SHA256 |\n| <em>HAL_SECURITY_KEYS_HASH_ALGORITHM_SHA384<\/em> | SHA384 |\n| <em>HAL_SECURITY_KEYS_HASH_ALGORITHM_SHA512<\/em> | SHA512 |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#gab1d2189b183ca8d6a3c713627fa553f2\">hal_security_keys_kbkdf_counter_location_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for KBKDF counter location.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SECURITY_KEYS 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>HAL_SECURITY_KEYS_KBKDF_COUNTER_LOCATION_BEFORE_FIXED<\/em> | Before fixed |\n| --- | --- |\n| <em>HAL_SECURITY_KEYS_KBKDF_COUNTER_LOCATION_AFTER_FIXED<\/em> | After fixed |\n| <em>HAL_SECURITY_KEYS_KBKDF_COUNTER_LOCATION_MIDDLE_FIXED<\/em> | Middle fixed |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga849ffa5b07db749a0f8f0bfd6175a2a0\">hal_security_keys_kbkdf_mode_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for KBKDF mode.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SECURITY_KEYS 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>HAL_SECURITY_KEYS_KBKDF_MODE_COUNTER<\/em> | Counter mode |\n| --- | --- |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#gacb6e5034fcaf60c9aa9d85a7d5200195\">hal_security_keys_kdf_prf_type_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for KDF PRF type.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SECURITY_KEYS 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>HAL_SECURITY_KEYS_PRF_TYPE_HMAC_SHA256<\/em> | HMAC_SHA256 |\n| --- | --- |\n| <em>HAL_SECURITY_KEYS_PRF_TYPE_HMAC_SHA384<\/em> | HMAC_SHA384 |\n| <em>HAL_SECURITY_KEYS_PRF_TYPE_HMAC_SHA512<\/em> | HMAC_SHA512 |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#ga5761dd2dccf44c007b195b080077a37a\">hal_security_keys_kem_type_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for ML KEM type.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SECURITY_KEYS 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>HAL_SECURITY_KEYS_ML_KEM_768<\/em> | ML KEM 768 |\n| --- | --- |\n| <em>HAL_SECURITY_KEYS_ML_KEM_1024<\/em> | ML KEM 1024 |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SECURITY__KEYS__MODULE.md#gabb3d0468618a7086653b628e10f45f57\">hal_security_keys_padding_algorithm_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for padding algorithm.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SECURITY_KEYS 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>HAL_SECURITY_KEYS_PADDING_ALGORITHM_NONE<\/em> | None |\n| --- | --- |\n| <em>HAL_SECURITY_KEYS_PADDING_ALGORITHM_PKCS7<\/em> | PKCS#7 |\n| <em>HAL_SECURITY_KEYS_PADDING_ALGORITHM_ISO9797_M2<\/em> | ISO9797 method 2 padding |\n| <em>HAL_SECURITY_KEYS_PADDING_ALGORITHM_PKCS1<\/em> | PKCS#1 |\n| <em>HAL_SECURITY_KEYS_PADDING_ALGORITHM_X931<\/em> | X391 |<\/p>\n<hr \/>\n<p>Except as noted, this content - excluding the Code Examples - is licensed under <a href=https://samsungtizenos.com/"http:////creativecommons.org//licenses//by//3.0//legalcode/">Creative Commons Attribution 3.0<\/a>\nand all of the Code Examples contained herein are licensed under <a href=https://samsungtizenos.com/"https:////www.tizen.org//bsd-3-clause-license/">BSD-3-Clause/a>.
Content License<\/a>.<\/p>\n","table_of_content":"<ul class=\"table-of-contents\">\n<li><a href=https://samsungtizenos.com/"#content-required-header\">Required Header<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-overview\">Overview<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-data-structure-documentation\">Data Structure Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-1\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-2\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-3\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-4\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-5\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-typedef-documentation\">Typedef Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-enumeration-type-documentation\">Enumeration Type Documentation<\/a><\/li>\n<\/ul>\n","title":"Tizen HAL API: Keys","raw":null},{"class":"App\\Services\\Documentation\\Data\\RenderedMarkdown","s":"wrbl"}]},"memo":{"id":"wA6i3x1DrUjNAC9v4SQN","name":"documentation::article","path":"docs\/platform\/hal\/api\/1.0.0\/group__HALAPI__HAL__SECURITY__KEYS__MODULE","method":"GET","release":"a-a-a","children":[],"scripts":[],"assets":[],"lazyLoaded":false,"lazyIsolated":true,"errors":[],"locale":"en","islands":[]},"checksum":"f4b23ade4724085b7609880a436c70f2e99d151d24e6aa08787d797394f39e06"}" wire:effects="[]" wire:id="wA6i3x1DrUjNAC9v4SQN" wire:name="documentation::article" x-init="$wire.__lazyLoad('eyJkYXRhIjp7ImZvck1vdW50IjpbeyJtYXJrZG93biI6W3siYm9keSI6IjxoMSBpZD1cImNvbnRlbnQtdGl6ZW4taGFsLWFwaS1rZXlzXCI+PGEgaHJlZj1cIiNjb250ZW50LXRpemVuLWhhbC1hcGkta2V5c1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+VGl6ZW4gSEFMIEFQSTogS2V5czxcL2gxPjxkaXYgZGF0YS1rbm93bGVkZ2UtYmFzZS1tZXRhZGF0YT48XC9kaXY+XG48aHIgXC8+XG48cD5UaGUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZFwiPktleXM8XC9hPiBwcm92aWRlcyBmdW5jdGlvbnMgdG8gaGFuZGxlIGtleXMgYW5kIGRhdGEgcmVsYXRlZCBvcGVyYXRpb25zLjxcL3A+XG48aDIgaWQ9XCJjb250ZW50LXJlcXVpcmVkLWhlYWRlclwiPjxhIGhyZWY9XCIjY29udGVudC1yZXF1aXJlZC1oZWFkZXJcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlJlcXVpcmVkIEhlYWRlcjxcL2gyPlxuPHA+I2luY2x1ZGUgJmx0O2hhbFwvaGFsLXNlY3VyaXR5LWtleXMuaCZndDs8XC9wPlxuPGgyIGlkPVwiY29udGVudC1vdmVydmlld1wiPjxhIGhyZWY9XCIjY29udGVudC1vdmVydmlld1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+T3ZlcnZpZXc8XC9oMj5cbjxwPlRoZSBTZWN1cml0eSBLZXlzIHByb3ZpZGVzIGZ1bmN0aW9ucyB0byBoYW5kbGUga2V5cyBhbmQgZGF0YSByZWxhdGVkIG9wZXJhdGlvbnM8XC9wPlxuPHA+VGhlIFNlY3VyaXR5IEtleXMgZnVuY3Rpb25zIHByb3ZpZGUgbWV0aG9kcyB0bzo8XC9wPlxuPHVsPlxuPGxpPkNyZWF0ZSBpbml0aWFsaXphdGlvbiB2ZWN0b3I8XC9saT5cbjxsaT5DcmVhdGVcL0Rlc3Ryb3kga2V5cyAoQUVTLCBSU0EsIERTQSwgRUNEU0EsIEtFTSk8XC9saT5cbjxsaT5JbXBvcnRcL0V4cG9ydCB3cmFwcGVkIGtleXM8XC9saT5cbjxsaT5FbmNhcHN1bGF0ZVwvRGVjYXBzdWxhdGUgS0VNIGtleXM8XC9saT5cbjxsaT5JbXBvcnRcL0V4cG9ydCBkYXRhPFwvbGk+XG48bGk+V3JhcFwvVW53cmFwIGNvbmNhdGVuYXRlZCBkYXRhPFwvbGk+XG48bGk+RW5jcnlwdFwvRGVjcnlwdCBkYXRhPFwvbGk+XG48bGk+SW5pdGlhbGl6ZSBhbmQgcGVyZm9ybSBjaXBoZXIgb3BlcmF0aW9uczxcL2xpPlxuPGxpPkNyZWF0ZSBhbmQgdmVyaWZ5IHNpZ25hdHVyZXM8XC9saT5cbjxsaT5EZXJpdmUga2V5cyAoRUNESCwgS0JLREYsIEtCS0RGIGh5YnJpZCk8XC9saT5cbjxsaT5HZXQga2V5IGNodW5rIHNpemU8XC9saT5cbjxsaT5DcmVhdGUgREJQIGtleTxcL2xpPlxuPGxpPkVuY3J5cHQgZGF0YSB3aXRoIERCUCBrZXk8XC9saT5cbjxcL3VsPlxuPHA+Rm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhlIFNlY3VyaXR5IEtleXMgZmVhdHVyZXMgYW5kIHRoZSBtYWNyb3MsIHNlZSBIQUwgU2VjdXJpdHkgcHJvZ3JhbW1pbmcgZ3VpZGVzIGFuZCB0dXRvcmlhbHMuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPlR5cGVkZWZzPFwvdGg+XG48dGg+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPnR5cGVkZWYgc3RydWN0ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RfX2hhbF9fYmFja2VuZF9fc2VjdXJpdHlfX2tleXNfX2Z1bmNzXCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E2YTE3ZTdlNDEyNzdlMGFhZjEwNTA4MjAxNzRlODkxMVwiPmhhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+U3RydWN0dXJlIGZvciBzZWN1cml0eSBrZXlzIGZ1bmN0aW9ucy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgc2l6ZV90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTVmMzhiNTY1OGQ0NGY0NDBjNTU1ZWI2NjZlZGYyYzk5XCI+aGFsX3NlY3VyaXR5X2tleXNfY2lwaGVyX2NvbnRleHRfdDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5UeXBlIGZvciBjaXBoZXIgY29udGV4dC48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDIgaWQ9XCJjb250ZW50LWRhdGEtc3RydWN0dXJlLWRvY3VtZW50YXRpb25cIj48YSBocmVmPVwiI2NvbnRlbnQtZGF0YS1zdHJ1Y3R1cmUtZG9jdW1lbnRhdGlvblwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RGF0YSBTdHJ1Y3R1cmUgRG9jdW1lbnRhdGlvbjxcL2gyPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IF9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBzZWN1cml0eSBrZXlzIGZ1bmN0aW9ucy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRUNVUklUWV9LRVlTIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5EYXRhIEZpZWxkczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTA3NzM4NzI0NzY2YWFmNWI0N2FlODYxMjE2YTY4ZDZjXCI+Y29udGV4dF9pbml0aWFsaXplPFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiAqY29udGV4dCk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhYjIxN2I1YzI3YmQ5NDBjNzE4MjhhZmI3NmNjZDhkOGRcIj5jb250ZXh0X2ZyZWU8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+ICpjb250ZXh0KTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2ExM2JjOTNhNGZiN2RmNzdmMGEyOTY2Y2RhMTI1NTI1YlwiPmNyZWF0ZV9pdjxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKml2KTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E3YjY3ZWU4YmNjYTZlNWJjNzQ1ODQ1ZTk4ODY2ZmFkZFwiPmNyZWF0ZV9rZXlfYWVzPFwvYT4gKShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCBzaXplX3Qga2V5X3NpemVfYml0cywgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4ga2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M8XC9hPiBrZXlfcHdkLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqa2V5X3RhZyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhNTc3N2Y1NmU2OTQyMGRkNzJmNDdlMWY0YWFmYjIzYTFcIj5jcmVhdGVfa2V5X3BhaXJfcnNhPFwvYT4gKShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCBzaXplX3Qga2V5X3NpemVfYml0cywgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHJpdl9rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IHByaXZfa2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHViX2tleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl9zPFwvYT4gcHViX2tleV9wd2QsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpwcml2X2tleV90YWcsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpwdWJfa2V5X3RhZyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhZTY4NzIyOWJlM2RlYTM5NThiMDExNjM4MTJkN2Y2MGZcIj5jcmVhdGVfa2V5X3BhaXJfZHNhPFwvYT4gKShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCBzaXplX3Qga2V5X3NpemVfYml0cywgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHJpbWUsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHN1YnByaW1lLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBiYXNlLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBwcml2X2tleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl9zPFwvYT4gcHJpdl9rZXlfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBwdWJfa2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M8XC9hPiBwdWJfa2V5X3B3ZCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKnByaXZfa2V5X3RhZywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKnB1Yl9rZXlfdGFnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2EwOWUxYmM2MGI0ZjRhNGM4YWFmZjQ2YTI4M2E0OGNhZFwiPmNyZWF0ZV9rZXlfcGFpcl9lY2RzYTxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYWQxNDNlOTBjYzgyZDI1MDljYWIyMjA1NTMwZDM4YzdjXCI+aGFsX3NlY3VyaXR5X2tleXNfZWNfdHlwZV9lPFwvYT4gZWNfdHlwZSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHJpdl9rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IHByaXZfa2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHViX2tleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl9zPFwvYT4gcHViX2tleV9wd2QsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpwcml2X2tleV90YWcsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpwdWJfa2V5X3RhZyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhYTM2ZGE3ZGI5NTU1OGZkZmNhYjc3NDk2NWU0Yzc4MWVcIj5jcmVhdGVfa2V5X3BhaXJfa2VtPFwvYT4gKShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhNTc2MWRkMmRjY2Y0NGMwMDdiMTk1YjA4MDA3N2EzN2FcIj5oYWxfc2VjdXJpdHlfa2V5c19rZW1fdHlwZV9lPFwvYT4ga2VtX3R5cGUsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHByaXZfa2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M8XC9hPiBwcml2X2tleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHB1Yl9rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IHB1Yl9rZXlfcHdkLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqcHJpdl9rZXlfdGFnLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqcHViX2tleV90YWcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTRmNzAzZmUzMDUyNmVmMDg4ZjcxMjJlYTRjNzAxYmI2XCI+aW1wb3J0X3dyYXBwZWRfa2V5PFwvYT4gKShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhN2UzNTUzMjI3ZTQxOTc0NDYzOTVhNmQ1MmRlODRiYjFcIj5oYWxfc2VjdXJpdHlfa2V5c19hbGdvX3R5cGVfZTxcL2E+IGFsZ28sIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E5ODA4ZDY4ODQwZjNmYmI2MDgxNDJhNDM2YTViZmMwNVwiPmhhbF9zZWN1cml0eV9rZXlzX2hhc2hfYWxnb3JpdGhtX2U8XC9hPiBoYXNoLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBpdiwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gYWFkLCBjb25zdCBzaXplX3QgY3RyX2xlbl9vcl90YWdfc2l6ZV9iaXRzLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiB3cmFwcGluZ19rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IHdyYXBwaW5nX2tleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHdyYXBwZWRfa2V5LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBrZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IGtleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E2MTUyODIxZDQ0MmY4NGEyZjYxMmRlNDg4MTVhODk4MVwiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfdHlwZV9lPFwvYT4ga2V5X3R5cGUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICprZXlfdGFnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2EwMWJiOTg4N2VmZmVhZDI5MTM4YmE2YjkzODY1ZGI0Y1wiPmV4cG9ydF93cmFwcGVkX2tleTxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTdlMzU1MzIyN2U0MTk3NDQ2Mzk1YTZkNTJkZTg0YmIxXCI+aGFsX3NlY3VyaXR5X2tleXNfYWxnb190eXBlX2U8XC9hPiBhbGdvLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhOTgwOGQ2ODg0MGYzZmJiNjA4MTQyYTQzNmE1YmZjMDVcIj5oYWxfc2VjdXJpdHlfa2V5c19oYXNoX2FsZ29yaXRobV9lPFwvYT4gaGFzaCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gaXYsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGFhZCwgY29uc3Qgc2l6ZV90IGN0cl9sZW5fb3JfdGFnX3NpemVfYml0cywgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gd3JhcHBpbmdfa2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fdGFnX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfdGFnX3M8XC9hPiB3cmFwcGluZ19rZXlfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBrZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IGtleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E2MTUyODIxZDQ0MmY4NGEyZjYxMmRlNDg4MTVhODk4MVwiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfdHlwZV9lPFwvYT4ga2V5X3R5cGUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICp3cmFwcGVkX2tleSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhNzQ2MjM1MDZmMWRjYjhhNjc5NmQ4MzAwNDhmZjliNGRcIj5lbmNhcHN1bGF0ZV9rZXk8XC9hPiApKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E1NzYxZGQyZGNjZjQ0YzAwN2IxOTViMDgwMDc3YTM3YVwiPmhhbF9zZWN1cml0eV9rZXlzX2tlbV90eXBlX2U8XC9hPiBrZW1fdHlwZSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHViX2tleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4gcHViX2tleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHNoYXJlZF9zZWNyZXRfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IHNoYXJlZF9zZWNyZXRfcHdkLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqY2lwaGVydGV4dCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKnNoYXJlZF9zZWNyZXRfdGFnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2FlNjRiZGZmMjcyNDg3NGQ1MmFlOTg3MDQ3MjNmNzk2Y1wiPmRlY2Fwc3VsYXRlX2tleTxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTU3NjFkZDJkY2NmNDRjMDA3YjE5NWIwODAwNzdhMzdhXCI+aGFsX3NlY3VyaXR5X2tleXNfa2VtX3R5cGVfZTxcL2E+IGtlbV90eXBlLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBwcml2X2tleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4gcHJpdl9rZXlfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBzaGFyZWRfc2VjcmV0X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M8XC9hPiBzaGFyZWRfc2VjcmV0X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gY2lwaGVydGV4dCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKnNoYXJlZF9zZWNyZXRfdGFnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2FkMWRhNDMzMTk3NWE1MDRjMWIxNTM1NDU3OGM0MzQ5NVwiPmRlc3Ryb3lfa2V5PFwvYT4gKShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBrZXlfaWQpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYThjMjUzNzc3YTRjZjhiYjgzNTBhMDRlOTgzYWE0YzQ4XCI+aW1wb3J0X2RhdGE8XC9hPiApKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGRhdGFfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IGRhdGFfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhNjE1MjgyMWQ0NDJmODRhMmY2MTJkZTQ4ODE1YTg5ODFcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3R5cGVfZTxcL2E+IGRhdGFfdHlwZSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gZGF0YSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gZGF0YV9lbmNyeXB0aW9uX2l2LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBkYXRhX2VuY3J5cHRpb25fdGFnLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqZGF0YV90YWcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTk0Yzg5OTcwN2VhMThhMWZiZjU5MDFlMTNhYzM4Mzk2XCI+ZXhwb3J0X2RhdGE8XC9hPiApKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGRhdGFfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IGRhdGFfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhNjE1MjgyMWQ0NDJmODRhMmY2MTJkZTQ4ODE1YTg5ODFcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3R5cGVfZTxcL2E+IGRhdGFfdHlwZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKmRhdGEpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTE2MmI3MTVkMWI0NDY0MjUwNmJjOTM1N2NhZGQ5Y2E4XCI+d3JhcF9jb25jYXRlbmF0ZWRfZGF0YTxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTdlMzU1MzIyN2U0MTk3NDQ2Mzk1YTZkNTJkZTg0YmIxXCI+aGFsX3NlY3VyaXR5X2tleXNfYWxnb190eXBlX2U8XC9hPiBhbGdvLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhOTgwOGQ2ODg0MGYzZmJiNjA4MTQyYTQzNmE1YmZjMDVcIj5oYWxfc2VjdXJpdHlfa2V5c19oYXNoX2FsZ29yaXRobV9lPFwvYT4gaGFzaCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gd3JhcHBpbmdfa2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fdGFnX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfdGFnX3M8XC9hPiB3cmFwcGluZ19rZXlfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBrZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IGtleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGRhdGEsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICp3cmFwcGVkX2tleSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhOWNmNjVmNTBmM2QyYzViNTQ1YmFjOTA1MGE4N2RlZTZcIj51bndyYXBfY29uY2F0ZW5hdGVkX2RhdGE8XC9hPiApKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E3ZTM1NTMyMjdlNDE5NzQ0NjM5NWE2ZDUyZGU4NGJiMVwiPmhhbF9zZWN1cml0eV9rZXlzX2FsZ29fdHlwZV9lPFwvYT4gYWxnbywgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTk4MDhkNjg4NDBmM2ZiYjYwODE0MmE0MzZhNWJmYzA1XCI+aGFsX3NlY3VyaXR5X2tleXNfaGFzaF9hbGdvcml0aG1fZTxcL2E+IGhhc2gsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHdyYXBwaW5nX2tleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4gd3JhcHBpbmdfa2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gd3JhcHBlZF9rZXksIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGtleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl9zPFwvYT4ga2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTYxNTI4MjFkNDQyZjg0YTJmNjEyZGU0ODgxNWE4OTgxXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV90eXBlX2U8XC9hPiBrZXlfdHlwZSwgY29uc3Qgc2l6ZV90IGtleV9zaXplX2JpdHMsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpkYXRhLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqa2V5X3RhZyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhMjVhOGQ3MmQ5MzE0M2Q3OGI0NWZjNTQyMWZiOGVlOWRcIj5lbmNyeXB0X2RhdGFfYXV0aDxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4ga2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fdGFnX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfdGFnX3M8XC9hPiBrZXlfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBkYXRhLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBpdiwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gYWFkLCBjb25zdCBzaXplX3QgdGFnX3NpemVfYml0cywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKnRhZywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKm91dCk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhZDVmNWRhNjVhZWExZTMyNzQzYWNlYTUxYTkxOTcwNjRcIj5kZWNyeXB0X2RhdGFfYXV0aDxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4ga2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fdGFnX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfdGFnX3M8XC9hPiBrZXlfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBkYXRhLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBpdiwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gYWFkLCBjb25zdCBzaXplX3QgdGFnX3NpemVfYml0cywgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gdGFnLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqb3V0KTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2FkYTQ0NWYyYmZiMGExMzgxYTE4ZTI4ODhhOWM4ZjhhZVwiPmVuY3J5cHRfZGF0YTxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTdlMzU1MzIyN2U0MTk3NDQ2Mzk1YTZkNTJkZTg0YmIxXCI+aGFsX3NlY3VyaXR5X2tleXNfYWxnb190eXBlX2U8XC9hPiBhbGdvLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhOTgwOGQ2ODg0MGYzZmJiNjA4MTQyYTQzNmE1YmZjMDVcIj5oYWxfc2VjdXJpdHlfa2V5c19oYXNoX2FsZ29yaXRobV9lPFwvYT4gaGFzaCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYWJiM2QwNDY4NjE4YTcwODY2NTNiNjI4ZTEwZjQ1ZjU3XCI+aGFsX3NlY3VyaXR5X2tleXNfcGFkZGluZ19hbGdvcml0aG1fZTxcL2E+IHBhZGRpbmcsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGtleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4ga2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gZGF0YSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gaXYsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpvdXQpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTZiYmNlOGE4NTZlNDczODdmZmI1MDUzZmZmMTFkNzBlXCI+ZGVjcnlwdF9kYXRhPFwvYT4gKShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhN2UzNTUzMjI3ZTQxOTc0NDYzOTVhNmQ1MmRlODRiYjFcIj5oYWxfc2VjdXJpdHlfa2V5c19hbGdvX3R5cGVfZTxcL2E+IGFsZ28sIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E5ODA4ZDY4ODQwZjNmYmI2MDgxNDJhNDM2YTViZmMwNVwiPmhhbF9zZWN1cml0eV9rZXlzX2hhc2hfYWxnb3JpdGhtX2U8XC9hPiBoYXNoLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhYmIzZDA0Njg2MThhNzA4NjY1M2I2MjhlMTBmNDVmNTdcIj5oYWxfc2VjdXJpdHlfa2V5c19wYWRkaW5nX2FsZ29yaXRobV9lPFwvYT4gcGFkZGluZywgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4ga2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fdGFnX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfdGFnX3M8XC9hPiBrZXlfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBkYXRhLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBpdiwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKm91dCk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhMjlkYjlkYTM2MTA5NjZjODA5NTYwZmU1ZTRkZjJjNGFcIj5kZXN0cm95X2RhdGE8XC9hPiApKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGRhdGFfaWQpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTYyNDQ3YzdkNDBlMDNhZWZhODQ3Nzg0ZTcyZTU1ZGRlXCI+Y2lwaGVyX2luaXRpYWxpemU8XC9hPiApKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IGJvb2wgZW5jcnlwdCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4ga2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fdGFnX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfdGFnX3M8XC9hPiBrZXlfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBpdiwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gYWFkLCBjb25zdCBzaXplX3QgdGFnX3NpemVfYml0cywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTVmMzhiNTY1OGQ0NGY0NDBjNTU1ZWI2NjZlZGYyYzk5XCI+aGFsX3NlY3VyaXR5X2tleXNfY2lwaGVyX2NvbnRleHRfdDxcL2E+ICpjaXBoZXJfY29udGV4dCk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhMzI5NmZkMzNkODM5OGE5ZWQ2MTUyYmJkYzQ2ZmQ3ODFcIj5jaXBoZXJfYWRkX2FhZDxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTVmMzhiNTY1OGQ0NGY0NDBjNTU1ZWI2NjZlZGYyYzk5XCI+aGFsX3NlY3VyaXR5X2tleXNfY2lwaGVyX2NvbnRleHRfdDxcL2E+IGNpcGhlcl9jb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBhYWQpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTdlZDYzYWU4MjVkZTRmYmVhZTRiNDBhN2Q5MDAzMzk4XCI+Y2lwaGVyX3VwZGF0ZTxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTVmMzhiNTY1OGQ0NGY0NDBjNTU1ZWI2NjZlZGYyYzk5XCI+aGFsX3NlY3VyaXR5X2tleXNfY2lwaGVyX2NvbnRleHRfdDxcL2E+IGNpcGhlcl9jb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBkYXRhLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqb3V0KTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E2NTYwYTM3NjNiODQxMGIzMjdiYzA0MjlkZDRhNjZhNFwiPmNpcGhlcl9maW5hbGl6ZTxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTVmMzhiNTY1OGQ0NGY0NDBjNTU1ZWI2NjZlZGYyYzk5XCI+aGFsX3NlY3VyaXR5X2tleXNfY2lwaGVyX2NvbnRleHRfdDxcL2E+IGNpcGhlcl9jb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBkYXRhLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqb3V0KTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E4ODE1MWJiOTQ2ZmEyZmQ3ZTUxMWU3NWIyMjQwZmZkM1wiPmNpcGhlcl9mcmVlPFwvYT4gKShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhNWYzOGI1NjU4ZDQ0ZjQ0MGM1NTVlYjY2NmVkZjJjOTlcIj5oYWxfc2VjdXJpdHlfa2V5c19jaXBoZXJfY29udGV4dF90PFwvYT4gY2lwaGVyX2NvbnRleHQpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTU4OGQ3ZTI0MzYwMzlkMzI1ZGE5YzI3MWZhNTNmY2VmXCI+Y3JlYXRlX3NpZ25hdHVyZTxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTdlMzU1MzIyN2U0MTk3NDQ2Mzk1YTZkNTJkZTg0YmIxXCI+aGFsX3NlY3VyaXR5X2tleXNfYWxnb190eXBlX2U8XC9hPiBhbGdvLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhOTgwOGQ2ODg0MGYzZmJiNjA4MTQyYTQzNmE1YmZjMDVcIj5oYWxfc2VjdXJpdHlfa2V5c19oYXNoX2FsZ29yaXRobV9lPFwvYT4gaGFzaCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHJpdl9rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IHByaXZfa2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gbWVzc2FnZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKnNpZ25hdHVyZSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhOWJjZTE0OWQyZmUxMjA1MGJlNDgzNWVlYzM2MTA2MTJcIj52ZXJpZnlfc2lnbmF0dXJlPFwvYT4gKShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhN2UzNTUzMjI3ZTQxOTc0NDYzOTVhNmQ1MmRlODRiYjFcIj5oYWxfc2VjdXJpdHlfa2V5c19hbGdvX3R5cGVfZTxcL2E+IGFsZ28sIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E5ODA4ZDY4ODQwZjNmYmI2MDgxNDJhNDM2YTViZmMwNVwiPmhhbF9zZWN1cml0eV9rZXlzX2hhc2hfYWxnb3JpdGhtX2U8XC9hPiBoYXNoLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBwdWJfa2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fdGFnX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfdGFnX3M8XC9hPiBwdWJfa2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gbWVzc2FnZSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gc2lnbmF0dXJlKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2EyYzExZTcxNTA5MGVlMzljODM3ODYwZDM4MjlkYmZhZFwiPmRlcml2ZV9lY2RoPFwvYT4gKShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhZDE0M2U5MGNjODJkMjUwOWNhYjIyMDU1MzBkMzhjN2NcIj5oYWxfc2VjdXJpdHlfa2V5c19lY190eXBlX2U8XC9hPiBlY190eXBlLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBwdWJfa2V5X3gsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHB1Yl9rZXlfeSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHJpdl9rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IHByaXZfa2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gc2VjcmV0X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M8XC9hPiBzZWNyZXRfcHdkLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqc2VjcmV0X3RhZyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhNWYzOTI1NTg4Y2NlYzVmMGIyNDhiY2U5ZjBjOTg4ZjFcIj5kZXJpdmVfa2JrZGY8XC9hPiApKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fa2JrZGZfX3BhcmFtc19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2tia2RmX3BhcmFtc19zPFwvYT4gcGFyYW1zLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBzZWNyZXRfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IHNlY3JldF9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGtleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl9zPFwvYT4ga2V5X3B3ZCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKmtleV90YWcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYWJhZDcwNTUyMDYwZmQyMjEwYTcxYjUyZGNiYmYxMDc0XCI+ZGVyaXZlX2h5YnJpZF9rYmtkZjxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19rYmtkZl9fcGFyYW1zX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfa2JrZGZfcGFyYW1zX3M8XC9hPiBwYXJhbXMsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGZpcnN0X3NlY3JldF9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4gZmlyc3Rfc2VjcmV0X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gc2Vjb25kX3NlY3JldF9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4gc2Vjb25kX3NlY3JldF9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGtleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl9zPFwvYT4ga2V5X3B3ZCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKmtleV90YWcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTExNDk5NjAxYjgzMGM4NzgwNjhlMTQ4OGY3MGQ2ZDdiXCI+Z2V0X21heF9jaHVua19zaXplPFwvYT4gKShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBzaXplX3QgKmNodW5rX3NpemUpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTk5YzdlNjcyOGE5MmRhMWRlNmMyYjA4YWQ0NzhmOWMwXCI+Y3JlYXRlX2tleV9kYnA8XC9hPiApKGNvbnN0IGJvb2wgZGVzdHJveV9vbGQpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYWMyZjIyMDc4YjRmMzE2MDM0Y2U1NTc2MDhlYjkzOTFlXCI+ZW5jcnlwdF9kYXRhX2RicDxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTgxZjc3ZGJhMDUwOWY5MzE5NjI1YzUyMDc4MTdjMzk2XCI+aGFsX3NlY3VyaXR5X2tleXNfZGJwX3NjaGVtZV92ZXJzaW9uX2U8XC9hPiBkYnBfc2NoZW1lX3ZlcnNpb24sIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGRhdGEsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGl2LCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqb3V0KTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+Ym9vbCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhYzViZjliNzAyOTQzNGE5NzA2ZGM1MmUyYjcwZTg4YmFcIj5pc190el9zdXBwb3J0ZWQ8XC9hPiApKHZvaWQpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5ib29sKCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2FiNmRkNmY3MjM3Njc3ZWY3NTYyOTBkY2NmMzA4N2UwYVwiPmlzX3NlX3N1cHBvcnRlZDxcL2E+ICkodm9pZCk8XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDQgaWQ9XCJjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb25cIj48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvblwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhMzI5NmZkMzNkODM5OGE5ZWQ2MTUyYmJkYzQ2ZmQ3ODFcIj5faGFsX2JhY2tlbmRfc2VjdXJpdHlfa2V5c19mdW5jczo6Y2lwaGVyX2FkZF9hYWQ8XC9hPikoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTVmMzhiNTY1OGQ0NGY0NDBjNTU1ZWI2NjZlZGYyYzk5XCI+aGFsX3NlY3VyaXR5X2tleXNfY2lwaGVyX2NvbnRleHRfdDxcL2E+IGNpcGhlcl9jb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBhYWQpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+QWRkIEFBRDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E2NTYwYTM3NjNiODQxMGIzMjdiYzA0MjlkZDRhNjZhNFwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpjaXBoZXJfZmluYWxpemU8XC9hPikoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTVmMzhiNTY1OGQ0NGY0NDBjNTU1ZWI2NjZlZGYyYzk5XCI+aGFsX3NlY3VyaXR5X2tleXNfY2lwaGVyX2NvbnRleHRfdDxcL2E+IGNpcGhlcl9jb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBkYXRhLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqb3V0KTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkZpbmFsaXplIGNpcGhlcjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E4ODE1MWJiOTQ2ZmEyZmQ3ZTUxMWU3NWIyMjQwZmZkM1wiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpjaXBoZXJfZnJlZTxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhNWYzOGI1NjU4ZDQ0ZjQ0MGM1NTVlYjY2NmVkZjJjOTlcIj5oYWxfc2VjdXJpdHlfa2V5c19jaXBoZXJfY29udGV4dF90PFwvYT4gY2lwaGVyX2NvbnRleHQpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q2xlYW51cCBjaXBoZXI8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhNjI0NDdjN2Q0MGUwM2FlZmE4NDc3ODRlNzJlNTVkZGVcIj5faGFsX2JhY2tlbmRfc2VjdXJpdHlfa2V5c19mdW5jczo6Y2lwaGVyX2luaXRpYWxpemU8XC9hPikoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgYm9vbCBlbmNyeXB0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBrZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IGtleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGl2LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBhYWQsIGNvbnN0IHNpemVfdCB0YWdfc2l6ZV9iaXRzLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhNWYzOGI1NjU4ZDQ0ZjQ0MGM1NTVlYjY2NmVkZjJjOTlcIj5oYWxfc2VjdXJpdHlfa2V5c19jaXBoZXJfY29udGV4dF90PFwvYT4gKmNpcGhlcl9jb250ZXh0KTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkluaXRpYWxpemUgY2lwaGVyPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTdlZDYzYWU4MjVkZTRmYmVhZTRiNDBhN2Q5MDAzMzk4XCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OmNpcGhlcl91cGRhdGU8XC9hPikoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTVmMzhiNTY1OGQ0NGY0NDBjNTU1ZWI2NjZlZGYyYzk5XCI+aGFsX3NlY3VyaXR5X2tleXNfY2lwaGVyX2NvbnRleHRfdDxcL2E+IGNpcGhlcl9jb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBkYXRhLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqb3V0KTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlVwZGF0ZSBjaXBoZXI8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhYjIxN2I1YzI3YmQ5NDBjNzE4MjhhZmI3NmNjZDhkOGRcIj5faGFsX2JhY2tlbmRfc2VjdXJpdHlfa2V5c19mdW5jczo6Y29udGV4dF9mcmVlPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+ICpjb250ZXh0KTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkZyZWUgSEFMIGJhY2tlbmQgY29udGV4dDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2EwNzczODcyNDc2NmFhZjViNDdhZTg2MTIxNmE2OGQ2Y1wiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpjb250ZXh0X2luaXRpYWxpemU8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gKmNvbnRleHQpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+SW5pdGlhbGl6ZSBIQUwgYmFja2VuZCBjb250ZXh0PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTEzYmM5M2E0ZmI3ZGY3N2YwYTI5NjZjZGExMjU1MjViXCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OmNyZWF0ZV9pdjxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqaXYpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q3JlYXRlIGluaXRpYWxpemF0aW9uIHZlY3RvcjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E3YjY3ZWU4YmNjYTZlNWJjNzQ1ODQ1ZTk4ODY2ZmFkZFwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpjcmVhdGVfa2V5X2FlczxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCBzaXplX3Qga2V5X3NpemVfYml0cywgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4ga2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M8XC9hPiBrZXlfcHdkLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqa2V5X3RhZyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5DcmVhdGUgQUVTIGtleTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E5OWM3ZTY3MjhhOTJkYTFkZTZjMmIwOGFkNDc4ZjljMFwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpjcmVhdGVfa2V5X2RicDxcL2E+KShjb25zdCBib29sIGRlc3Ryb3lfb2xkKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkNyZWF0ZSBEQlAga2V5PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYWU2ODcyMjliZTNkZWEzOTU4YjAxMTYzODEyZDdmNjBmXCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OmNyZWF0ZV9rZXlfcGFpcl9kc2E8XC9hPikoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3Qgc2l6ZV90IGtleV9zaXplX2JpdHMsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHByaW1lLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBzdWJwcmltZSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gYmFzZSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHJpdl9rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IHByaXZfa2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHViX2tleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl9zPFwvYT4gcHViX2tleV9wd2QsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpwcml2X2tleV90YWcsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpwdWJfa2V5X3RhZyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5DcmVhdGUgRFNBIGtleSBwYWlyPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTA5ZTFiYzYwYjRmNGE0YzhhYWZmNDZhMjgzYTQ4Y2FkXCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OmNyZWF0ZV9rZXlfcGFpcl9lY2RzYTxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhZDE0M2U5MGNjODJkMjUwOWNhYjIyMDU1MzBkMzhjN2NcIj5oYWxfc2VjdXJpdHlfa2V5c19lY190eXBlX2U8XC9hPiBlY190eXBlLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBwcml2X2tleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl9zPFwvYT4gcHJpdl9rZXlfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBwdWJfa2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M8XC9hPiBwdWJfa2V5X3B3ZCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKnByaXZfa2V5X3RhZywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKnB1Yl9rZXlfdGFnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkNyZWF0ZSBFQ0RTQSBrZXkgcGFpcjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2FhMzZkYTdkYjk1NTU4ZmRmY2FiNzc0OTY1ZTRjNzgxZVwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpjcmVhdGVfa2V5X3BhaXJfa2VtPFwvYT4pKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E1NzYxZGQyZGNjZjQ0YzAwN2IxOTViMDgwMDc3YTM3YVwiPmhhbF9zZWN1cml0eV9rZXlzX2tlbV90eXBlX2U8XC9hPiBrZW1fdHlwZSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHJpdl9rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IHByaXZfa2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHViX2tleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl9zPFwvYT4gcHViX2tleV9wd2QsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpwcml2X2tleV90YWcsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpwdWJfa2V5X3RhZyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5DcmVhdGUgS0VNIGtleSBwYWlyPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTU3NzdmNTZlNjk0MjBkZDcyZjQ3ZTFmNGFhZmIyM2ExXCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OmNyZWF0ZV9rZXlfcGFpcl9yc2E8XC9hPikoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3Qgc2l6ZV90IGtleV9zaXplX2JpdHMsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHByaXZfa2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M8XC9hPiBwcml2X2tleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHB1Yl9rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IHB1Yl9rZXlfcHdkLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqcHJpdl9rZXlfdGFnLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqcHViX2tleV90YWcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q3JlYXRlIFJTQSBrZXkgcGFpcjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E1ODhkN2UyNDM2MDM5ZDMyNWRhOWMyNzFmYTUzZmNlZlwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpjcmVhdGVfc2lnbmF0dXJlPFwvYT4pKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E3ZTM1NTMyMjdlNDE5NzQ0NjM5NWE2ZDUyZGU4NGJiMVwiPmhhbF9zZWN1cml0eV9rZXlzX2FsZ29fdHlwZV9lPFwvYT4gYWxnbywgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTk4MDhkNjg4NDBmM2ZiYjYwODE0MmE0MzZhNWJmYzA1XCI+aGFsX3NlY3VyaXR5X2tleXNfaGFzaF9hbGdvcml0aG1fZTxcL2E+IGhhc2gsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHByaXZfa2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fdGFnX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfdGFnX3M8XC9hPiBwcml2X2tleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IG1lc3NhZ2UsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpzaWduYXR1cmUpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q3JlYXRlIHNpZ25hdHVyZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2FlNjRiZGZmMjcyNDg3NGQ1MmFlOTg3MDQ3MjNmNzk2Y1wiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpkZWNhcHN1bGF0ZV9rZXk8XC9hPikoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTU3NjFkZDJkY2NmNDRjMDA3YjE5NWIwODAwNzdhMzdhXCI+aGFsX3NlY3VyaXR5X2tleXNfa2VtX3R5cGVfZTxcL2E+IGtlbV90eXBlLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBwcml2X2tleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4gcHJpdl9rZXlfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBzaGFyZWRfc2VjcmV0X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M8XC9hPiBzaGFyZWRfc2VjcmV0X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gY2lwaGVydGV4dCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKnNoYXJlZF9zZWNyZXRfdGFnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlY2Fwc3VsYXRlIGtleTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E2YmJjZThhODU2ZTQ3Mzg3ZmZiNTA1M2ZmZjExZDcwZVwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpkZWNyeXB0X2RhdGE8XC9hPikoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTdlMzU1MzIyN2U0MTk3NDQ2Mzk1YTZkNTJkZTg0YmIxXCI+aGFsX3NlY3VyaXR5X2tleXNfYWxnb190eXBlX2U8XC9hPiBhbGdvLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhOTgwOGQ2ODg0MGYzZmJiNjA4MTQyYTQzNmE1YmZjMDVcIj5oYWxfc2VjdXJpdHlfa2V5c19oYXNoX2FsZ29yaXRobV9lPFwvYT4gaGFzaCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYWJiM2QwNDY4NjE4YTcwODY2NTNiNjI4ZTEwZjQ1ZjU3XCI+aGFsX3NlY3VyaXR5X2tleXNfcGFkZGluZ19hbGdvcml0aG1fZTxcL2E+IHBhZGRpbmcsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGtleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4ga2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gZGF0YSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gaXYsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpvdXQpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVjcnlwdCBkYXRhPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYWQ1ZjVkYTY1YWVhMWUzMjc0M2FjZWE1MWE5MTk3MDY0XCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OmRlY3J5cHRfZGF0YV9hdXRoPFwvYT4pKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGtleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4ga2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gZGF0YSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gaXYsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGFhZCwgY29uc3Qgc2l6ZV90IHRhZ19zaXplX2JpdHMsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHRhZywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKm91dCk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5BdXRoZW50aWNhdGVkIGRhdGEgZGVjcnlwdGlvbjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2EyYzExZTcxNTA5MGVlMzljODM3ODYwZDM4MjlkYmZhZFwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpkZXJpdmVfZWNkaDxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhZDE0M2U5MGNjODJkMjUwOWNhYjIyMDU1MzBkMzhjN2NcIj5oYWxfc2VjdXJpdHlfa2V5c19lY190eXBlX2U8XC9hPiBlY190eXBlLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBwdWJfa2V5X3gsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHB1Yl9rZXlfeSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHJpdl9rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IHByaXZfa2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gc2VjcmV0X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M8XC9hPiBzZWNyZXRfcHdkLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqc2VjcmV0X3RhZyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZXJpdmUgRUNESDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2FiYWQ3MDU1MjA2MGZkMjIxMGE3MWI1MmRjYmJmMTA3NFwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpkZXJpdmVfaHlicmlkX2tia2RmPFwvYT4pKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fa2JrZGZfX3BhcmFtc19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2tia2RmX3BhcmFtc19zPFwvYT4gcGFyYW1zLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBmaXJzdF9zZWNyZXRfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IGZpcnN0X3NlY3JldF9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHNlY29uZF9zZWNyZXRfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IHNlY29uZF9zZWNyZXRfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBrZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IGtleV9wd2QsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICprZXlfdGFnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlcml2ZSBoeWJyaWQgS0JLREY8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhNWYzOTI1NTg4Y2NlYzVmMGIyNDhiY2U5ZjBjOTg4ZjFcIj5faGFsX2JhY2tlbmRfc2VjdXJpdHlfa2V5c19mdW5jczo6ZGVyaXZlX2tia2RmPFwvYT4pKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fa2JrZGZfX3BhcmFtc19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2tia2RmX3BhcmFtc19zPFwvYT4gcGFyYW1zLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBzZWNyZXRfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IHNlY3JldF9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGtleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl9zPFwvYT4ga2V5X3B3ZCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKmtleV90YWcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVyaXZlIEtCS0RGPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTI5ZGI5ZGEzNjEwOTY2YzgwOTU2MGZlNWU0ZGYyYzRhXCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OmRlc3Ryb3lfZGF0YTxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBkYXRhX2lkKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlc3Ryb3kgZGF0YTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2FkMWRhNDMzMTk3NWE1MDRjMWIxNTM1NDU3OGM0MzQ5NVwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpkZXN0cm95X2tleTxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBrZXlfaWQpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVzdHJveSBrZXk8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhNzQ2MjM1MDZmMWRjYjhhNjc5NmQ4MzAwNDhmZjliNGRcIj5faGFsX2JhY2tlbmRfc2VjdXJpdHlfa2V5c19mdW5jczo6ZW5jYXBzdWxhdGVfa2V5PFwvYT4pKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E1NzYxZGQyZGNjZjQ0YzAwN2IxOTViMDgwMDc3YTM3YVwiPmhhbF9zZWN1cml0eV9rZXlzX2tlbV90eXBlX2U8XC9hPiBrZW1fdHlwZSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHViX2tleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4gcHViX2tleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHNoYXJlZF9zZWNyZXRfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IHNoYXJlZF9zZWNyZXRfcHdkLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqY2lwaGVydGV4dCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKnNoYXJlZF9zZWNyZXRfdGFnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVuY2Fwc3VsYXRlIGtleTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2FkYTQ0NWYyYmZiMGExMzgxYTE4ZTI4ODhhOWM4ZjhhZVwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjplbmNyeXB0X2RhdGE8XC9hPikoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTdlMzU1MzIyN2U0MTk3NDQ2Mzk1YTZkNTJkZTg0YmIxXCI+aGFsX3NlY3VyaXR5X2tleXNfYWxnb190eXBlX2U8XC9hPiBhbGdvLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhOTgwOGQ2ODg0MGYzZmJiNjA4MTQyYTQzNmE1YmZjMDVcIj5oYWxfc2VjdXJpdHlfa2V5c19oYXNoX2FsZ29yaXRobV9lPFwvYT4gaGFzaCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYWJiM2QwNDY4NjE4YTcwODY2NTNiNjI4ZTEwZjQ1ZjU3XCI+aGFsX3NlY3VyaXR5X2tleXNfcGFkZGluZ19hbGdvcml0aG1fZTxcL2E+IHBhZGRpbmcsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGtleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4ga2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gZGF0YSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gaXYsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpvdXQpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW5jcnlwdCBkYXRhPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTI1YThkNzJkOTMxNDNkNzhiNDVmYzU0MjFmYjhlZTlkXCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OmVuY3J5cHRfZGF0YV9hdXRoPFwvYT4pKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGtleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4ga2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gZGF0YSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gaXYsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGFhZCwgY29uc3Qgc2l6ZV90IHRhZ19zaXplX2JpdHMsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICp0YWcsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpvdXQpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+QXV0aGVudGljYXRlZCBkYXRhIGVuY3J5cHRpb248XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhYzJmMjIwNzhiNGYzMTYwMzRjZTU1NzYwOGViOTM5MWVcIj5faGFsX2JhY2tlbmRfc2VjdXJpdHlfa2V5c19mdW5jczo6ZW5jcnlwdF9kYXRhX2RicDxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhODFmNzdkYmEwNTA5ZjkzMTk2MjVjNTIwNzgxN2MzOTZcIj5oYWxfc2VjdXJpdHlfa2V5c19kYnBfc2NoZW1lX3ZlcnNpb25fZTxcL2E+IGRicF9zY2hlbWVfdmVyc2lvbiwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gZGF0YSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gaXYsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpvdXQpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW5jcnlwdCBkYXRhIHdpdGggREJQIGtleTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E5NGM4OTk3MDdlYTE4YTFmYmY1OTAxZTEzYWMzODM5NlwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpleHBvcnRfZGF0YTxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBkYXRhX2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fdGFnX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfdGFnX3M8XC9hPiBkYXRhX3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTYxNTI4MjFkNDQyZjg0YTJmNjEyZGU0ODgxNWE4OTgxXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV90eXBlX2U8XC9hPiBkYXRhX3R5cGUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpkYXRhKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkV4cG9ydCBkYXRhPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTAxYmI5ODg3ZWZmZWFkMjkxMzhiYTZiOTM4NjVkYjRjXCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OmV4cG9ydF93cmFwcGVkX2tleTxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhN2UzNTUzMjI3ZTQxOTc0NDYzOTVhNmQ1MmRlODRiYjFcIj5oYWxfc2VjdXJpdHlfa2V5c19hbGdvX3R5cGVfZTxcL2E+IGFsZ28sIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E5ODA4ZDY4ODQwZjNmYmI2MDgxNDJhNDM2YTViZmMwNVwiPmhhbF9zZWN1cml0eV9rZXlzX2hhc2hfYWxnb3JpdGhtX2U8XC9hPiBoYXNoLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBpdiwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gYWFkLCBjb25zdCBzaXplX3QgY3RyX2xlbl9vcl90YWdfc2l6ZV9iaXRzLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiB3cmFwcGluZ19rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IHdyYXBwaW5nX2tleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGtleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4ga2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTYxNTI4MjFkNDQyZjg0YTJmNjEyZGU0ODgxNWE4OTgxXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV90eXBlX2U8XC9hPiBrZXlfdHlwZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKndyYXBwZWRfa2V5KTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkV4cG9ydCB3cmFwcGVkIGtleTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2ExMTQ5OTYwMWI4MzBjODc4MDY4ZTE0ODhmNzBkNmQ3YlwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpnZXRfbWF4X2NodW5rX3NpemU8XC9hPikoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgc2l6ZV90ICpjaHVua19zaXplKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkdldCBtYXggY2h1bmsgc2l6ZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E4YzI1Mzc3N2E0Y2Y4YmI4MzUwYTA0ZTk4M2FhNGM0OFwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjppbXBvcnRfZGF0YTxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBkYXRhX2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M8XC9hPiBkYXRhX3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTYxNTI4MjFkNDQyZjg0YTJmNjEyZGU0ODgxNWE4OTgxXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV90eXBlX2U8XC9hPiBkYXRhX3R5cGUsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGRhdGEsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGRhdGFfZW5jcnlwdGlvbl9pdiwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gZGF0YV9lbmNyeXB0aW9uX3RhZywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKmRhdGFfdGFnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkltcG9ydCBkYXRhPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTRmNzAzZmUzMDUyNmVmMDg4ZjcxMjJlYTRjNzAxYmI2XCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OmltcG9ydF93cmFwcGVkX2tleTxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhN2UzNTUzMjI3ZTQxOTc0NDYzOTVhNmQ1MmRlODRiYjFcIj5oYWxfc2VjdXJpdHlfa2V5c19hbGdvX3R5cGVfZTxcL2E+IGFsZ28sIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E5ODA4ZDY4ODQwZjNmYmI2MDgxNDJhNDM2YTViZmMwNVwiPmhhbF9zZWN1cml0eV9rZXlzX2hhc2hfYWxnb3JpdGhtX2U8XC9hPiBoYXNoLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBpdiwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gYWFkLCBjb25zdCBzaXplX3QgY3RyX2xlbl9vcl90YWdfc2l6ZV9iaXRzLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiB3cmFwcGluZ19rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IHdyYXBwaW5nX2tleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHdyYXBwZWRfa2V5LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBrZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IGtleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E2MTUyODIxZDQ0MmY4NGEyZjYxMmRlNDg4MTVhODk4MVwiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfdHlwZV9lPFwvYT4ga2V5X3R5cGUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICprZXlfdGFnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkltcG9ydCB3cmFwcGVkIGtleTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5ib29sKCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhYjZkZDZmNzIzNzY3N2VmNzU2MjkwZGNjZjMwODdlMGFcIj5faGFsX2JhY2tlbmRfc2VjdXJpdHlfa2V5c19mdW5jczo6aXNfc2Vfc3VwcG9ydGVkPFwvYT4pKHZvaWQpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q2hlY2sgaWYgU0UgYmFja2VuZCBpcyBzdXBwb3J0ZWQ8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+Ym9vbCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYWM1YmY5YjcwMjk0MzRhOTcwNmRjNTJlMmI3MGU4OGJhXCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OmlzX3R6X3N1cHBvcnRlZDxcL2E+KSh2b2lkKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkNoZWNrIGlmIFRaIGJhY2tlbmQgaXMgc3VwcG9ydGVkPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTljZjY1ZjUwZjNkMmM1YjU0NWJhYzkwNTBhODdkZWU2XCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OnVud3JhcF9jb25jYXRlbmF0ZWRfZGF0YTxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhN2UzNTUzMjI3ZTQxOTc0NDYzOTVhNmQ1MmRlODRiYjFcIj5oYWxfc2VjdXJpdHlfa2V5c19hbGdvX3R5cGVfZTxcL2E+IGFsZ28sIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E5ODA4ZDY4ODQwZjNmYmI2MDgxNDJhNDM2YTViZmMwNVwiPmhhbF9zZWN1cml0eV9rZXlzX2hhc2hfYWxnb3JpdGhtX2U8XC9hPiBoYXNoLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiB3cmFwcGluZ19rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IHdyYXBwaW5nX2tleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHdyYXBwZWRfa2V5LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBrZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IGtleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E2MTUyODIxZDQ0MmY4NGEyZjYxMmRlNDg4MTVhODk4MVwiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfdHlwZV9lPFwvYT4ga2V5X3R5cGUsIGNvbnN0IHNpemVfdCBrZXlfc2l6ZV9iaXRzLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqZGF0YSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKmtleV90YWcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VW53cmFwIGNvbmNhdGVuYXRlZCBkYXRhPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTliY2UxNDlkMmZlMTIwNTBiZTQ4MzVlZWMzNjEwNjEyXCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OnZlcmlmeV9zaWduYXR1cmU8XC9hPikoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTdlMzU1MzIyN2U0MTk3NDQ2Mzk1YTZkNTJkZTg0YmIxXCI+aGFsX3NlY3VyaXR5X2tleXNfYWxnb190eXBlX2U8XC9hPiBhbGdvLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhOTgwOGQ2ODg0MGYzZmJiNjA4MTQyYTQzNmE1YmZjMDVcIj5oYWxfc2VjdXJpdHlfa2V5c19oYXNoX2FsZ29yaXRobV9lPFwvYT4gaGFzaCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHViX2tleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4gcHViX2tleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IG1lc3NhZ2UsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHNpZ25hdHVyZSk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5WZXJpZnkgc2lnbmF0dXJlPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTE2MmI3MTVkMWI0NDY0MjUwNmJjOTM1N2NhZGQ5Y2E4XCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OndyYXBfY29uY2F0ZW5hdGVkX2RhdGE8XC9hPikoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTdlMzU1MzIyN2U0MTk3NDQ2Mzk1YTZkNTJkZTg0YmIxXCI+aGFsX3NlY3VyaXR5X2tleXNfYWxnb190eXBlX2U8XC9hPiBhbGdvLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhOTgwOGQ2ODg0MGYzZmJiNjA4MTQyYTQzNmE1YmZjMDVcIj5oYWxfc2VjdXJpdHlfa2V5c19oYXNoX2FsZ29yaXRobV9lPFwvYT4gaGFzaCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gd3JhcHBpbmdfa2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fdGFnX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfdGFnX3M8XC9hPiB3cmFwcGluZ19rZXlfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBrZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IGtleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGRhdGEsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICp3cmFwcGVkX2tleSk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5XcmFwIGNvbmNhdGVuYXRlZCBkYXRhPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnN0cnVjdCBoYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIHNlY3VyaXR5IGtleXMgY29udGV4dC48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRUNVUklUWV9LRVlTIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5EYXRhIEZpZWxkczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD52b2lkICo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2EyNjQ5YWE0Mzc4OWRkMzRjNDU4NjQ1MzI0OTU4ZmJmN1wiPmN0eDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD52b2lkICo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E2ZDcxNmZjMDM4YjRmZjFmMGZkYTRiZmE5YzRlZTE4OVwiPnNlc3Npb248XC9hPjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0xXCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMVwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dm9pZCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhMjY0OWFhNDM3ODlkZDM0YzQ1ODY0NTMyNDk1OGZiZjdcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M6OmN0eDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+QmFja2VuZCBjb250ZXh0PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnZvaWQqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTZkNzE2ZmMwMzhiNGZmMWYwZmRhNGJmYTljNGVlMTg5XCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zOjpzZXNzaW9uPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5CYWNrZW5kIHNlc3Npb248XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IGhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlN0cnVjdHVyZSBmb3IgYmluYXJ5IGRhdGEgZXhjaGFuZ2UuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfU0VDVVJJVFlfS0VZUyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+dW5zaWduZWQgY2hhciAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhMDA5ODhmY2NmMGZlZDgwYTcxMTNlYmM3ZjIwNDg2ZjNcIj5idWZmZXI8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+c2l6ZV90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhMTlhMmQwMzA5YzQ2NzIyYzAxNTM0ZmM0ZGNiZWU2NmFcIj5sZW5ndGg8XC9hPjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0yXCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMlwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dW5zaWduZWQgY2hhciogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhMDA5ODhmY2NmMGZlZDgwYTcxMTNlYmM3ZjIwNDg2ZjNcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M6OmJ1ZmZlcjxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+QmluYXJ5IGRhdGEgYnVmZmVyPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnNpemVfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2ExOWEyZDAzMDljNDY3MjJjMDE1MzRmYzRkY2JlZTY2YVwiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczo6bGVuZ3RoPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5CaW5hcnkgZGF0YSBsZW5ndGg8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IGhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIHBhc3N3b3JkIGFuZCBpdiBwYXJhbXMgZXhjaGFuZ2UuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfU0VDVVJJVFlfS0VZUyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2EzN2YwYTUwOGIwN2U5NmQ5N2RiMWU5MjA3YmI4YjkzOFwiPnBhc3N3b3JkPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhOThjMGNlYjMwM2MyZTBmYzA3MzJlOThkYzM2YjBmZThcIj5pdjxcL2E+PFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPGhyIFwvPlxuPGg0IGlkPVwiY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTNcIj48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0zXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5GaWVsZCBEb2N1bWVudGF0aW9uPFwvaDQ+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E5OGMwY2ViMzAzYzJlMGZjMDczMmU5OGRjMzZiMGZlOFwiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M6Oml2PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5Jbml0aWFsaXphdGlvbiB2ZWN0b3IgYnVmZmVyPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTM3ZjBhNTA4YjA3ZTk2ZDk3ZGIxZTkyMDdiYjhiOTM4XCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczo6cGFzc3dvcmQ8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlBhc3N3b3JkIGJ1ZmZlcjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgaGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfdGFnX3M8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIHBhc3N3b3JkLCBpdiBhbmQgdGFnIHBhcmFtcyBleGNoYW5nZS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRUNVUklUWV9LRVlTIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5EYXRhIEZpZWxkczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYWVmYTQ1YWViMTU3ZGJiNWYxN2VkNTg0NzIwZTg5OTUwXCI+cGFzc3dvcmQ8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2FkNjY4YzY1ZjA5NmRkODI0YThkMWZmMTEzZThkM2I3NFwiPml2PFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhZWU5ZGI4YzUxYjRlNDRlMGEwMTg1YzZlZGQ4MzlmNWZcIj50YWc8XC9hPjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi00XCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tNFwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhZDY2OGM2NWYwOTZkZDgyNGE4ZDFmZjExM2U4ZDNiNzRcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczo6aXY8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkluaXRpYWxpemF0aW9uIHZlY3RvciBidWZmZXI8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhZWZhNDVhZWIxNTdkYmI1ZjE3ZWQ1ODQ3MjBlODk5NTBcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczo6cGFzc3dvcmQ8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlBhc3N3b3JkIGJ1ZmZlcjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2FlZTlkYjhjNTFiNGU0NGUwYTAxODVjNmVkZDgzOWY1ZlwiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zOjp0YWc8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlRhZyBidWZmZXI8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IGhhbF9zZWN1cml0eV9rZXlzX2tia2RmX3BhcmFtc19zPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBLQktERiBwYXJhbXMgZXhjaGFuZ2UuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfU0VDVVJJVFlfS0VZUyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYWNiNmU1MDM0ZmNhZjYwYzlhYTlkODVhN2Q1MjAwMTk1XCI+aGFsX3NlY3VyaXR5X2tleXNfa2RmX3ByZl90eXBlX2U8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTQ2OWE3M2VhOTRlMmNlZTAyZDZhNDhjY2ZiZWU0MzEyXCI+cHJmPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnNpemVfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYWE0MTg5YWViZjYyOTgyY2M0ZWIwZTlhNDNlZDRjZjU3XCI+bGVuZ3RoPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E4NDlmZmE1YjA3ZGI3NDlhMGY4ZjBiZmQ2MTc1YTJhMFwiPmhhbF9zZWN1cml0eV9rZXlzX2tia2RmX21vZGVfZTxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhZjY1NDBiMTM4ZTRjMzEwOWE5Y2ViMDcwYjRmODgzOGZcIj5tb2RlPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhYTZiODA2MjYwN2VjNWNjYTNkN2E0ODYyNTIzNTVjYmRcIj5sYWJlbDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTAwYjA0ODc5MWZiNGRlOWUxOWY1NGY3N2IzMDkwOWUyXCI+Y29udGV4dDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYWFjYjFjOTQ3MDA4OGJkNTVmZTZiMjg5ZjJlMjIwOWE4XCI+Zml4ZWQ8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYWIxZDIxODliMTgzY2E4ZDZhM2M3MTM2MjdmYTU1M2YyXCI+aGFsX3NlY3VyaXR5X2tleXNfa2JrZGZfY291bnRlcl9sb2NhdGlvbl9lPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2FjYTVkOTk1NDQxMzdlNWE4NzVhZjAxMjZhYTc4NGJmZlwiPmxvY2F0aW9uPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnNpemVfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYWM1YWZmMDkzMGE3NWZhM2U3NDcyOGQ4ODkyZmM1MmEzXCI+cmxlbjxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5zaXplX3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E3YzJhOWY2MzliYTE1NjJkOTU0YTNkYTcwZWRmYjI0ZVwiPmxsZW48XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+Ym9vbDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTljMmRhNmU3MjYxOTU4N2E0NzZjYWRlYzgzM2RkYTRjXCI+bm9fc2VwYXJhdG9yPFwvYT48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDQgaWQ9XCJjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tNVwiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTVcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkZpZWxkIERvY3VtZW50YXRpb248XC9oND5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTAwYjA0ODc5MWZiNGRlOWUxOWY1NGY3N2IzMDkwOWUyXCI+aGFsX3NlY3VyaXR5X2tleXNfa2JrZGZfcGFyYW1zX3M6OmNvbnRleHQ8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gdGhlIGRlcml2ZWQga2V5PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYWFjYjFjOTQ3MDA4OGJkNTVmZTZiMjg5ZjJlMjIwOWE4XCI+aGFsX3NlY3VyaXR5X2tleXNfa2JrZGZfcGFyYW1zX3M6OmZpeGVkPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5LQktERiBmaXhlZCBpbnB1dCByZXBsYWNpbmcgY29udGV4dCBhbmQgbGFiZWw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhYTZiODA2MjYwN2VjNWNjYTNkN2E0ODYyNTIzNTVjYmRcIj5oYWxfc2VjdXJpdHlfa2V5c19rYmtkZl9wYXJhbXNfczo6bGFiZWw8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlB1cnBvc2UgZm9yIHRoZSBkZXJpdmVkIGtleTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zaXplX3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhYTQxODlhZWJmNjI5ODJjYzRlYjBlOWE0M2VkNGNmNTdcIj5oYWxfc2VjdXJpdHlfa2V5c19rYmtkZl9wYXJhbXNfczo6bGVuZ3RoPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5MZW5ndGggb2YgdGhlIGRlcml2ZWQga2V5IGluIGJ5dGVzPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnNpemVfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E3YzJhOWY2MzliYTE1NjJkOTU0YTNkYTcwZWRmYjI0ZVwiPmhhbF9zZWN1cml0eV9rZXlzX2tia2RmX3BhcmFtc19zOjpsbGVuPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TcGVjaWZpZXMgdGhlIGV4dGVudCBvZiB0aGUgbGVuZ3RoIHN1ZmZpeCByZXByZXNlbnRhdGlvbiBpbiBiaXRzPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2FiMWQyMTg5YjE4M2NhOGQ2YTNjNzEzNjI3ZmE1NTNmMlwiPmhhbF9zZWN1cml0eV9rZXlzX2tia2RmX2NvdW50ZXJfbG9jYXRpb25fZTxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYWNhNWQ5OTU0NDEzN2U1YTg3NWFmMDEyNmFhNzg0YmZmXCI+aGFsX3NlY3VyaXR5X2tleXNfa2JrZGZfcGFyYW1zX3M6OmxvY2F0aW9uPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TcGVjaWZpZXMgbG9jYXRpb24gb2YgdGhlIGNvdW50ZXI8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTg0OWZmYTViMDdkYjc0OWEwZjhmMGJmZDYxNzVhMmEwXCI+aGFsX3NlY3VyaXR5X2tleXNfa2JrZGZfbW9kZV9lPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhZjY1NDBiMTM4ZTRjMzEwOWE5Y2ViMDcwYjRmODgzOGZcIj5oYWxfc2VjdXJpdHlfa2V5c19rYmtkZl9wYXJhbXNfczo6bW9kZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+S0RGIG1vZGU8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+Ym9vbCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E5YzJkYTZlNzI2MTk1ODdhNDc2Y2FkZWM4MzNkZGE0Y1wiPmhhbF9zZWN1cml0eV9rZXlzX2tia2RmX3BhcmFtc19zOjpub19zZXBhcmF0b3I8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNraXAgdGhlIHplcm8gb2N0ZXQgc2VwYXJhdG9yIGJldHdlZW4gbGFiZWwgYW5kIGNvbnRleHQ8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYWNiNmU1MDM0ZmNhZjYwYzlhYTlkODVhN2Q1MjAwMTk1XCI+aGFsX3NlY3VyaXR5X2tleXNfa2RmX3ByZl90eXBlX2U8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E0NjlhNzNlYTk0ZTJjZWUwMmQ2YTQ4Y2NmYmVlNDMxMlwiPmhhbF9zZWN1cml0eV9rZXlzX2tia2RmX3BhcmFtc19zOjpwcmY8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlBzZXVkby1yYW5kb20gZnVuY3Rpb248XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c2l6ZV90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYWM1YWZmMDkzMGE3NWZhM2U3NDcyOGQ4ODkyZmM1MmEzXCI+aGFsX3NlY3VyaXR5X2tleXNfa2JrZGZfcGFyYW1zX3M6OnJsZW48XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNwZWNpZmllcyB0aGUgbGVuZ3RoIG9mIHRoZSBjb3VudGVyIHJlcHJlc2VudGF0aW9uIGluIGJpdHM8XC9wPlxuPGhyIFwvPlxuPGgyIGlkPVwiY29udGVudC10eXBlZGVmLWRvY3VtZW50YXRpb25cIj48YSBocmVmPVwiI2NvbnRlbnQtdHlwZWRlZi1kb2N1bWVudGF0aW9uXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5UeXBlZGVmIERvY3VtZW50YXRpb248XC9oMj5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgc3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0X19oYWxfX2JhY2tlbmRfX3NlY3VyaXR5X19rZXlzX19mdW5jc1wiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTZhMTdlN2U0MTI3N2UwYWFmMTA1MDgyMDE3NGU4OTExXCI+aGFsX2JhY2tlbmRfc2VjdXJpdHlfa2V5c19mdW5jczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBzZWN1cml0eSBrZXlzIGZ1bmN0aW9ucy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRUNVUklUWV9LRVlTIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHNpemVfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhNWYzOGI1NjU4ZDQ0ZjQ0MGM1NTVlYjY2NmVkZjJjOTlcIj5oYWxfc2VjdXJpdHlfa2V5c19jaXBoZXJfY29udGV4dF90PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5UeXBlIGZvciBjaXBoZXIgY29udGV4dC48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRUNVUklUWV9LRVlTIDEuMDxcL3A+XG48aHIgXC8+XG48aDIgaWQ9XCJjb250ZW50LWVudW1lcmF0aW9uLXR5cGUtZG9jdW1lbnRhdGlvblwiPjxhIGhyZWY9XCIjY29udGVudC1lbnVtZXJhdGlvbi10eXBlLWRvY3VtZW50YXRpb25cIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkVudW1lcmF0aW9uIFR5cGUgRG9jdW1lbnRhdGlvbjxcL2gyPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhN2UzNTUzMjI3ZTQxOTc0NDYzOTVhNmQ1MmRlODRiYjFcIj5oYWxfc2VjdXJpdHlfa2V5c19hbGdvX3R5cGVfZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIGFsZ29yaXRobSB0eXBlLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFQ1VSSVRZX0tFWVMgMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfQUxHT19UWVBFX0FFU19DVFI8XC9lbT4gfCBBRVMgQ1RSIHxcbnwgLS0tIHwgLS0tIHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0FMR09fVFlQRV9BRVNfQ0JDPFwvZW0+IHwgQUVTIENCQyB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19BTEdPX1RZUEVfQUVTX0dDTTxcL2VtPiB8IEFFUyBHQ00gfFxufCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfQUxHT19UWVBFX0FFU19DRkI8XC9lbT4gfCBBRVMgQ0ZCIHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0FMR09fVFlQRV9SU0FfT0FFUDxcL2VtPiB8IFJTQSBPQUVQIHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0FMR09fVFlQRV9SU0E8XC9lbT4gfCBSU0EgfFxufCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfQUxHT19UWVBFX0RTQTxcL2VtPiB8IERTQSB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19BTEdPX1RZUEVfRUNEU0E8XC9lbT4gfCBFQ0RTQSB8PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmVudW0gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTYxNTI4MjFkNDQyZjg0YTJmNjEyZGU0ODgxNWE4OTgxXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV90eXBlX2U8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVudW1lcmF0aW9uIGZvciBkYXRhIHR5cGUuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfU0VDVVJJVFlfS0VZUyAxLjA8XC9wPlxuPHA+PHN0cm9uZz5FbnVtZXJhdG9yOjxcL3N0cm9uZz5cbjogICB8IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19EQVRBX1RZUEVfQklOQVJZX0RBVEE8XC9lbT4gfCBCaW5hcnkgZGF0YSB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19EQVRBX1RZUEVfS0VZX0FFUzxcL2VtPiB8IEFFUyBrZXkgfFxufCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfREFUQV9UWVBFX0tFWV9SU0FfUFVCTElDPFwvZW0+IHwgUHVibGljIFJTQSBrZXkgfFxufCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfREFUQV9UWVBFX0tFWV9SU0FfUFJJVkFURTxcL2VtPiB8IFByaXZhdGUgUlNBIGtleSB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19EQVRBX1RZUEVfS0VZX0RTQV9QVUJMSUM8XC9lbT4gfCBQdWJsaWMgRFNBIGtleSB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19EQVRBX1RZUEVfS0VZX0RTQV9QUklWQVRFPFwvZW0+IHwgUHJpdmF0ZSBEU0Ega2V5IHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0RBVEFfVFlQRV9LRVlfRUNEU0FfUFVCTElDPFwvZW0+IHwgUHVibGljIEVDRFNBIGtleSB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19EQVRBX1RZUEVfS0VZX0VDRFNBX1BSSVZBVEU8XC9lbT4gfCBQcml2YXRlIEVDRFNBIGtleSB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19EQVRBX1RZUEVfS0VZX0tFTV9QVUJMSUM8XC9lbT4gfCBQdWJsaWMgS0VNIGtleSB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19EQVRBX1RZUEVfS0VZX0tFTV9QUklWQVRFPFwvZW0+IHwgUHJpdmF0ZSBLRU0ga2V5IHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhODFmNzdkYmEwNTA5ZjkzMTk2MjVjNTIwNzgxN2MzOTZcIj5oYWxfc2VjdXJpdHlfa2V5c19kYnBfc2NoZW1lX3ZlcnNpb25fZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIERCUCBzY2hlbWUgdmVyc2lvbi48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRUNVUklUWV9LRVlTIDEuMDxcL3A+XG48cD48c3Ryb25nPkVudW1lcmF0b3I6PFwvc3Ryb25nPlxuOiAgIHwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0RCUF9TQ0hFTUVfVkVSU0lPTl8xPFwvZW0+IHwgRGF0YWJhc2UgcHJvdGVjdGlvbiBzY2hlbWUgdmVyc2lvbiAxIChBRVMtMjU2LUNCQykgfFxufCAtLS0gfCAtLS0gfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5lbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2FkMTQzZTkwY2M4MmQyNTA5Y2FiMjIwNTUzMGQzOGM3Y1wiPmhhbF9zZWN1cml0eV9rZXlzX2VjX3R5cGVfZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIGVsbGlwdGljIGN1cnZlIHR5cGUuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfU0VDVVJJVFlfS0VZUyAxLjA8XC9wPlxuPHA+PHN0cm9uZz5FbnVtZXJhdG9yOjxcL3N0cm9uZz5cbjogICB8IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19FQ19UWVBFX1BSSU1FMTkyVjE8XC9lbT4gfCBQUklNRTE5MlYxIHxcbnwgLS0tIHwgLS0tIHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0VDX1RZUEVfUFJJTUUyNTZWMTxcL2VtPiB8IFBSSU1FMjU2VjEgfFxufCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfRUNfVFlQRV9TRUNQMzg0UjE8XC9lbT4gfCBTRUNQMzg0UjEgfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5lbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E5MWUzYzE4NDVlMGNiNjAxYWU2Yjk1MWUyMzBlYjFjZlwiPmhhbF9zZWN1cml0eV9rZXlzX2Vycm9yX2U8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVudW1lcmF0aW9uIGZvciBzZWN1cml0eSBrZXlzIGVycm9ycy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRUNVUklUWV9LRVlTIDEuMDxcL3A+XG48cD48c3Ryb25nPkVudW1lcmF0b3I6PFwvc3Ryb25nPlxuOiAgIHwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0VSUk9SX05PTkU8XC9lbT4gfCBTdWNjZXNzZnVsIHxcbnwgLS0tIHwgLS0tIHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0VSUk9SX0lOVkFMSURfUEFSQU1FVEVSPFwvZW0+IHwgSW52YWxpZCBpbnB1dCBwYXJhbWV0ZXIgfFxufCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfRVJST1JfT1VUX09GX01FTU9SWTxcL2VtPiB8IE91dCBvZiBtZW1vcnkgfFxufCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfRVJST1JfTk9UX1NVUFBPUlRFRDxcL2VtPiB8IE9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0VSUk9SX0FVVEhFTlRJQ0FUSU9OX0ZBSUxFRDxcL2VtPiB8IEF1dGhlbnRpY2F0aW9uIGZhaWxlZCB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19FUlJPUl9WRVJJRklDQVRJT05fRkFJTEVEPFwvZW0+IHwgVmVyaWZpY2F0aW9uIGZhaWxlZCB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19FUlJPUl9JTlRFUk5BTF9FUlJPUjxcL2VtPiB8IEludGVybmFsIGVycm9yIHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0VSUk9SX1RBUkdFVF9ERUFEPFwvZW0+IHwgVGFyZ2V0IGRlYWQgfFxufCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfRVJST1JfTk9fS0VZPFwvZW0+IHwgTm8ga2V5IGF2YWlsYWJsZSB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19FUlJPUl9OT1RfUEVSTUlUVEVEPFwvZW0+IHwgT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5lbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E5ODA4ZDY4ODQwZjNmYmI2MDgxNDJhNDM2YTViZmMwNVwiPmhhbF9zZWN1cml0eV9rZXlzX2hhc2hfYWxnb3JpdGhtX2U8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVudW1lcmF0aW9uIGZvciBoYXNoIGFsZ29yaXRobS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRUNVUklUWV9LRVlTIDEuMDxcL3A+XG48cD48c3Ryb25nPkVudW1lcmF0b3I6PFwvc3Ryb25nPlxuOiAgIHwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0hBU0hfQUxHT1JJVEhNX05PTkU8XC9lbT4gfCBOb25lIHxcbnwgLS0tIHwgLS0tIHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0hBU0hfQUxHT1JJVEhNX1NIQTE8XC9lbT4gfCBTSEExIHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0hBU0hfQUxHT1JJVEhNX1NIQTI1NjxcL2VtPiB8IFNIQTI1NiB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19IQVNIX0FMR09SSVRITV9TSEEzODQ8XC9lbT4gfCBTSEEzODQgfFxufCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfSEFTSF9BTEdPUklUSE1fU0hBNTEyPFwvZW0+IHwgU0hBNTEyIHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhYjFkMjE4OWIxODNjYThkNmEzYzcxMzYyN2ZhNTUzZjJcIj5oYWxfc2VjdXJpdHlfa2V5c19rYmtkZl9jb3VudGVyX2xvY2F0aW9uX2U8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVudW1lcmF0aW9uIGZvciBLQktERiBjb3VudGVyIGxvY2F0aW9uLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFQ1VSSVRZX0tFWVMgMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfS0JLREZfQ09VTlRFUl9MT0NBVElPTl9CRUZPUkVfRklYRUQ8XC9lbT4gfCBCZWZvcmUgZml4ZWQgfFxufCAtLS0gfCAtLS0gfFxufCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfS0JLREZfQ09VTlRFUl9MT0NBVElPTl9BRlRFUl9GSVhFRDxcL2VtPiB8IEFmdGVyIGZpeGVkIHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0tCS0RGX0NPVU5URVJfTE9DQVRJT05fTUlERExFX0ZJWEVEPFwvZW0+IHwgTWlkZGxlIGZpeGVkIHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhODQ5ZmZhNWIwN2RiNzQ5YTBmOGYwYmZkNjE3NWEyYTBcIj5oYWxfc2VjdXJpdHlfa2V5c19rYmtkZl9tb2RlX2U8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVudW1lcmF0aW9uIGZvciBLQktERiBtb2RlLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFQ1VSSVRZX0tFWVMgMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfS0JLREZfTU9ERV9DT1VOVEVSPFwvZW0+IHwgQ291bnRlciBtb2RlIHxcbnwgLS0tIHwgLS0tIHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhY2I2ZTUwMzRmY2FmNjBjOWFhOWQ4NWE3ZDUyMDAxOTVcIj5oYWxfc2VjdXJpdHlfa2V5c19rZGZfcHJmX3R5cGVfZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIEtERiBQUkYgdHlwZS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRUNVUklUWV9LRVlTIDEuMDxcL3A+XG48cD48c3Ryb25nPkVudW1lcmF0b3I6PFwvc3Ryb25nPlxuOiAgIHwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX1BSRl9UWVBFX0hNQUNfU0hBMjU2PFwvZW0+IHwgSE1BQ19TSEEyNTYgfFxufCAtLS0gfCAtLS0gfFxufCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfUFJGX1RZUEVfSE1BQ19TSEEzODQ8XC9lbT4gfCBITUFDX1NIQTM4NCB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19QUkZfVFlQRV9ITUFDX1NIQTUxMjxcL2VtPiB8IEhNQUNfU0hBNTEyIHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhNTc2MWRkMmRjY2Y0NGMwMDdiMTk1YjA4MDA3N2EzN2FcIj5oYWxfc2VjdXJpdHlfa2V5c19rZW1fdHlwZV9lPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbnVtZXJhdGlvbiBmb3IgTUwgS0VNIHR5cGUuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfU0VDVVJJVFlfS0VZUyAxLjA8XC9wPlxuPHA+PHN0cm9uZz5FbnVtZXJhdG9yOjxcL3N0cm9uZz5cbjogICB8IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19NTF9LRU1fNzY4PFwvZW0+IHwgTUwgS0VNIDc2OCB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19NTF9LRU1fMTAyNDxcL2VtPiB8IE1MIEtFTSAxMDI0IHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhYmIzZDA0Njg2MThhNzA4NjY1M2I2MjhlMTBmNDVmNTdcIj5oYWxfc2VjdXJpdHlfa2V5c19wYWRkaW5nX2FsZ29yaXRobV9lPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbnVtZXJhdGlvbiBmb3IgcGFkZGluZyBhbGdvcml0aG0uPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfU0VDVVJJVFlfS0VZUyAxLjA8XC9wPlxuPHA+PHN0cm9uZz5FbnVtZXJhdG9yOjxcL3N0cm9uZz5cbjogICB8IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19QQURESU5HX0FMR09SSVRITV9OT05FPFwvZW0+IHwgTm9uZSB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19QQURESU5HX0FMR09SSVRITV9QS0NTNzxcL2VtPiB8IFBLQ1MjNyB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19QQURESU5HX0FMR09SSVRITV9JU085Nzk3X00yPFwvZW0+IHwgSVNPOTc5NyBtZXRob2QgMiBwYWRkaW5nIHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX1BBRERJTkdfQUxHT1JJVEhNX1BLQ1MxPFwvZW0+IHwgUEtDUyMxIHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX1BBRERJTkdfQUxHT1JJVEhNX1g5MzE8XC9lbT4gfCBYMzkxIHw8XC9wPlxuPGhyIFwvPlxuPHA+RXhjZXB0IGFzIG5vdGVkLCB0aGlzIGNvbnRlbnQgLSBleGNsdWRpbmcgdGhlIENvZGUgRXhhbXBsZXMgLSBpcyBsaWNlbnNlZCB1bmRlciA8YSBocmVmPVwiaHR0cDpcL1wvY3JlYXRpdmVjb21tb25zLm9yZ1wvbGljZW5zZXNcL2J5XC8zLjBcL2xlZ2FsY29kZVwiPkNyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24gMy4wPFwvYT5cbmFuZCBhbGwgb2YgdGhlIENvZGUgRXhhbXBsZXMgY29udGFpbmVkIGhlcmVpbiBhcmUgbGljZW5zZWQgdW5kZXIgPGEgaHJlZj1cImh0dHBzOlwvXC93d3cudGl6ZW4ub3JnXC9ic2QtMy1jbGF1c2UtbGljZW5zZVwiPkJTRC0zLUNsYXVzZTxcL2E+LjxiciBcLz5cbkZvciBkZXRhaWxzLCBzZWUgdGhlIDxhIGhyZWY9XCJodHRwczpcL1wvd3d3LnRpemVuLm9yZ1wvY29udGVudC1saWNlbnNlXCI+Q29udGVudCBMaWNlbnNlPFwvYT4uPFwvcD5cbiIsInRhYmxlX29mX2NvbnRlbnQiOiI8dWwgY2xhc3M9XCJ0YWJsZS1vZi1jb250ZW50c1wiPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1yZXF1aXJlZC1oZWFkZXJcIj5SZXF1aXJlZCBIZWFkZXI8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1vdmVydmlld1wiPk92ZXJ2aWV3PFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZGF0YS1zdHJ1Y3R1cmUtZG9jdW1lbnRhdGlvblwiPkRhdGEgU3RydWN0dXJlIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uXCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMVwiPkZpZWxkIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTJcIj5GaWVsZCBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0zXCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tNFwiPkZpZWxkIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTVcIj5GaWVsZCBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtdHlwZWRlZi1kb2N1bWVudGF0aW9uXCI+VHlwZWRlZiBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZW51bWVyYXRpb24tdHlwZS1kb2N1bWVudGF0aW9uXCI+RW51bWVyYXRpb24gVHlwZSBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxcL3VsPlxuIiwidGl0bGUiOiJUaXplbiBIQUwgQVBJOiBLZXlzIiwicmF3IjpudWxsfSx7ImNsYXNzIjoiQXBwXFxTZXJ2aWNlc1xcRG9jdW1lbnRhdGlvblxcRGF0YVxcUmVuZGVyZWRNYXJrZG93biIsInMiOiJ3cmJsIn1dfSx7InMiOiJhcnIifV19LCJtZW1vIjp7ImlkIjoiNHFaTVVGQlR6ejRYZ1hqRGhUS0ciLCJuYW1lIjoiX19tb3VudFBhcmFtc0NvbnRhaW5lciIsInBhdGgiOiJkb2NzXC9wbGF0Zm9ybVwvaGFsXC9hcGlcLzEuMC4wXC9ncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUiLCJtZXRob2QiOiJHRVQiLCJyZWxlYXNlIjoiYS1hLWEifSwiY2hlY2tzdW0iOiI2NjIzMGFmMDUzNjY2ZmZmMDdiMDBmM2JiNGIyNjg0ZTc5ZDE3NzZiZWU5Mzg3ZTMzMWE3NDMwYTMxYzMxNTEwIn0=')" >
Content License<\/a>.<\/p>\n","table_of_content":"<ul class=\"table-of-contents\">\n<li><a href=https://samsungtizenos.com/"#content-required-header\">Required Header<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-overview\">Overview<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-data-structure-documentation\">Data Structure Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-1\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-2\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-3\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-4\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-5\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-typedef-documentation\">Typedef Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-enumeration-type-documentation\">Enumeration Type Documentation<\/a><\/li>\n<\/ul>\n","title":"Tizen HAL API: Keys","raw":null},{"class":"App\\Services\\Documentation\\Data\\RenderedMarkdown","s":"wrbl"}]},"memo":{"id":"wA6i3x1DrUjNAC9v4SQN","name":"documentation::article","path":"docs\/platform\/hal\/api\/1.0.0\/group__HALAPI__HAL__SECURITY__KEYS__MODULE","method":"GET","release":"a-a-a","children":[],"scripts":[],"assets":[],"lazyLoaded":false,"lazyIsolated":true,"errors":[],"locale":"en","islands":[]},"checksum":"f4b23ade4724085b7609880a436c70f2e99d151d24e6aa08787d797394f39e06"}" wire:effects="[]" wire:id="wA6i3x1DrUjNAC9v4SQN" wire:name="documentation::article" x-init="$wire.__lazyLoad('eyJkYXRhIjp7ImZvck1vdW50IjpbeyJtYXJrZG93biI6W3siYm9keSI6IjxoMSBpZD1cImNvbnRlbnQtdGl6ZW4taGFsLWFwaS1rZXlzXCI+PGEgaHJlZj1cIiNjb250ZW50LXRpemVuLWhhbC1hcGkta2V5c1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+VGl6ZW4gSEFMIEFQSTogS2V5czxcL2gxPjxkaXYgZGF0YS1rbm93bGVkZ2UtYmFzZS1tZXRhZGF0YT48XC9kaXY+XG48aHIgXC8+XG48cD5UaGUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZFwiPktleXM8XC9hPiBwcm92aWRlcyBmdW5jdGlvbnMgdG8gaGFuZGxlIGtleXMgYW5kIGRhdGEgcmVsYXRlZCBvcGVyYXRpb25zLjxcL3A+XG48aDIgaWQ9XCJjb250ZW50LXJlcXVpcmVkLWhlYWRlclwiPjxhIGhyZWY9XCIjY29udGVudC1yZXF1aXJlZC1oZWFkZXJcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlJlcXVpcmVkIEhlYWRlcjxcL2gyPlxuPHA+I2luY2x1ZGUgJmx0O2hhbFwvaGFsLXNlY3VyaXR5LWtleXMuaCZndDs8XC9wPlxuPGgyIGlkPVwiY29udGVudC1vdmVydmlld1wiPjxhIGhyZWY9XCIjY29udGVudC1vdmVydmlld1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+T3ZlcnZpZXc8XC9oMj5cbjxwPlRoZSBTZWN1cml0eSBLZXlzIHByb3ZpZGVzIGZ1bmN0aW9ucyB0byBoYW5kbGUga2V5cyBhbmQgZGF0YSByZWxhdGVkIG9wZXJhdGlvbnM8XC9wPlxuPHA+VGhlIFNlY3VyaXR5IEtleXMgZnVuY3Rpb25zIHByb3ZpZGUgbWV0aG9kcyB0bzo8XC9wPlxuPHVsPlxuPGxpPkNyZWF0ZSBpbml0aWFsaXphdGlvbiB2ZWN0b3I8XC9saT5cbjxsaT5DcmVhdGVcL0Rlc3Ryb3kga2V5cyAoQUVTLCBSU0EsIERTQSwgRUNEU0EsIEtFTSk8XC9saT5cbjxsaT5JbXBvcnRcL0V4cG9ydCB3cmFwcGVkIGtleXM8XC9saT5cbjxsaT5FbmNhcHN1bGF0ZVwvRGVjYXBzdWxhdGUgS0VNIGtleXM8XC9saT5cbjxsaT5JbXBvcnRcL0V4cG9ydCBkYXRhPFwvbGk+XG48bGk+V3JhcFwvVW53cmFwIGNvbmNhdGVuYXRlZCBkYXRhPFwvbGk+XG48bGk+RW5jcnlwdFwvRGVjcnlwdCBkYXRhPFwvbGk+XG48bGk+SW5pdGlhbGl6ZSBhbmQgcGVyZm9ybSBjaXBoZXIgb3BlcmF0aW9uczxcL2xpPlxuPGxpPkNyZWF0ZSBhbmQgdmVyaWZ5IHNpZ25hdHVyZXM8XC9saT5cbjxsaT5EZXJpdmUga2V5cyAoRUNESCwgS0JLREYsIEtCS0RGIGh5YnJpZCk8XC9saT5cbjxsaT5HZXQga2V5IGNodW5rIHNpemU8XC9saT5cbjxsaT5DcmVhdGUgREJQIGtleTxcL2xpPlxuPGxpPkVuY3J5cHQgZGF0YSB3aXRoIERCUCBrZXk8XC9saT5cbjxcL3VsPlxuPHA+Rm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhlIFNlY3VyaXR5IEtleXMgZmVhdHVyZXMgYW5kIHRoZSBtYWNyb3MsIHNlZSBIQUwgU2VjdXJpdHkgcHJvZ3JhbW1pbmcgZ3VpZGVzIGFuZCB0dXRvcmlhbHMuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPlR5cGVkZWZzPFwvdGg+XG48dGg+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPnR5cGVkZWYgc3RydWN0ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RfX2hhbF9fYmFja2VuZF9fc2VjdXJpdHlfX2tleXNfX2Z1bmNzXCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E2YTE3ZTdlNDEyNzdlMGFhZjEwNTA4MjAxNzRlODkxMVwiPmhhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+U3RydWN0dXJlIGZvciBzZWN1cml0eSBrZXlzIGZ1bmN0aW9ucy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgc2l6ZV90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTVmMzhiNTY1OGQ0NGY0NDBjNTU1ZWI2NjZlZGYyYzk5XCI+aGFsX3NlY3VyaXR5X2tleXNfY2lwaGVyX2NvbnRleHRfdDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5UeXBlIGZvciBjaXBoZXIgY29udGV4dC48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDIgaWQ9XCJjb250ZW50LWRhdGEtc3RydWN0dXJlLWRvY3VtZW50YXRpb25cIj48YSBocmVmPVwiI2NvbnRlbnQtZGF0YS1zdHJ1Y3R1cmUtZG9jdW1lbnRhdGlvblwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RGF0YSBTdHJ1Y3R1cmUgRG9jdW1lbnRhdGlvbjxcL2gyPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IF9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBzZWN1cml0eSBrZXlzIGZ1bmN0aW9ucy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRUNVUklUWV9LRVlTIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5EYXRhIEZpZWxkczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTA3NzM4NzI0NzY2YWFmNWI0N2FlODYxMjE2YTY4ZDZjXCI+Y29udGV4dF9pbml0aWFsaXplPFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiAqY29udGV4dCk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhYjIxN2I1YzI3YmQ5NDBjNzE4MjhhZmI3NmNjZDhkOGRcIj5jb250ZXh0X2ZyZWU8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+ICpjb250ZXh0KTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2ExM2JjOTNhNGZiN2RmNzdmMGEyOTY2Y2RhMTI1NTI1YlwiPmNyZWF0ZV9pdjxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKml2KTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E3YjY3ZWU4YmNjYTZlNWJjNzQ1ODQ1ZTk4ODY2ZmFkZFwiPmNyZWF0ZV9rZXlfYWVzPFwvYT4gKShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCBzaXplX3Qga2V5X3NpemVfYml0cywgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4ga2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M8XC9hPiBrZXlfcHdkLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqa2V5X3RhZyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhNTc3N2Y1NmU2OTQyMGRkNzJmNDdlMWY0YWFmYjIzYTFcIj5jcmVhdGVfa2V5X3BhaXJfcnNhPFwvYT4gKShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCBzaXplX3Qga2V5X3NpemVfYml0cywgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHJpdl9rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IHByaXZfa2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHViX2tleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl9zPFwvYT4gcHViX2tleV9wd2QsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpwcml2X2tleV90YWcsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpwdWJfa2V5X3RhZyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhZTY4NzIyOWJlM2RlYTM5NThiMDExNjM4MTJkN2Y2MGZcIj5jcmVhdGVfa2V5X3BhaXJfZHNhPFwvYT4gKShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCBzaXplX3Qga2V5X3NpemVfYml0cywgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHJpbWUsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHN1YnByaW1lLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBiYXNlLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBwcml2X2tleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl9zPFwvYT4gcHJpdl9rZXlfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBwdWJfa2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M8XC9hPiBwdWJfa2V5X3B3ZCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKnByaXZfa2V5X3RhZywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKnB1Yl9rZXlfdGFnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2EwOWUxYmM2MGI0ZjRhNGM4YWFmZjQ2YTI4M2E0OGNhZFwiPmNyZWF0ZV9rZXlfcGFpcl9lY2RzYTxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYWQxNDNlOTBjYzgyZDI1MDljYWIyMjA1NTMwZDM4YzdjXCI+aGFsX3NlY3VyaXR5X2tleXNfZWNfdHlwZV9lPFwvYT4gZWNfdHlwZSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHJpdl9rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IHByaXZfa2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHViX2tleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl9zPFwvYT4gcHViX2tleV9wd2QsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpwcml2X2tleV90YWcsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpwdWJfa2V5X3RhZyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhYTM2ZGE3ZGI5NTU1OGZkZmNhYjc3NDk2NWU0Yzc4MWVcIj5jcmVhdGVfa2V5X3BhaXJfa2VtPFwvYT4gKShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhNTc2MWRkMmRjY2Y0NGMwMDdiMTk1YjA4MDA3N2EzN2FcIj5oYWxfc2VjdXJpdHlfa2V5c19rZW1fdHlwZV9lPFwvYT4ga2VtX3R5cGUsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHByaXZfa2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M8XC9hPiBwcml2X2tleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHB1Yl9rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IHB1Yl9rZXlfcHdkLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqcHJpdl9rZXlfdGFnLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqcHViX2tleV90YWcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTRmNzAzZmUzMDUyNmVmMDg4ZjcxMjJlYTRjNzAxYmI2XCI+aW1wb3J0X3dyYXBwZWRfa2V5PFwvYT4gKShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhN2UzNTUzMjI3ZTQxOTc0NDYzOTVhNmQ1MmRlODRiYjFcIj5oYWxfc2VjdXJpdHlfa2V5c19hbGdvX3R5cGVfZTxcL2E+IGFsZ28sIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E5ODA4ZDY4ODQwZjNmYmI2MDgxNDJhNDM2YTViZmMwNVwiPmhhbF9zZWN1cml0eV9rZXlzX2hhc2hfYWxnb3JpdGhtX2U8XC9hPiBoYXNoLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBpdiwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gYWFkLCBjb25zdCBzaXplX3QgY3RyX2xlbl9vcl90YWdfc2l6ZV9iaXRzLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiB3cmFwcGluZ19rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IHdyYXBwaW5nX2tleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHdyYXBwZWRfa2V5LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBrZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IGtleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E2MTUyODIxZDQ0MmY4NGEyZjYxMmRlNDg4MTVhODk4MVwiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfdHlwZV9lPFwvYT4ga2V5X3R5cGUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICprZXlfdGFnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2EwMWJiOTg4N2VmZmVhZDI5MTM4YmE2YjkzODY1ZGI0Y1wiPmV4cG9ydF93cmFwcGVkX2tleTxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTdlMzU1MzIyN2U0MTk3NDQ2Mzk1YTZkNTJkZTg0YmIxXCI+aGFsX3NlY3VyaXR5X2tleXNfYWxnb190eXBlX2U8XC9hPiBhbGdvLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhOTgwOGQ2ODg0MGYzZmJiNjA4MTQyYTQzNmE1YmZjMDVcIj5oYWxfc2VjdXJpdHlfa2V5c19oYXNoX2FsZ29yaXRobV9lPFwvYT4gaGFzaCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gaXYsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGFhZCwgY29uc3Qgc2l6ZV90IGN0cl9sZW5fb3JfdGFnX3NpemVfYml0cywgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gd3JhcHBpbmdfa2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fdGFnX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfdGFnX3M8XC9hPiB3cmFwcGluZ19rZXlfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBrZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IGtleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E2MTUyODIxZDQ0MmY4NGEyZjYxMmRlNDg4MTVhODk4MVwiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfdHlwZV9lPFwvYT4ga2V5X3R5cGUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICp3cmFwcGVkX2tleSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhNzQ2MjM1MDZmMWRjYjhhNjc5NmQ4MzAwNDhmZjliNGRcIj5lbmNhcHN1bGF0ZV9rZXk8XC9hPiApKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E1NzYxZGQyZGNjZjQ0YzAwN2IxOTViMDgwMDc3YTM3YVwiPmhhbF9zZWN1cml0eV9rZXlzX2tlbV90eXBlX2U8XC9hPiBrZW1fdHlwZSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHViX2tleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4gcHViX2tleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHNoYXJlZF9zZWNyZXRfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IHNoYXJlZF9zZWNyZXRfcHdkLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqY2lwaGVydGV4dCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKnNoYXJlZF9zZWNyZXRfdGFnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2FlNjRiZGZmMjcyNDg3NGQ1MmFlOTg3MDQ3MjNmNzk2Y1wiPmRlY2Fwc3VsYXRlX2tleTxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTU3NjFkZDJkY2NmNDRjMDA3YjE5NWIwODAwNzdhMzdhXCI+aGFsX3NlY3VyaXR5X2tleXNfa2VtX3R5cGVfZTxcL2E+IGtlbV90eXBlLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBwcml2X2tleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4gcHJpdl9rZXlfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBzaGFyZWRfc2VjcmV0X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M8XC9hPiBzaGFyZWRfc2VjcmV0X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gY2lwaGVydGV4dCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKnNoYXJlZF9zZWNyZXRfdGFnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2FkMWRhNDMzMTk3NWE1MDRjMWIxNTM1NDU3OGM0MzQ5NVwiPmRlc3Ryb3lfa2V5PFwvYT4gKShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBrZXlfaWQpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYThjMjUzNzc3YTRjZjhiYjgzNTBhMDRlOTgzYWE0YzQ4XCI+aW1wb3J0X2RhdGE8XC9hPiApKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGRhdGFfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IGRhdGFfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhNjE1MjgyMWQ0NDJmODRhMmY2MTJkZTQ4ODE1YTg5ODFcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3R5cGVfZTxcL2E+IGRhdGFfdHlwZSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gZGF0YSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gZGF0YV9lbmNyeXB0aW9uX2l2LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBkYXRhX2VuY3J5cHRpb25fdGFnLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqZGF0YV90YWcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTk0Yzg5OTcwN2VhMThhMWZiZjU5MDFlMTNhYzM4Mzk2XCI+ZXhwb3J0X2RhdGE8XC9hPiApKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGRhdGFfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IGRhdGFfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhNjE1MjgyMWQ0NDJmODRhMmY2MTJkZTQ4ODE1YTg5ODFcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3R5cGVfZTxcL2E+IGRhdGFfdHlwZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKmRhdGEpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTE2MmI3MTVkMWI0NDY0MjUwNmJjOTM1N2NhZGQ5Y2E4XCI+d3JhcF9jb25jYXRlbmF0ZWRfZGF0YTxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTdlMzU1MzIyN2U0MTk3NDQ2Mzk1YTZkNTJkZTg0YmIxXCI+aGFsX3NlY3VyaXR5X2tleXNfYWxnb190eXBlX2U8XC9hPiBhbGdvLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhOTgwOGQ2ODg0MGYzZmJiNjA4MTQyYTQzNmE1YmZjMDVcIj5oYWxfc2VjdXJpdHlfa2V5c19oYXNoX2FsZ29yaXRobV9lPFwvYT4gaGFzaCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gd3JhcHBpbmdfa2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fdGFnX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfdGFnX3M8XC9hPiB3cmFwcGluZ19rZXlfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBrZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IGtleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGRhdGEsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICp3cmFwcGVkX2tleSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhOWNmNjVmNTBmM2QyYzViNTQ1YmFjOTA1MGE4N2RlZTZcIj51bndyYXBfY29uY2F0ZW5hdGVkX2RhdGE8XC9hPiApKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E3ZTM1NTMyMjdlNDE5NzQ0NjM5NWE2ZDUyZGU4NGJiMVwiPmhhbF9zZWN1cml0eV9rZXlzX2FsZ29fdHlwZV9lPFwvYT4gYWxnbywgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTk4MDhkNjg4NDBmM2ZiYjYwODE0MmE0MzZhNWJmYzA1XCI+aGFsX3NlY3VyaXR5X2tleXNfaGFzaF9hbGdvcml0aG1fZTxcL2E+IGhhc2gsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHdyYXBwaW5nX2tleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4gd3JhcHBpbmdfa2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gd3JhcHBlZF9rZXksIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGtleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl9zPFwvYT4ga2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTYxNTI4MjFkNDQyZjg0YTJmNjEyZGU0ODgxNWE4OTgxXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV90eXBlX2U8XC9hPiBrZXlfdHlwZSwgY29uc3Qgc2l6ZV90IGtleV9zaXplX2JpdHMsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpkYXRhLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqa2V5X3RhZyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhMjVhOGQ3MmQ5MzE0M2Q3OGI0NWZjNTQyMWZiOGVlOWRcIj5lbmNyeXB0X2RhdGFfYXV0aDxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4ga2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fdGFnX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfdGFnX3M8XC9hPiBrZXlfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBkYXRhLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBpdiwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gYWFkLCBjb25zdCBzaXplX3QgdGFnX3NpemVfYml0cywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKnRhZywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKm91dCk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhZDVmNWRhNjVhZWExZTMyNzQzYWNlYTUxYTkxOTcwNjRcIj5kZWNyeXB0X2RhdGFfYXV0aDxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4ga2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fdGFnX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfdGFnX3M8XC9hPiBrZXlfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBkYXRhLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBpdiwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gYWFkLCBjb25zdCBzaXplX3QgdGFnX3NpemVfYml0cywgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gdGFnLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqb3V0KTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2FkYTQ0NWYyYmZiMGExMzgxYTE4ZTI4ODhhOWM4ZjhhZVwiPmVuY3J5cHRfZGF0YTxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTdlMzU1MzIyN2U0MTk3NDQ2Mzk1YTZkNTJkZTg0YmIxXCI+aGFsX3NlY3VyaXR5X2tleXNfYWxnb190eXBlX2U8XC9hPiBhbGdvLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhOTgwOGQ2ODg0MGYzZmJiNjA4MTQyYTQzNmE1YmZjMDVcIj5oYWxfc2VjdXJpdHlfa2V5c19oYXNoX2FsZ29yaXRobV9lPFwvYT4gaGFzaCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYWJiM2QwNDY4NjE4YTcwODY2NTNiNjI4ZTEwZjQ1ZjU3XCI+aGFsX3NlY3VyaXR5X2tleXNfcGFkZGluZ19hbGdvcml0aG1fZTxcL2E+IHBhZGRpbmcsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGtleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4ga2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gZGF0YSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gaXYsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpvdXQpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTZiYmNlOGE4NTZlNDczODdmZmI1MDUzZmZmMTFkNzBlXCI+ZGVjcnlwdF9kYXRhPFwvYT4gKShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhN2UzNTUzMjI3ZTQxOTc0NDYzOTVhNmQ1MmRlODRiYjFcIj5oYWxfc2VjdXJpdHlfa2V5c19hbGdvX3R5cGVfZTxcL2E+IGFsZ28sIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E5ODA4ZDY4ODQwZjNmYmI2MDgxNDJhNDM2YTViZmMwNVwiPmhhbF9zZWN1cml0eV9rZXlzX2hhc2hfYWxnb3JpdGhtX2U8XC9hPiBoYXNoLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhYmIzZDA0Njg2MThhNzA4NjY1M2I2MjhlMTBmNDVmNTdcIj5oYWxfc2VjdXJpdHlfa2V5c19wYWRkaW5nX2FsZ29yaXRobV9lPFwvYT4gcGFkZGluZywgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4ga2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fdGFnX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfdGFnX3M8XC9hPiBrZXlfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBkYXRhLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBpdiwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKm91dCk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhMjlkYjlkYTM2MTA5NjZjODA5NTYwZmU1ZTRkZjJjNGFcIj5kZXN0cm95X2RhdGE8XC9hPiApKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGRhdGFfaWQpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTYyNDQ3YzdkNDBlMDNhZWZhODQ3Nzg0ZTcyZTU1ZGRlXCI+Y2lwaGVyX2luaXRpYWxpemU8XC9hPiApKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IGJvb2wgZW5jcnlwdCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4ga2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fdGFnX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfdGFnX3M8XC9hPiBrZXlfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBpdiwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gYWFkLCBjb25zdCBzaXplX3QgdGFnX3NpemVfYml0cywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTVmMzhiNTY1OGQ0NGY0NDBjNTU1ZWI2NjZlZGYyYzk5XCI+aGFsX3NlY3VyaXR5X2tleXNfY2lwaGVyX2NvbnRleHRfdDxcL2E+ICpjaXBoZXJfY29udGV4dCk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhMzI5NmZkMzNkODM5OGE5ZWQ2MTUyYmJkYzQ2ZmQ3ODFcIj5jaXBoZXJfYWRkX2FhZDxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTVmMzhiNTY1OGQ0NGY0NDBjNTU1ZWI2NjZlZGYyYzk5XCI+aGFsX3NlY3VyaXR5X2tleXNfY2lwaGVyX2NvbnRleHRfdDxcL2E+IGNpcGhlcl9jb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBhYWQpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTdlZDYzYWU4MjVkZTRmYmVhZTRiNDBhN2Q5MDAzMzk4XCI+Y2lwaGVyX3VwZGF0ZTxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTVmMzhiNTY1OGQ0NGY0NDBjNTU1ZWI2NjZlZGYyYzk5XCI+aGFsX3NlY3VyaXR5X2tleXNfY2lwaGVyX2NvbnRleHRfdDxcL2E+IGNpcGhlcl9jb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBkYXRhLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqb3V0KTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E2NTYwYTM3NjNiODQxMGIzMjdiYzA0MjlkZDRhNjZhNFwiPmNpcGhlcl9maW5hbGl6ZTxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTVmMzhiNTY1OGQ0NGY0NDBjNTU1ZWI2NjZlZGYyYzk5XCI+aGFsX3NlY3VyaXR5X2tleXNfY2lwaGVyX2NvbnRleHRfdDxcL2E+IGNpcGhlcl9jb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBkYXRhLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqb3V0KTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E4ODE1MWJiOTQ2ZmEyZmQ3ZTUxMWU3NWIyMjQwZmZkM1wiPmNpcGhlcl9mcmVlPFwvYT4gKShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhNWYzOGI1NjU4ZDQ0ZjQ0MGM1NTVlYjY2NmVkZjJjOTlcIj5oYWxfc2VjdXJpdHlfa2V5c19jaXBoZXJfY29udGV4dF90PFwvYT4gY2lwaGVyX2NvbnRleHQpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTU4OGQ3ZTI0MzYwMzlkMzI1ZGE5YzI3MWZhNTNmY2VmXCI+Y3JlYXRlX3NpZ25hdHVyZTxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTdlMzU1MzIyN2U0MTk3NDQ2Mzk1YTZkNTJkZTg0YmIxXCI+aGFsX3NlY3VyaXR5X2tleXNfYWxnb190eXBlX2U8XC9hPiBhbGdvLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhOTgwOGQ2ODg0MGYzZmJiNjA4MTQyYTQzNmE1YmZjMDVcIj5oYWxfc2VjdXJpdHlfa2V5c19oYXNoX2FsZ29yaXRobV9lPFwvYT4gaGFzaCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHJpdl9rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IHByaXZfa2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gbWVzc2FnZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKnNpZ25hdHVyZSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhOWJjZTE0OWQyZmUxMjA1MGJlNDgzNWVlYzM2MTA2MTJcIj52ZXJpZnlfc2lnbmF0dXJlPFwvYT4gKShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhN2UzNTUzMjI3ZTQxOTc0NDYzOTVhNmQ1MmRlODRiYjFcIj5oYWxfc2VjdXJpdHlfa2V5c19hbGdvX3R5cGVfZTxcL2E+IGFsZ28sIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E5ODA4ZDY4ODQwZjNmYmI2MDgxNDJhNDM2YTViZmMwNVwiPmhhbF9zZWN1cml0eV9rZXlzX2hhc2hfYWxnb3JpdGhtX2U8XC9hPiBoYXNoLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBwdWJfa2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fdGFnX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfdGFnX3M8XC9hPiBwdWJfa2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gbWVzc2FnZSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gc2lnbmF0dXJlKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2EyYzExZTcxNTA5MGVlMzljODM3ODYwZDM4MjlkYmZhZFwiPmRlcml2ZV9lY2RoPFwvYT4gKShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhZDE0M2U5MGNjODJkMjUwOWNhYjIyMDU1MzBkMzhjN2NcIj5oYWxfc2VjdXJpdHlfa2V5c19lY190eXBlX2U8XC9hPiBlY190eXBlLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBwdWJfa2V5X3gsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHB1Yl9rZXlfeSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHJpdl9rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IHByaXZfa2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gc2VjcmV0X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M8XC9hPiBzZWNyZXRfcHdkLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqc2VjcmV0X3RhZyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhNWYzOTI1NTg4Y2NlYzVmMGIyNDhiY2U5ZjBjOTg4ZjFcIj5kZXJpdmVfa2JrZGY8XC9hPiApKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fa2JrZGZfX3BhcmFtc19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2tia2RmX3BhcmFtc19zPFwvYT4gcGFyYW1zLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBzZWNyZXRfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IHNlY3JldF9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGtleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl9zPFwvYT4ga2V5X3B3ZCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKmtleV90YWcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYWJhZDcwNTUyMDYwZmQyMjEwYTcxYjUyZGNiYmYxMDc0XCI+ZGVyaXZlX2h5YnJpZF9rYmtkZjxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19rYmtkZl9fcGFyYW1zX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfa2JrZGZfcGFyYW1zX3M8XC9hPiBwYXJhbXMsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGZpcnN0X3NlY3JldF9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4gZmlyc3Rfc2VjcmV0X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gc2Vjb25kX3NlY3JldF9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4gc2Vjb25kX3NlY3JldF9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGtleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl9zPFwvYT4ga2V5X3B3ZCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKmtleV90YWcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTExNDk5NjAxYjgzMGM4NzgwNjhlMTQ4OGY3MGQ2ZDdiXCI+Z2V0X21heF9jaHVua19zaXplPFwvYT4gKShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBzaXplX3QgKmNodW5rX3NpemUpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTk5YzdlNjcyOGE5MmRhMWRlNmMyYjA4YWQ0NzhmOWMwXCI+Y3JlYXRlX2tleV9kYnA8XC9hPiApKGNvbnN0IGJvb2wgZGVzdHJveV9vbGQpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYWMyZjIyMDc4YjRmMzE2MDM0Y2U1NTc2MDhlYjkzOTFlXCI+ZW5jcnlwdF9kYXRhX2RicDxcL2E+ICkoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTgxZjc3ZGJhMDUwOWY5MzE5NjI1YzUyMDc4MTdjMzk2XCI+aGFsX3NlY3VyaXR5X2tleXNfZGJwX3NjaGVtZV92ZXJzaW9uX2U8XC9hPiBkYnBfc2NoZW1lX3ZlcnNpb24sIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGRhdGEsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGl2LCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqb3V0KTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+Ym9vbCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhYzViZjliNzAyOTQzNGE5NzA2ZGM1MmUyYjcwZTg4YmFcIj5pc190el9zdXBwb3J0ZWQ8XC9hPiApKHZvaWQpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5ib29sKCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2FiNmRkNmY3MjM3Njc3ZWY3NTYyOTBkY2NmMzA4N2UwYVwiPmlzX3NlX3N1cHBvcnRlZDxcL2E+ICkodm9pZCk8XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDQgaWQ9XCJjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb25cIj48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvblwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhMzI5NmZkMzNkODM5OGE5ZWQ2MTUyYmJkYzQ2ZmQ3ODFcIj5faGFsX2JhY2tlbmRfc2VjdXJpdHlfa2V5c19mdW5jczo6Y2lwaGVyX2FkZF9hYWQ8XC9hPikoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTVmMzhiNTY1OGQ0NGY0NDBjNTU1ZWI2NjZlZGYyYzk5XCI+aGFsX3NlY3VyaXR5X2tleXNfY2lwaGVyX2NvbnRleHRfdDxcL2E+IGNpcGhlcl9jb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBhYWQpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+QWRkIEFBRDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E2NTYwYTM3NjNiODQxMGIzMjdiYzA0MjlkZDRhNjZhNFwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpjaXBoZXJfZmluYWxpemU8XC9hPikoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTVmMzhiNTY1OGQ0NGY0NDBjNTU1ZWI2NjZlZGYyYzk5XCI+aGFsX3NlY3VyaXR5X2tleXNfY2lwaGVyX2NvbnRleHRfdDxcL2E+IGNpcGhlcl9jb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBkYXRhLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqb3V0KTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkZpbmFsaXplIGNpcGhlcjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E4ODE1MWJiOTQ2ZmEyZmQ3ZTUxMWU3NWIyMjQwZmZkM1wiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpjaXBoZXJfZnJlZTxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhNWYzOGI1NjU4ZDQ0ZjQ0MGM1NTVlYjY2NmVkZjJjOTlcIj5oYWxfc2VjdXJpdHlfa2V5c19jaXBoZXJfY29udGV4dF90PFwvYT4gY2lwaGVyX2NvbnRleHQpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q2xlYW51cCBjaXBoZXI8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhNjI0NDdjN2Q0MGUwM2FlZmE4NDc3ODRlNzJlNTVkZGVcIj5faGFsX2JhY2tlbmRfc2VjdXJpdHlfa2V5c19mdW5jczo6Y2lwaGVyX2luaXRpYWxpemU8XC9hPikoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgYm9vbCBlbmNyeXB0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBrZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IGtleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGl2LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBhYWQsIGNvbnN0IHNpemVfdCB0YWdfc2l6ZV9iaXRzLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhNWYzOGI1NjU4ZDQ0ZjQ0MGM1NTVlYjY2NmVkZjJjOTlcIj5oYWxfc2VjdXJpdHlfa2V5c19jaXBoZXJfY29udGV4dF90PFwvYT4gKmNpcGhlcl9jb250ZXh0KTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkluaXRpYWxpemUgY2lwaGVyPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTdlZDYzYWU4MjVkZTRmYmVhZTRiNDBhN2Q5MDAzMzk4XCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OmNpcGhlcl91cGRhdGU8XC9hPikoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTVmMzhiNTY1OGQ0NGY0NDBjNTU1ZWI2NjZlZGYyYzk5XCI+aGFsX3NlY3VyaXR5X2tleXNfY2lwaGVyX2NvbnRleHRfdDxcL2E+IGNpcGhlcl9jb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBkYXRhLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqb3V0KTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlVwZGF0ZSBjaXBoZXI8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhYjIxN2I1YzI3YmQ5NDBjNzE4MjhhZmI3NmNjZDhkOGRcIj5faGFsX2JhY2tlbmRfc2VjdXJpdHlfa2V5c19mdW5jczo6Y29udGV4dF9mcmVlPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+ICpjb250ZXh0KTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkZyZWUgSEFMIGJhY2tlbmQgY29udGV4dDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2EwNzczODcyNDc2NmFhZjViNDdhZTg2MTIxNmE2OGQ2Y1wiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpjb250ZXh0X2luaXRpYWxpemU8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gKmNvbnRleHQpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+SW5pdGlhbGl6ZSBIQUwgYmFja2VuZCBjb250ZXh0PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTEzYmM5M2E0ZmI3ZGY3N2YwYTI5NjZjZGExMjU1MjViXCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OmNyZWF0ZV9pdjxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqaXYpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q3JlYXRlIGluaXRpYWxpemF0aW9uIHZlY3RvcjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E3YjY3ZWU4YmNjYTZlNWJjNzQ1ODQ1ZTk4ODY2ZmFkZFwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpjcmVhdGVfa2V5X2FlczxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCBzaXplX3Qga2V5X3NpemVfYml0cywgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4ga2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M8XC9hPiBrZXlfcHdkLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqa2V5X3RhZyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5DcmVhdGUgQUVTIGtleTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E5OWM3ZTY3MjhhOTJkYTFkZTZjMmIwOGFkNDc4ZjljMFwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpjcmVhdGVfa2V5X2RicDxcL2E+KShjb25zdCBib29sIGRlc3Ryb3lfb2xkKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkNyZWF0ZSBEQlAga2V5PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYWU2ODcyMjliZTNkZWEzOTU4YjAxMTYzODEyZDdmNjBmXCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OmNyZWF0ZV9rZXlfcGFpcl9kc2E8XC9hPikoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3Qgc2l6ZV90IGtleV9zaXplX2JpdHMsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHByaW1lLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBzdWJwcmltZSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gYmFzZSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHJpdl9rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IHByaXZfa2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHViX2tleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl9zPFwvYT4gcHViX2tleV9wd2QsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpwcml2X2tleV90YWcsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpwdWJfa2V5X3RhZyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5DcmVhdGUgRFNBIGtleSBwYWlyPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTA5ZTFiYzYwYjRmNGE0YzhhYWZmNDZhMjgzYTQ4Y2FkXCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OmNyZWF0ZV9rZXlfcGFpcl9lY2RzYTxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhZDE0M2U5MGNjODJkMjUwOWNhYjIyMDU1MzBkMzhjN2NcIj5oYWxfc2VjdXJpdHlfa2V5c19lY190eXBlX2U8XC9hPiBlY190eXBlLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBwcml2X2tleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl9zPFwvYT4gcHJpdl9rZXlfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBwdWJfa2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M8XC9hPiBwdWJfa2V5X3B3ZCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKnByaXZfa2V5X3RhZywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKnB1Yl9rZXlfdGFnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkNyZWF0ZSBFQ0RTQSBrZXkgcGFpcjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2FhMzZkYTdkYjk1NTU4ZmRmY2FiNzc0OTY1ZTRjNzgxZVwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpjcmVhdGVfa2V5X3BhaXJfa2VtPFwvYT4pKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E1NzYxZGQyZGNjZjQ0YzAwN2IxOTViMDgwMDc3YTM3YVwiPmhhbF9zZWN1cml0eV9rZXlzX2tlbV90eXBlX2U8XC9hPiBrZW1fdHlwZSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHJpdl9rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IHByaXZfa2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHViX2tleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl9zPFwvYT4gcHViX2tleV9wd2QsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpwcml2X2tleV90YWcsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpwdWJfa2V5X3RhZyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5DcmVhdGUgS0VNIGtleSBwYWlyPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTU3NzdmNTZlNjk0MjBkZDcyZjQ3ZTFmNGFhZmIyM2ExXCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OmNyZWF0ZV9rZXlfcGFpcl9yc2E8XC9hPikoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3Qgc2l6ZV90IGtleV9zaXplX2JpdHMsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHByaXZfa2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M8XC9hPiBwcml2X2tleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHB1Yl9rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IHB1Yl9rZXlfcHdkLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqcHJpdl9rZXlfdGFnLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqcHViX2tleV90YWcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q3JlYXRlIFJTQSBrZXkgcGFpcjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E1ODhkN2UyNDM2MDM5ZDMyNWRhOWMyNzFmYTUzZmNlZlwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpjcmVhdGVfc2lnbmF0dXJlPFwvYT4pKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E3ZTM1NTMyMjdlNDE5NzQ0NjM5NWE2ZDUyZGU4NGJiMVwiPmhhbF9zZWN1cml0eV9rZXlzX2FsZ29fdHlwZV9lPFwvYT4gYWxnbywgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTk4MDhkNjg4NDBmM2ZiYjYwODE0MmE0MzZhNWJmYzA1XCI+aGFsX3NlY3VyaXR5X2tleXNfaGFzaF9hbGdvcml0aG1fZTxcL2E+IGhhc2gsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHByaXZfa2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fdGFnX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfdGFnX3M8XC9hPiBwcml2X2tleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IG1lc3NhZ2UsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpzaWduYXR1cmUpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q3JlYXRlIHNpZ25hdHVyZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2FlNjRiZGZmMjcyNDg3NGQ1MmFlOTg3MDQ3MjNmNzk2Y1wiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpkZWNhcHN1bGF0ZV9rZXk8XC9hPikoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTU3NjFkZDJkY2NmNDRjMDA3YjE5NWIwODAwNzdhMzdhXCI+aGFsX3NlY3VyaXR5X2tleXNfa2VtX3R5cGVfZTxcL2E+IGtlbV90eXBlLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBwcml2X2tleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4gcHJpdl9rZXlfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBzaGFyZWRfc2VjcmV0X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M8XC9hPiBzaGFyZWRfc2VjcmV0X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gY2lwaGVydGV4dCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKnNoYXJlZF9zZWNyZXRfdGFnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlY2Fwc3VsYXRlIGtleTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E2YmJjZThhODU2ZTQ3Mzg3ZmZiNTA1M2ZmZjExZDcwZVwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpkZWNyeXB0X2RhdGE8XC9hPikoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTdlMzU1MzIyN2U0MTk3NDQ2Mzk1YTZkNTJkZTg0YmIxXCI+aGFsX3NlY3VyaXR5X2tleXNfYWxnb190eXBlX2U8XC9hPiBhbGdvLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhOTgwOGQ2ODg0MGYzZmJiNjA4MTQyYTQzNmE1YmZjMDVcIj5oYWxfc2VjdXJpdHlfa2V5c19oYXNoX2FsZ29yaXRobV9lPFwvYT4gaGFzaCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYWJiM2QwNDY4NjE4YTcwODY2NTNiNjI4ZTEwZjQ1ZjU3XCI+aGFsX3NlY3VyaXR5X2tleXNfcGFkZGluZ19hbGdvcml0aG1fZTxcL2E+IHBhZGRpbmcsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGtleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4ga2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gZGF0YSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gaXYsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpvdXQpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVjcnlwdCBkYXRhPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYWQ1ZjVkYTY1YWVhMWUzMjc0M2FjZWE1MWE5MTk3MDY0XCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OmRlY3J5cHRfZGF0YV9hdXRoPFwvYT4pKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGtleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4ga2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gZGF0YSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gaXYsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGFhZCwgY29uc3Qgc2l6ZV90IHRhZ19zaXplX2JpdHMsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHRhZywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKm91dCk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5BdXRoZW50aWNhdGVkIGRhdGEgZGVjcnlwdGlvbjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2EyYzExZTcxNTA5MGVlMzljODM3ODYwZDM4MjlkYmZhZFwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpkZXJpdmVfZWNkaDxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhZDE0M2U5MGNjODJkMjUwOWNhYjIyMDU1MzBkMzhjN2NcIj5oYWxfc2VjdXJpdHlfa2V5c19lY190eXBlX2U8XC9hPiBlY190eXBlLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBwdWJfa2V5X3gsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHB1Yl9rZXlfeSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHJpdl9rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IHByaXZfa2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gc2VjcmV0X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M8XC9hPiBzZWNyZXRfcHdkLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqc2VjcmV0X3RhZyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZXJpdmUgRUNESDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2FiYWQ3MDU1MjA2MGZkMjIxMGE3MWI1MmRjYmJmMTA3NFwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpkZXJpdmVfaHlicmlkX2tia2RmPFwvYT4pKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fa2JrZGZfX3BhcmFtc19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2tia2RmX3BhcmFtc19zPFwvYT4gcGFyYW1zLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBmaXJzdF9zZWNyZXRfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IGZpcnN0X3NlY3JldF9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHNlY29uZF9zZWNyZXRfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IHNlY29uZF9zZWNyZXRfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBrZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IGtleV9wd2QsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICprZXlfdGFnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlcml2ZSBoeWJyaWQgS0JLREY8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhNWYzOTI1NTg4Y2NlYzVmMGIyNDhiY2U5ZjBjOTg4ZjFcIj5faGFsX2JhY2tlbmRfc2VjdXJpdHlfa2V5c19mdW5jczo6ZGVyaXZlX2tia2RmPFwvYT4pKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fa2JrZGZfX3BhcmFtc19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2tia2RmX3BhcmFtc19zPFwvYT4gcGFyYW1zLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBzZWNyZXRfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IHNlY3JldF9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGtleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl9zPFwvYT4ga2V5X3B3ZCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKmtleV90YWcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVyaXZlIEtCS0RGPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTI5ZGI5ZGEzNjEwOTY2YzgwOTU2MGZlNWU0ZGYyYzRhXCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OmRlc3Ryb3lfZGF0YTxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBkYXRhX2lkKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlc3Ryb3kgZGF0YTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2FkMWRhNDMzMTk3NWE1MDRjMWIxNTM1NDU3OGM0MzQ5NVwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpkZXN0cm95X2tleTxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBrZXlfaWQpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVzdHJveSBrZXk8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhNzQ2MjM1MDZmMWRjYjhhNjc5NmQ4MzAwNDhmZjliNGRcIj5faGFsX2JhY2tlbmRfc2VjdXJpdHlfa2V5c19mdW5jczo6ZW5jYXBzdWxhdGVfa2V5PFwvYT4pKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E1NzYxZGQyZGNjZjQ0YzAwN2IxOTViMDgwMDc3YTM3YVwiPmhhbF9zZWN1cml0eV9rZXlzX2tlbV90eXBlX2U8XC9hPiBrZW1fdHlwZSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHViX2tleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4gcHViX2tleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHNoYXJlZF9zZWNyZXRfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IHNoYXJlZF9zZWNyZXRfcHdkLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqY2lwaGVydGV4dCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKnNoYXJlZF9zZWNyZXRfdGFnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVuY2Fwc3VsYXRlIGtleTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2FkYTQ0NWYyYmZiMGExMzgxYTE4ZTI4ODhhOWM4ZjhhZVwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjplbmNyeXB0X2RhdGE8XC9hPikoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTdlMzU1MzIyN2U0MTk3NDQ2Mzk1YTZkNTJkZTg0YmIxXCI+aGFsX3NlY3VyaXR5X2tleXNfYWxnb190eXBlX2U8XC9hPiBhbGdvLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhOTgwOGQ2ODg0MGYzZmJiNjA4MTQyYTQzNmE1YmZjMDVcIj5oYWxfc2VjdXJpdHlfa2V5c19oYXNoX2FsZ29yaXRobV9lPFwvYT4gaGFzaCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYWJiM2QwNDY4NjE4YTcwODY2NTNiNjI4ZTEwZjQ1ZjU3XCI+aGFsX3NlY3VyaXR5X2tleXNfcGFkZGluZ19hbGdvcml0aG1fZTxcL2E+IHBhZGRpbmcsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGtleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4ga2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gZGF0YSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gaXYsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpvdXQpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW5jcnlwdCBkYXRhPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTI1YThkNzJkOTMxNDNkNzhiNDVmYzU0MjFmYjhlZTlkXCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OmVuY3J5cHRfZGF0YV9hdXRoPFwvYT4pKGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fY29udGV4dF9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2NvbnRleHRfczxcL2E+IGNvbnRleHQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGtleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4ga2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gZGF0YSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gaXYsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGFhZCwgY29uc3Qgc2l6ZV90IHRhZ19zaXplX2JpdHMsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICp0YWcsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpvdXQpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+QXV0aGVudGljYXRlZCBkYXRhIGVuY3J5cHRpb248XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhYzJmMjIwNzhiNGYzMTYwMzRjZTU1NzYwOGViOTM5MWVcIj5faGFsX2JhY2tlbmRfc2VjdXJpdHlfa2V5c19mdW5jczo6ZW5jcnlwdF9kYXRhX2RicDxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhODFmNzdkYmEwNTA5ZjkzMTk2MjVjNTIwNzgxN2MzOTZcIj5oYWxfc2VjdXJpdHlfa2V5c19kYnBfc2NoZW1lX3ZlcnNpb25fZTxcL2E+IGRicF9zY2hlbWVfdmVyc2lvbiwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gZGF0YSwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gaXYsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpvdXQpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW5jcnlwdCBkYXRhIHdpdGggREJQIGtleTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E5NGM4OTk3MDdlYTE4YTFmYmY1OTAxZTEzYWMzODM5NlwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpleHBvcnRfZGF0YTxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBkYXRhX2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fdGFnX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfdGFnX3M8XC9hPiBkYXRhX3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTYxNTI4MjFkNDQyZjg0YTJmNjEyZGU0ODgxNWE4OTgxXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV90eXBlX2U8XC9hPiBkYXRhX3R5cGUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICpkYXRhKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkV4cG9ydCBkYXRhPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTAxYmI5ODg3ZWZmZWFkMjkxMzhiYTZiOTM4NjVkYjRjXCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OmV4cG9ydF93cmFwcGVkX2tleTxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhN2UzNTUzMjI3ZTQxOTc0NDYzOTVhNmQ1MmRlODRiYjFcIj5oYWxfc2VjdXJpdHlfa2V5c19hbGdvX3R5cGVfZTxcL2E+IGFsZ28sIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E5ODA4ZDY4ODQwZjNmYmI2MDgxNDJhNDM2YTViZmMwNVwiPmhhbF9zZWN1cml0eV9rZXlzX2hhc2hfYWxnb3JpdGhtX2U8XC9hPiBoYXNoLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBpdiwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gYWFkLCBjb25zdCBzaXplX3QgY3RyX2xlbl9vcl90YWdfc2l6ZV9iaXRzLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiB3cmFwcGluZ19rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IHdyYXBwaW5nX2tleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGtleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4ga2V5X3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTYxNTI4MjFkNDQyZjg0YTJmNjEyZGU0ODgxNWE4OTgxXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV90eXBlX2U8XC9hPiBrZXlfdHlwZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKndyYXBwZWRfa2V5KTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkV4cG9ydCB3cmFwcGVkIGtleTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2ExMTQ5OTYwMWI4MzBjODc4MDY4ZTE0ODhmNzBkNmQ3YlwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjpnZXRfbWF4X2NodW5rX3NpemU8XC9hPikoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgc2l6ZV90ICpjaHVua19zaXplKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkdldCBtYXggY2h1bmsgc2l6ZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E4YzI1Mzc3N2E0Y2Y4YmI4MzUwYTA0ZTk4M2FhNGM0OFwiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzOjppbXBvcnRfZGF0YTxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBkYXRhX2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M8XC9hPiBkYXRhX3B3ZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTYxNTI4MjFkNDQyZjg0YTJmNjEyZGU0ODgxNWE4OTgxXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV90eXBlX2U8XC9hPiBkYXRhX3R5cGUsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGRhdGEsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGRhdGFfZW5jcnlwdGlvbl9pdiwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gZGF0YV9lbmNyeXB0aW9uX3RhZywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKmRhdGFfdGFnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkltcG9ydCBkYXRhPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTRmNzAzZmUzMDUyNmVmMDg4ZjcxMjJlYTRjNzAxYmI2XCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OmltcG9ydF93cmFwcGVkX2tleTxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhN2UzNTUzMjI3ZTQxOTc0NDYzOTVhNmQ1MmRlODRiYjFcIj5oYWxfc2VjdXJpdHlfa2V5c19hbGdvX3R5cGVfZTxcL2E+IGFsZ28sIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E5ODA4ZDY4ODQwZjNmYmI2MDgxNDJhNDM2YTViZmMwNVwiPmhhbF9zZWN1cml0eV9rZXlzX2hhc2hfYWxnb3JpdGhtX2U8XC9hPiBoYXNoLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBpdiwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gYWFkLCBjb25zdCBzaXplX3QgY3RyX2xlbl9vcl90YWdfc2l6ZV9iaXRzLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiB3cmFwcGluZ19rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IHdyYXBwaW5nX2tleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHdyYXBwZWRfa2V5LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBrZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IGtleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E2MTUyODIxZDQ0MmY4NGEyZjYxMmRlNDg4MTVhODk4MVwiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfdHlwZV9lPFwvYT4ga2V5X3R5cGUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICprZXlfdGFnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkltcG9ydCB3cmFwcGVkIGtleTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5ib29sKCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhYjZkZDZmNzIzNzY3N2VmNzU2MjkwZGNjZjMwODdlMGFcIj5faGFsX2JhY2tlbmRfc2VjdXJpdHlfa2V5c19mdW5jczo6aXNfc2Vfc3VwcG9ydGVkPFwvYT4pKHZvaWQpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q2hlY2sgaWYgU0UgYmFja2VuZCBpcyBzdXBwb3J0ZWQ8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+Ym9vbCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYWM1YmY5YjcwMjk0MzRhOTcwNmRjNTJlMmI3MGU4OGJhXCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OmlzX3R6X3N1cHBvcnRlZDxcL2E+KSh2b2lkKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkNoZWNrIGlmIFRaIGJhY2tlbmQgaXMgc3VwcG9ydGVkPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTljZjY1ZjUwZjNkMmM1YjU0NWJhYzkwNTBhODdkZWU2XCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OnVud3JhcF9jb25jYXRlbmF0ZWRfZGF0YTxcL2E+KShjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2NvbnRleHRfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC9hPiBjb250ZXh0LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhN2UzNTUzMjI3ZTQxOTc0NDYzOTVhNmQ1MmRlODRiYjFcIj5oYWxfc2VjdXJpdHlfa2V5c19hbGdvX3R5cGVfZTxcL2E+IGFsZ28sIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E5ODA4ZDY4ODQwZjNmYmI2MDgxNDJhNDM2YTViZmMwNVwiPmhhbF9zZWN1cml0eV9rZXlzX2hhc2hfYWxnb3JpdGhtX2U8XC9hPiBoYXNoLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiB3cmFwcGluZ19rZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IHdyYXBwaW5nX2tleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHdyYXBwZWRfa2V5LCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBrZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczxcL2E+IGtleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E2MTUyODIxZDQ0MmY4NGEyZjYxMmRlNDg4MTVhODk4MVwiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfdHlwZV9lPFwvYT4ga2V5X3R5cGUsIGNvbnN0IHNpemVfdCBrZXlfc2l6ZV9iaXRzLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiAqZGF0YSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gKmtleV90YWcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VW53cmFwIGNvbmNhdGVuYXRlZCBkYXRhPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTliY2UxNDlkMmZlMTIwNTBiZTQ4MzVlZWMzNjEwNjEyXCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OnZlcmlmeV9zaWduYXR1cmU8XC9hPikoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTdlMzU1MzIyN2U0MTk3NDQ2Mzk1YTZkNTJkZTg0YmIxXCI+aGFsX3NlY3VyaXR5X2tleXNfYWxnb190eXBlX2U8XC9hPiBhbGdvLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhOTgwOGQ2ODg0MGYzZmJiNjA4MTQyYTQzNmE1YmZjMDVcIj5oYWxfc2VjdXJpdHlfa2V5c19oYXNoX2FsZ29yaXRobV9lPFwvYT4gaGFzaCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gcHViX2tleV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19wYXNzd29yZF9faXZfX3RhZ19fc1wiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zPFwvYT4gcHViX2tleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IG1lc3NhZ2UsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IHNpZ25hdHVyZSk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5WZXJpZnkgc2lnbmF0dXJlPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTE2MmI3MTVkMWI0NDY0MjUwNmJjOTM1N2NhZGQ5Y2E4XCI+X2hhbF9iYWNrZW5kX3NlY3VyaXR5X2tleXNfZnVuY3M6OndyYXBfY29uY2F0ZW5hdGVkX2RhdGE8XC9hPikoY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19jb250ZXh0X19zXCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zPFwvYT4gY29udGV4dCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTdlMzU1MzIyN2U0MTk3NDQ2Mzk1YTZkNTJkZTg0YmIxXCI+aGFsX3NlY3VyaXR5X2tleXNfYWxnb190eXBlX2U8XC9hPiBhbGdvLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhOTgwOGQ2ODg0MGYzZmJiNjA4MTQyYTQzNmE1YmZjMDVcIj5oYWxfc2VjdXJpdHlfa2V5c19oYXNoX2FsZ29yaXRobV9lPFwvYT4gaGFzaCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gd3JhcHBpbmdfa2V5X2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX3Bhc3N3b3JkX19pdl9fdGFnX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfdGFnX3M8XC9hPiB3cmFwcGluZ19rZXlfcHdkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiBrZXlfaWQsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fcGFzc3dvcmRfX2l2X190YWdfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczxcL2E+IGtleV9wd2QsIGNvbnN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IGRhdGEsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+ICp3cmFwcGVkX2tleSk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5XcmFwIGNvbmNhdGVuYXRlZCBkYXRhPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnN0cnVjdCBoYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIHNlY3VyaXR5IGtleXMgY29udGV4dC48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRUNVUklUWV9LRVlTIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5EYXRhIEZpZWxkczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD52b2lkICo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2EyNjQ5YWE0Mzc4OWRkMzRjNDU4NjQ1MzI0OTU4ZmJmN1wiPmN0eDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD52b2lkICo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E2ZDcxNmZjMDM4YjRmZjFmMGZkYTRiZmE5YzRlZTE4OVwiPnNlc3Npb248XC9hPjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0xXCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMVwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dm9pZCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhMjY0OWFhNDM3ODlkZDM0YzQ1ODY0NTMyNDk1OGZiZjdcIj5oYWxfc2VjdXJpdHlfa2V5c19jb250ZXh0X3M6OmN0eDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+QmFja2VuZCBjb250ZXh0PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnZvaWQqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTZkNzE2ZmMwMzhiNGZmMWYwZmRhNGJmYTljNGVlMTg5XCI+aGFsX3NlY3VyaXR5X2tleXNfY29udGV4dF9zOjpzZXNzaW9uPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5CYWNrZW5kIHNlc3Npb248XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IGhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlN0cnVjdHVyZSBmb3IgYmluYXJ5IGRhdGEgZXhjaGFuZ2UuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfU0VDVVJJVFlfS0VZUyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+dW5zaWduZWQgY2hhciAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhMDA5ODhmY2NmMGZlZDgwYTcxMTNlYmM3ZjIwNDg2ZjNcIj5idWZmZXI8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+c2l6ZV90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhMTlhMmQwMzA5YzQ2NzIyYzAxNTM0ZmM0ZGNiZWU2NmFcIj5sZW5ndGg8XC9hPjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0yXCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMlwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dW5zaWduZWQgY2hhciogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhMDA5ODhmY2NmMGZlZDgwYTcxMTNlYmM3ZjIwNDg2ZjNcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M6OmJ1ZmZlcjxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+QmluYXJ5IGRhdGEgYnVmZmVyPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnNpemVfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2ExOWEyZDAzMDljNDY3MjJjMDE1MzRmYzRkY2JlZTY2YVwiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczo6bGVuZ3RoPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5CaW5hcnkgZGF0YSBsZW5ndGg8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IGhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIHBhc3N3b3JkIGFuZCBpdiBwYXJhbXMgZXhjaGFuZ2UuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfU0VDVVJJVFlfS0VZUyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2EzN2YwYTUwOGIwN2U5NmQ5N2RiMWU5MjA3YmI4YjkzOFwiPnBhc3N3b3JkPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhOThjMGNlYjMwM2MyZTBmYzA3MzJlOThkYzM2YjBmZThcIj5pdjxcL2E+PFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPGhyIFwvPlxuPGg0IGlkPVwiY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTNcIj48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0zXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5GaWVsZCBEb2N1bWVudGF0aW9uPFwvaDQ+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E5OGMwY2ViMzAzYzJlMGZjMDczMmU5OGRjMzZiMGZlOFwiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3M6Oml2PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5Jbml0aWFsaXphdGlvbiB2ZWN0b3IgYnVmZmVyPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTM3ZjBhNTA4YjA3ZTk2ZDk3ZGIxZTkyMDdiYjhiOTM4XCI+aGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfczo6cGFzc3dvcmQ8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlBhc3N3b3JkIGJ1ZmZlcjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgaGFsX3NlY3VyaXR5X2tleXNfcGFzc3dvcmRfaXZfdGFnX3M8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIHBhc3N3b3JkLCBpdiBhbmQgdGFnIHBhcmFtcyBleGNoYW5nZS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRUNVUklUWV9LRVlTIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5EYXRhIEZpZWxkczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYWVmYTQ1YWViMTU3ZGJiNWYxN2VkNTg0NzIwZTg5OTUwXCI+cGFzc3dvcmQ8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2FkNjY4YzY1ZjA5NmRkODI0YThkMWZmMTEzZThkM2I3NFwiPml2PFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhZWU5ZGI4YzUxYjRlNDRlMGEwMTg1YzZlZGQ4MzlmNWZcIj50YWc8XC9hPjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi00XCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tNFwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhZDY2OGM2NWYwOTZkZDgyNGE4ZDFmZjExM2U4ZDNiNzRcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczo6aXY8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkluaXRpYWxpemF0aW9uIHZlY3RvciBidWZmZXI8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhZWZhNDVhZWIxNTdkYmI1ZjE3ZWQ1ODQ3MjBlODk5NTBcIj5oYWxfc2VjdXJpdHlfa2V5c19wYXNzd29yZF9pdl90YWdfczo6cGFzc3dvcmQ8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlBhc3N3b3JkIGJ1ZmZlcjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2FlZTlkYjhjNTFiNGU0NGUwYTAxODVjNmVkZDgzOWY1ZlwiPmhhbF9zZWN1cml0eV9rZXlzX3Bhc3N3b3JkX2l2X3RhZ19zOjp0YWc8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlRhZyBidWZmZXI8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IGhhbF9zZWN1cml0eV9rZXlzX2tia2RmX3BhcmFtc19zPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBLQktERiBwYXJhbXMgZXhjaGFuZ2UuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfU0VDVVJJVFlfS0VZUyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYWNiNmU1MDM0ZmNhZjYwYzlhYTlkODVhN2Q1MjAwMTk1XCI+aGFsX3NlY3VyaXR5X2tleXNfa2RmX3ByZl90eXBlX2U8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTQ2OWE3M2VhOTRlMmNlZTAyZDZhNDhjY2ZiZWU0MzEyXCI+cHJmPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnNpemVfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYWE0MTg5YWViZjYyOTgyY2M0ZWIwZTlhNDNlZDRjZjU3XCI+bGVuZ3RoPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E4NDlmZmE1YjA3ZGI3NDlhMGY4ZjBiZmQ2MTc1YTJhMFwiPmhhbF9zZWN1cml0eV9rZXlzX2tia2RmX21vZGVfZTxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhZjY1NDBiMTM4ZTRjMzEwOWE5Y2ViMDcwYjRmODgzOGZcIj5tb2RlPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhYTZiODA2MjYwN2VjNWNjYTNkN2E0ODYyNTIzNTVjYmRcIj5sYWJlbDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTAwYjA0ODc5MWZiNGRlOWUxOWY1NGY3N2IzMDkwOWUyXCI+Y29udGV4dDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI3N0cnVjdGhhbF9fc2VjdXJpdHlfX2tleXNfX2RhdGFfX3NcIj5oYWxfc2VjdXJpdHlfa2V5c19kYXRhX3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYWFjYjFjOTQ3MDA4OGJkNTVmZTZiMjg5ZjJlMjIwOWE4XCI+Zml4ZWQ8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYWIxZDIxODliMTgzY2E4ZDZhM2M3MTM2MjdmYTU1M2YyXCI+aGFsX3NlY3VyaXR5X2tleXNfa2JrZGZfY291bnRlcl9sb2NhdGlvbl9lPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2FjYTVkOTk1NDQxMzdlNWE4NzVhZjAxMjZhYTc4NGJmZlwiPmxvY2F0aW9uPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnNpemVfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYWM1YWZmMDkzMGE3NWZhM2U3NDcyOGQ4ODkyZmM1MmEzXCI+cmxlbjxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5zaXplX3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E3YzJhOWY2MzliYTE1NjJkOTU0YTNkYTcwZWRmYjI0ZVwiPmxsZW48XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+Ym9vbDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTljMmRhNmU3MjYxOTU4N2E0NzZjYWRlYzgzM2RkYTRjXCI+bm9fc2VwYXJhdG9yPFwvYT48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDQgaWQ9XCJjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tNVwiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTVcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkZpZWxkIERvY3VtZW50YXRpb248XC9oND5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYTAwYjA0ODc5MWZiNGRlOWUxOWY1NGY3N2IzMDkwOWUyXCI+aGFsX3NlY3VyaXR5X2tleXNfa2JrZGZfcGFyYW1zX3M6OmNvbnRleHQ8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gdGhlIGRlcml2ZWQga2V5PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0aGFsX19zZWN1cml0eV9fa2V5c19fZGF0YV9fc1wiPmhhbF9zZWN1cml0eV9rZXlzX2RhdGFfczxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYWFjYjFjOTQ3MDA4OGJkNTVmZTZiMjg5ZjJlMjIwOWE4XCI+aGFsX3NlY3VyaXR5X2tleXNfa2JrZGZfcGFyYW1zX3M6OmZpeGVkPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5LQktERiBmaXhlZCBpbnB1dCByZXBsYWNpbmcgY29udGV4dCBhbmQgbGFiZWw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3NlY3VyaXR5X19rZXlzX19kYXRhX19zXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV9zPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhYTZiODA2MjYwN2VjNWNjYTNkN2E0ODYyNTIzNTVjYmRcIj5oYWxfc2VjdXJpdHlfa2V5c19rYmtkZl9wYXJhbXNfczo6bGFiZWw8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlB1cnBvc2UgZm9yIHRoZSBkZXJpdmVkIGtleTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zaXplX3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhYTQxODlhZWJmNjI5ODJjYzRlYjBlOWE0M2VkNGNmNTdcIj5oYWxfc2VjdXJpdHlfa2V5c19rYmtkZl9wYXJhbXNfczo6bGVuZ3RoPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5MZW5ndGggb2YgdGhlIGRlcml2ZWQga2V5IGluIGJ5dGVzPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnNpemVfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E3YzJhOWY2MzliYTE1NjJkOTU0YTNkYTcwZWRmYjI0ZVwiPmhhbF9zZWN1cml0eV9rZXlzX2tia2RmX3BhcmFtc19zOjpsbGVuPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TcGVjaWZpZXMgdGhlIGV4dGVudCBvZiB0aGUgbGVuZ3RoIHN1ZmZpeCByZXByZXNlbnRhdGlvbiBpbiBiaXRzPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2FiMWQyMTg5YjE4M2NhOGQ2YTNjNzEzNjI3ZmE1NTNmMlwiPmhhbF9zZWN1cml0eV9rZXlzX2tia2RmX2NvdW50ZXJfbG9jYXRpb25fZTxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYWNhNWQ5OTU0NDEzN2U1YTg3NWFmMDEyNmFhNzg0YmZmXCI+aGFsX3NlY3VyaXR5X2tleXNfa2JrZGZfcGFyYW1zX3M6OmxvY2F0aW9uPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TcGVjaWZpZXMgbG9jYXRpb24gb2YgdGhlIGNvdW50ZXI8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTg0OWZmYTViMDdkYjc0OWEwZjhmMGJmZDYxNzVhMmEwXCI+aGFsX3NlY3VyaXR5X2tleXNfa2JrZGZfbW9kZV9lPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNhZjY1NDBiMTM4ZTRjMzEwOWE5Y2ViMDcwYjRmODgzOGZcIj5oYWxfc2VjdXJpdHlfa2V5c19rYmtkZl9wYXJhbXNfczo6bW9kZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+S0RGIG1vZGU8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+Ym9vbCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E5YzJkYTZlNzI2MTk1ODdhNDc2Y2FkZWM4MzNkZGE0Y1wiPmhhbF9zZWN1cml0eV9rZXlzX2tia2RmX3BhcmFtc19zOjpub19zZXBhcmF0b3I8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNraXAgdGhlIHplcm8gb2N0ZXQgc2VwYXJhdG9yIGJldHdlZW4gbGFiZWwgYW5kIGNvbnRleHQ8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYWNiNmU1MDM0ZmNhZjYwYzlhYTlkODVhN2Q1MjAwMTk1XCI+aGFsX3NlY3VyaXR5X2tleXNfa2RmX3ByZl90eXBlX2U8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2E0NjlhNzNlYTk0ZTJjZWUwMmQ2YTQ4Y2NmYmVlNDMxMlwiPmhhbF9zZWN1cml0eV9rZXlzX2tia2RmX3BhcmFtc19zOjpwcmY8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlBzZXVkby1yYW5kb20gZnVuY3Rpb248XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c2l6ZV90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjYWM1YWZmMDkzMGE3NWZhM2U3NDcyOGQ4ODkyZmM1MmEzXCI+aGFsX3NlY3VyaXR5X2tleXNfa2JrZGZfcGFyYW1zX3M6OnJsZW48XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNwZWNpZmllcyB0aGUgbGVuZ3RoIG9mIHRoZSBjb3VudGVyIHJlcHJlc2VudGF0aW9uIGluIGJpdHM8XC9wPlxuPGhyIFwvPlxuPGgyIGlkPVwiY29udGVudC10eXBlZGVmLWRvY3VtZW50YXRpb25cIj48YSBocmVmPVwiI2NvbnRlbnQtdHlwZWRlZi1kb2N1bWVudGF0aW9uXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5UeXBlZGVmIERvY3VtZW50YXRpb248XC9oMj5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgc3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjc3RydWN0X19oYWxfX2JhY2tlbmRfX3NlY3VyaXR5X19rZXlzX19mdW5jc1wiPl9oYWxfYmFja2VuZF9zZWN1cml0eV9rZXlzX2Z1bmNzPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTZhMTdlN2U0MTI3N2UwYWFmMTA1MDgyMDE3NGU4OTExXCI+aGFsX2JhY2tlbmRfc2VjdXJpdHlfa2V5c19mdW5jczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBzZWN1cml0eSBrZXlzIGZ1bmN0aW9ucy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRUNVUklUWV9LRVlTIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHNpemVfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhNWYzOGI1NjU4ZDQ0ZjQ0MGM1NTVlYjY2NmVkZjJjOTlcIj5oYWxfc2VjdXJpdHlfa2V5c19jaXBoZXJfY29udGV4dF90PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5UeXBlIGZvciBjaXBoZXIgY29udGV4dC48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRUNVUklUWV9LRVlTIDEuMDxcL3A+XG48aHIgXC8+XG48aDIgaWQ9XCJjb250ZW50LWVudW1lcmF0aW9uLXR5cGUtZG9jdW1lbnRhdGlvblwiPjxhIGhyZWY9XCIjY29udGVudC1lbnVtZXJhdGlvbi10eXBlLWRvY3VtZW50YXRpb25cIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkVudW1lcmF0aW9uIFR5cGUgRG9jdW1lbnRhdGlvbjxcL2gyPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhN2UzNTUzMjI3ZTQxOTc0NDYzOTVhNmQ1MmRlODRiYjFcIj5oYWxfc2VjdXJpdHlfa2V5c19hbGdvX3R5cGVfZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIGFsZ29yaXRobSB0eXBlLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFQ1VSSVRZX0tFWVMgMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfQUxHT19UWVBFX0FFU19DVFI8XC9lbT4gfCBBRVMgQ1RSIHxcbnwgLS0tIHwgLS0tIHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0FMR09fVFlQRV9BRVNfQ0JDPFwvZW0+IHwgQUVTIENCQyB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19BTEdPX1RZUEVfQUVTX0dDTTxcL2VtPiB8IEFFUyBHQ00gfFxufCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfQUxHT19UWVBFX0FFU19DRkI8XC9lbT4gfCBBRVMgQ0ZCIHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0FMR09fVFlQRV9SU0FfT0FFUDxcL2VtPiB8IFJTQSBPQUVQIHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0FMR09fVFlQRV9SU0E8XC9lbT4gfCBSU0EgfFxufCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfQUxHT19UWVBFX0RTQTxcL2VtPiB8IERTQSB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19BTEdPX1RZUEVfRUNEU0E8XC9lbT4gfCBFQ0RTQSB8PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmVudW0gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VDVVJJVFlfX0tFWVNfX01PRFVMRS5tZCNnYTYxNTI4MjFkNDQyZjg0YTJmNjEyZGU0ODgxNWE4OTgxXCI+aGFsX3NlY3VyaXR5X2tleXNfZGF0YV90eXBlX2U8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVudW1lcmF0aW9uIGZvciBkYXRhIHR5cGUuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfU0VDVVJJVFlfS0VZUyAxLjA8XC9wPlxuPHA+PHN0cm9uZz5FbnVtZXJhdG9yOjxcL3N0cm9uZz5cbjogICB8IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19EQVRBX1RZUEVfQklOQVJZX0RBVEE8XC9lbT4gfCBCaW5hcnkgZGF0YSB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19EQVRBX1RZUEVfS0VZX0FFUzxcL2VtPiB8IEFFUyBrZXkgfFxufCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfREFUQV9UWVBFX0tFWV9SU0FfUFVCTElDPFwvZW0+IHwgUHVibGljIFJTQSBrZXkgfFxufCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfREFUQV9UWVBFX0tFWV9SU0FfUFJJVkFURTxcL2VtPiB8IFByaXZhdGUgUlNBIGtleSB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19EQVRBX1RZUEVfS0VZX0RTQV9QVUJMSUM8XC9lbT4gfCBQdWJsaWMgRFNBIGtleSB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19EQVRBX1RZUEVfS0VZX0RTQV9QUklWQVRFPFwvZW0+IHwgUHJpdmF0ZSBEU0Ega2V5IHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0RBVEFfVFlQRV9LRVlfRUNEU0FfUFVCTElDPFwvZW0+IHwgUHVibGljIEVDRFNBIGtleSB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19EQVRBX1RZUEVfS0VZX0VDRFNBX1BSSVZBVEU8XC9lbT4gfCBQcml2YXRlIEVDRFNBIGtleSB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19EQVRBX1RZUEVfS0VZX0tFTV9QVUJMSUM8XC9lbT4gfCBQdWJsaWMgS0VNIGtleSB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19EQVRBX1RZUEVfS0VZX0tFTV9QUklWQVRFPFwvZW0+IHwgUHJpdmF0ZSBLRU0ga2V5IHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhODFmNzdkYmEwNTA5ZjkzMTk2MjVjNTIwNzgxN2MzOTZcIj5oYWxfc2VjdXJpdHlfa2V5c19kYnBfc2NoZW1lX3ZlcnNpb25fZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIERCUCBzY2hlbWUgdmVyc2lvbi48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRUNVUklUWV9LRVlTIDEuMDxcL3A+XG48cD48c3Ryb25nPkVudW1lcmF0b3I6PFwvc3Ryb25nPlxuOiAgIHwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0RCUF9TQ0hFTUVfVkVSU0lPTl8xPFwvZW0+IHwgRGF0YWJhc2UgcHJvdGVjdGlvbiBzY2hlbWUgdmVyc2lvbiAxIChBRVMtMjU2LUNCQykgfFxufCAtLS0gfCAtLS0gfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5lbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2FkMTQzZTkwY2M4MmQyNTA5Y2FiMjIwNTUzMGQzOGM3Y1wiPmhhbF9zZWN1cml0eV9rZXlzX2VjX3R5cGVfZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIGVsbGlwdGljIGN1cnZlIHR5cGUuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfU0VDVVJJVFlfS0VZUyAxLjA8XC9wPlxuPHA+PHN0cm9uZz5FbnVtZXJhdG9yOjxcL3N0cm9uZz5cbjogICB8IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19FQ19UWVBFX1BSSU1FMTkyVjE8XC9lbT4gfCBQUklNRTE5MlYxIHxcbnwgLS0tIHwgLS0tIHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0VDX1RZUEVfUFJJTUUyNTZWMTxcL2VtPiB8IFBSSU1FMjU2VjEgfFxufCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfRUNfVFlQRV9TRUNQMzg0UjE8XC9lbT4gfCBTRUNQMzg0UjEgfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5lbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E5MWUzYzE4NDVlMGNiNjAxYWU2Yjk1MWUyMzBlYjFjZlwiPmhhbF9zZWN1cml0eV9rZXlzX2Vycm9yX2U8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVudW1lcmF0aW9uIGZvciBzZWN1cml0eSBrZXlzIGVycm9ycy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRUNVUklUWV9LRVlTIDEuMDxcL3A+XG48cD48c3Ryb25nPkVudW1lcmF0b3I6PFwvc3Ryb25nPlxuOiAgIHwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0VSUk9SX05PTkU8XC9lbT4gfCBTdWNjZXNzZnVsIHxcbnwgLS0tIHwgLS0tIHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0VSUk9SX0lOVkFMSURfUEFSQU1FVEVSPFwvZW0+IHwgSW52YWxpZCBpbnB1dCBwYXJhbWV0ZXIgfFxufCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfRVJST1JfT1VUX09GX01FTU9SWTxcL2VtPiB8IE91dCBvZiBtZW1vcnkgfFxufCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfRVJST1JfTk9UX1NVUFBPUlRFRDxcL2VtPiB8IE9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0VSUk9SX0FVVEhFTlRJQ0FUSU9OX0ZBSUxFRDxcL2VtPiB8IEF1dGhlbnRpY2F0aW9uIGZhaWxlZCB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19FUlJPUl9WRVJJRklDQVRJT05fRkFJTEVEPFwvZW0+IHwgVmVyaWZpY2F0aW9uIGZhaWxlZCB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19FUlJPUl9JTlRFUk5BTF9FUlJPUjxcL2VtPiB8IEludGVybmFsIGVycm9yIHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0VSUk9SX1RBUkdFVF9ERUFEPFwvZW0+IHwgVGFyZ2V0IGRlYWQgfFxufCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfRVJST1JfTk9fS0VZPFwvZW0+IHwgTm8ga2V5IGF2YWlsYWJsZSB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19FUlJPUl9OT1RfUEVSTUlUVEVEPFwvZW0+IHwgT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5lbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUubWQjZ2E5ODA4ZDY4ODQwZjNmYmI2MDgxNDJhNDM2YTViZmMwNVwiPmhhbF9zZWN1cml0eV9rZXlzX2hhc2hfYWxnb3JpdGhtX2U8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVudW1lcmF0aW9uIGZvciBoYXNoIGFsZ29yaXRobS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRUNVUklUWV9LRVlTIDEuMDxcL3A+XG48cD48c3Ryb25nPkVudW1lcmF0b3I6PFwvc3Ryb25nPlxuOiAgIHwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0hBU0hfQUxHT1JJVEhNX05PTkU8XC9lbT4gfCBOb25lIHxcbnwgLS0tIHwgLS0tIHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0hBU0hfQUxHT1JJVEhNX1NIQTE8XC9lbT4gfCBTSEExIHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0hBU0hfQUxHT1JJVEhNX1NIQTI1NjxcL2VtPiB8IFNIQTI1NiB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19IQVNIX0FMR09SSVRITV9TSEEzODQ8XC9lbT4gfCBTSEEzODQgfFxufCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfSEFTSF9BTEdPUklUSE1fU0hBNTEyPFwvZW0+IHwgU0hBNTEyIHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhYjFkMjE4OWIxODNjYThkNmEzYzcxMzYyN2ZhNTUzZjJcIj5oYWxfc2VjdXJpdHlfa2V5c19rYmtkZl9jb3VudGVyX2xvY2F0aW9uX2U8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVudW1lcmF0aW9uIGZvciBLQktERiBjb3VudGVyIGxvY2F0aW9uLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFQ1VSSVRZX0tFWVMgMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfS0JLREZfQ09VTlRFUl9MT0NBVElPTl9CRUZPUkVfRklYRUQ8XC9lbT4gfCBCZWZvcmUgZml4ZWQgfFxufCAtLS0gfCAtLS0gfFxufCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfS0JLREZfQ09VTlRFUl9MT0NBVElPTl9BRlRFUl9GSVhFRDxcL2VtPiB8IEFmdGVyIGZpeGVkIHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX0tCS0RGX0NPVU5URVJfTE9DQVRJT05fTUlERExFX0ZJWEVEPFwvZW0+IHwgTWlkZGxlIGZpeGVkIHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhODQ5ZmZhNWIwN2RiNzQ5YTBmOGYwYmZkNjE3NWEyYTBcIj5oYWxfc2VjdXJpdHlfa2V5c19rYmtkZl9tb2RlX2U8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVudW1lcmF0aW9uIGZvciBLQktERiBtb2RlLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFQ1VSSVRZX0tFWVMgMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfS0JLREZfTU9ERV9DT1VOVEVSPFwvZW0+IHwgQ291bnRlciBtb2RlIHxcbnwgLS0tIHwgLS0tIHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhY2I2ZTUwMzRmY2FmNjBjOWFhOWQ4NWE3ZDUyMDAxOTVcIj5oYWxfc2VjdXJpdHlfa2V5c19rZGZfcHJmX3R5cGVfZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIEtERiBQUkYgdHlwZS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRUNVUklUWV9LRVlTIDEuMDxcL3A+XG48cD48c3Ryb25nPkVudW1lcmF0b3I6PFwvc3Ryb25nPlxuOiAgIHwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX1BSRl9UWVBFX0hNQUNfU0hBMjU2PFwvZW0+IHwgSE1BQ19TSEEyNTYgfFxufCAtLS0gfCAtLS0gfFxufCA8ZW0+SEFMX1NFQ1VSSVRZX0tFWVNfUFJGX1RZUEVfSE1BQ19TSEEzODQ8XC9lbT4gfCBITUFDX1NIQTM4NCB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19QUkZfVFlQRV9ITUFDX1NIQTUxMjxcL2VtPiB8IEhNQUNfU0hBNTEyIHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhNTc2MWRkMmRjY2Y0NGMwMDdiMTk1YjA4MDA3N2EzN2FcIj5oYWxfc2VjdXJpdHlfa2V5c19rZW1fdHlwZV9lPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbnVtZXJhdGlvbiBmb3IgTUwgS0VNIHR5cGUuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfU0VDVVJJVFlfS0VZUyAxLjA8XC9wPlxuPHA+PHN0cm9uZz5FbnVtZXJhdG9yOjxcL3N0cm9uZz5cbjogICB8IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19NTF9LRU1fNzY4PFwvZW0+IHwgTUwgS0VNIDc2OCB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19NTF9LRU1fMTAyNDxcL2VtPiB8IE1MIEtFTSAxMDI0IHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRUNVUklUWV9fS0VZU19fTU9EVUxFLm1kI2dhYmIzZDA0Njg2MThhNzA4NjY1M2I2MjhlMTBmNDVmNTdcIj5oYWxfc2VjdXJpdHlfa2V5c19wYWRkaW5nX2FsZ29yaXRobV9lPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbnVtZXJhdGlvbiBmb3IgcGFkZGluZyBhbGdvcml0aG0uPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfU0VDVVJJVFlfS0VZUyAxLjA8XC9wPlxuPHA+PHN0cm9uZz5FbnVtZXJhdG9yOjxcL3N0cm9uZz5cbjogICB8IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19QQURESU5HX0FMR09SSVRITV9OT05FPFwvZW0+IHwgTm9uZSB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19QQURESU5HX0FMR09SSVRITV9QS0NTNzxcL2VtPiB8IFBLQ1MjNyB8XG58IDxlbT5IQUxfU0VDVVJJVFlfS0VZU19QQURESU5HX0FMR09SSVRITV9JU085Nzk3X00yPFwvZW0+IHwgSVNPOTc5NyBtZXRob2QgMiBwYWRkaW5nIHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX1BBRERJTkdfQUxHT1JJVEhNX1BLQ1MxPFwvZW0+IHwgUEtDUyMxIHxcbnwgPGVtPkhBTF9TRUNVUklUWV9LRVlTX1BBRERJTkdfQUxHT1JJVEhNX1g5MzE8XC9lbT4gfCBYMzkxIHw8XC9wPlxuPGhyIFwvPlxuPHA+RXhjZXB0IGFzIG5vdGVkLCB0aGlzIGNvbnRlbnQgLSBleGNsdWRpbmcgdGhlIENvZGUgRXhhbXBsZXMgLSBpcyBsaWNlbnNlZCB1bmRlciA8YSBocmVmPVwiaHR0cDpcL1wvY3JlYXRpdmVjb21tb25zLm9yZ1wvbGljZW5zZXNcL2J5XC8zLjBcL2xlZ2FsY29kZVwiPkNyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24gMy4wPFwvYT5cbmFuZCBhbGwgb2YgdGhlIENvZGUgRXhhbXBsZXMgY29udGFpbmVkIGhlcmVpbiBhcmUgbGljZW5zZWQgdW5kZXIgPGEgaHJlZj1cImh0dHBzOlwvXC93d3cudGl6ZW4ub3JnXC9ic2QtMy1jbGF1c2UtbGljZW5zZVwiPkJTRC0zLUNsYXVzZTxcL2E+LjxiciBcLz5cbkZvciBkZXRhaWxzLCBzZWUgdGhlIDxhIGhyZWY9XCJodHRwczpcL1wvd3d3LnRpemVuLm9yZ1wvY29udGVudC1saWNlbnNlXCI+Q29udGVudCBMaWNlbnNlPFwvYT4uPFwvcD5cbiIsInRhYmxlX29mX2NvbnRlbnQiOiI8dWwgY2xhc3M9XCJ0YWJsZS1vZi1jb250ZW50c1wiPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1yZXF1aXJlZC1oZWFkZXJcIj5SZXF1aXJlZCBIZWFkZXI8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1vdmVydmlld1wiPk92ZXJ2aWV3PFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZGF0YS1zdHJ1Y3R1cmUtZG9jdW1lbnRhdGlvblwiPkRhdGEgU3RydWN0dXJlIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uXCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMVwiPkZpZWxkIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTJcIj5GaWVsZCBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0zXCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tNFwiPkZpZWxkIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTVcIj5GaWVsZCBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtdHlwZWRlZi1kb2N1bWVudGF0aW9uXCI+VHlwZWRlZiBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZW51bWVyYXRpb24tdHlwZS1kb2N1bWVudGF0aW9uXCI+RW51bWVyYXRpb24gVHlwZSBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxcL3VsPlxuIiwidGl0bGUiOiJUaXplbiBIQUwgQVBJOiBLZXlzIiwicmF3IjpudWxsfSx7ImNsYXNzIjoiQXBwXFxTZXJ2aWNlc1xcRG9jdW1lbnRhdGlvblxcRGF0YVxcUmVuZGVyZWRNYXJrZG93biIsInMiOiJ3cmJsIn1dfSx7InMiOiJhcnIifV19LCJtZW1vIjp7ImlkIjoiNHFaTVVGQlR6ejRYZ1hqRGhUS0ciLCJuYW1lIjoiX19tb3VudFBhcmFtc0NvbnRhaW5lciIsInBhdGgiOiJkb2NzXC9wbGF0Zm9ybVwvaGFsXC9hcGlcLzEuMC4wXC9ncm91cF9fSEFMQVBJX19IQUxfX1NFQ1VSSVRZX19LRVlTX19NT0RVTEUiLCJtZXRob2QiOiJHRVQiLCJyZWxlYXNlIjoiYS1hLWEifSwiY2hlY2tzdW0iOiI2NjIzMGFmMDUzNjY2ZmZmMDdiMDBmM2JiNGIyNjg0ZTc5ZDE3NzZiZWU5Mzg3ZTMzMWE3NDMwYTMxYzMxNTEwIn0=')" >