@layerzerolabs/protocol-stellar-v2 0.2.21 → 0.2.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/.turbo/turbo-build.log +347 -271
  2. package/.turbo/turbo-lint.log +277 -208
  3. package/.turbo/turbo-test.log +1700 -1370
  4. package/Cargo.lock +22 -51
  5. package/Cargo.toml +6 -1
  6. package/contracts/common-macros/src/auth.rs +10 -9
  7. package/contracts/common-macros/src/contract_ttl.rs +1 -4
  8. package/contracts/common-macros/src/error.rs +1 -3
  9. package/contracts/common-macros/src/lib.rs +65 -61
  10. package/contracts/common-macros/src/storage.rs +212 -65
  11. package/contracts/common-macros/src/tests/auth.rs +75 -6
  12. package/contracts/common-macros/src/tests/contract_ttl.rs +383 -350
  13. package/contracts/common-macros/src/tests/error.rs +9 -21
  14. package/contracts/common-macros/src/tests/lz_contract.rs +80 -0
  15. package/contracts/common-macros/src/tests/mod.rs +2 -0
  16. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_multisig_code.snap +20 -3
  17. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_ownable_code.snap +28 -1
  18. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap +8 -43
  19. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contracttrait_code.snap +6 -29
  20. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__lz_contract__snapshot_generated_lz_contract_code.snap +31 -0
  21. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_extendable__snapshot_generated_ttl_extendable_code.snap +8 -0
  22. package/contracts/common-macros/src/tests/storage/extract_fields.rs +87 -0
  23. package/contracts/common-macros/src/tests/storage/gen_accessor_methods.rs +223 -0
  24. package/contracts/common-macros/src/tests/storage/gen_args.rs +65 -0
  25. package/contracts/common-macros/src/tests/storage/gen_enum_variant.rs +78 -0
  26. package/contracts/common-macros/src/tests/storage/gen_key.rs +108 -0
  27. package/contracts/common-macros/src/tests/storage/gen_params.rs +105 -0
  28. package/contracts/common-macros/src/tests/{storage.rs → storage/generate_storage.rs} +54 -129
  29. package/contracts/common-macros/src/tests/storage/is_primitive_type.rs +48 -0
  30. package/contracts/common-macros/src/tests/storage/mod.rs +16 -0
  31. package/contracts/common-macros/src/tests/storage/parse_default.rs +164 -0
  32. package/contracts/common-macros/src/tests/storage/parse_name.rs +159 -0
  33. package/contracts/common-macros/src/tests/storage/parse_no_ttl_extension.rs +124 -0
  34. package/contracts/common-macros/src/tests/storage/parse_storage_type.rs +174 -0
  35. package/contracts/common-macros/src/tests/storage/snapshots/common_macros__tests__storage__generate_storage__snapshot_generated_storage_code.snap +412 -0
  36. package/contracts/common-macros/src/tests/storage/storage_kind.rs +39 -0
  37. package/contracts/common-macros/src/tests/storage/test_setup.rs +25 -0
  38. package/contracts/common-macros/src/tests/storage/validate_attrs.rs +138 -0
  39. package/contracts/common-macros/src/tests/storage/variant_config.rs +226 -0
  40. package/contracts/common-macros/src/tests/test_helpers.rs +4 -10
  41. package/contracts/common-macros/src/tests/ttl_configurable.rs +2 -2
  42. package/contracts/common-macros/src/tests/ttl_extendable.rs +32 -0
  43. package/contracts/common-macros/src/tests/upgradeable.rs +118 -2
  44. package/contracts/common-macros/src/ttl_configurable.rs +1 -4
  45. package/contracts/common-macros/src/upgradeable.rs +21 -3
  46. package/contracts/endpoint-v2/Cargo.toml +0 -4
  47. package/contracts/endpoint-v2/src/endpoint_v2.rs +37 -17
  48. package/contracts/endpoint-v2/src/errors.rs +26 -1
  49. package/contracts/endpoint-v2/src/interfaces/layerzero_endpoint_v2.rs +1 -1
  50. package/contracts/endpoint-v2/src/interfaces/message_lib_manager.rs +4 -4
  51. package/contracts/endpoint-v2/src/interfaces/messaging_composer.rs +2 -2
  52. package/contracts/endpoint-v2/src/lib.rs +0 -1
  53. package/contracts/endpoint-v2/src/message_lib_manager.rs +39 -8
  54. package/contracts/endpoint-v2/src/messaging_channel.rs +36 -4
  55. package/contracts/endpoint-v2/src/messaging_composer.rs +18 -4
  56. package/contracts/endpoint-v2/src/storage.rs +9 -1
  57. package/contracts/endpoint-v2/src/tests/endpoint_setup.rs +2 -2
  58. package/contracts/endpoint-v2/src/tests/endpoint_v2/pay_messaging_fees.rs +1 -1
  59. package/contracts/endpoint-v2/src/tests/endpoint_v2/require_oapp_auth.rs +2 -2
  60. package/contracts/endpoint-v2/src/tests/message_lib_manager/register_library.rs +3 -3
  61. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_receive_lib_for_eid.rs +5 -5
  62. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_registered.rs +2 -2
  63. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_send_lib_for_eid.rs +5 -5
  64. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_supported_eid.rs +3 -3
  65. package/contracts/endpoint-v2/src/tests/messaging_channel/nilify.rs +1 -1
  66. package/contracts/endpoint-v2/src/tests/messaging_composer/clear_compose.rs +4 -3
  67. package/contracts/endpoint-v2/src/tests/messaging_composer/lz_compose_alert.rs +7 -2
  68. package/contracts/endpoint-v2/src/tests/messaging_composer/mod.rs +4 -0
  69. package/contracts/endpoint-v2/src/tests/messaging_composer/send_compose.rs +7 -2
  70. package/contracts/layerzero-views/src/layerzero_view.rs +0 -1
  71. package/contracts/layerzero-views/src/tests/mod.rs +1 -0
  72. package/contracts/layerzero-views/src/tests/types_tests.rs +31 -0
  73. package/contracts/layerzero-views/src/types.rs +2 -3
  74. package/contracts/macro-integration-tests/tests/runtime/contract_ttl/constructor.rs +61 -0
  75. package/contracts/macro-integration-tests/tests/runtime/contract_ttl/contract_impl_ttl_extension.rs +97 -0
  76. package/contracts/macro-integration-tests/tests/runtime/contract_ttl/contract_trait_ttl_extension.rs +99 -0
  77. package/contracts/macro-integration-tests/tests/runtime/contract_ttl/mod.rs +3 -0
  78. package/contracts/macro-integration-tests/tests/runtime/lz_contract/mod.rs +5 -0
  79. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_default.rs +86 -0
  80. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_multisig.rs +47 -0
  81. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_multisig_upgradeable.rs +77 -0
  82. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_upgradeable.rs +114 -0
  83. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_upgradeable_no_migration.rs +105 -0
  84. package/contracts/macro-integration-tests/tests/runtime/multisig/admin_entrypoints.rs +242 -0
  85. package/contracts/macro-integration-tests/tests/runtime/multisig/mod.rs +9 -0
  86. package/contracts/macro-integration-tests/tests/runtime/multisig/self_auth.rs +54 -0
  87. package/contracts/macro-integration-tests/tests/runtime/ownable/initialization.rs +13 -0
  88. package/contracts/macro-integration-tests/tests/runtime/ownable/mod.rs +1 -0
  89. package/contracts/macro-integration-tests/tests/runtime/ownable/ownership_transfer.rs +70 -1
  90. package/contracts/macro-integration-tests/tests/runtime/ownable/two_step_transfer.rs +219 -0
  91. package/contracts/macro-integration-tests/tests/runtime/storage/keyed_roundtrip.rs +41 -0
  92. package/contracts/macro-integration-tests/tests/runtime/storage/ttl_extension.rs +48 -16
  93. package/contracts/macro-integration-tests/tests/runtime/storage/unkeyed_roundtrip.rs +10 -0
  94. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/configuration.rs +96 -3
  95. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/freeze.rs +4 -0
  96. package/contracts/macro-integration-tests/tests/runtime/ttl_extendable/extend_instance_ttl.rs +64 -0
  97. package/contracts/macro-integration-tests/tests/runtime/ttl_extendable/mod.rs +16 -0
  98. package/contracts/macro-integration-tests/tests/runtime/upgradeable/migrate_guard_and_state.rs +305 -0
  99. package/contracts/macro-integration-tests/tests/runtime/upgradeable/mod.rs +3 -0
  100. package/contracts/macro-integration-tests/tests/runtime/upgradeable/no_migration.rs +59 -0
  101. package/contracts/macro-integration-tests/tests/runtime/upgradeable/upgrade_then_migrate.rs +88 -0
  102. package/contracts/macro-integration-tests/tests/runtime.rs +5 -0
  103. package/contracts/macro-integration-tests/tests/ui/contract_impl/fail/not_impl_item.rs +6 -0
  104. package/contracts/macro-integration-tests/tests/ui/contract_impl/fail/not_impl_item.stderr +7 -0
  105. package/contracts/macro-integration-tests/tests/ui/contract_impl/pass/basic.rs +102 -0
  106. package/contracts/macro-integration-tests/tests/ui/contract_trait/fail/not_a_trait.rs +6 -0
  107. package/contracts/macro-integration-tests/tests/ui/contract_trait/fail/not_a_trait.stderr +7 -0
  108. package/contracts/macro-integration-tests/tests/ui/contract_trait/pass/basic.rs +83 -0
  109. package/contracts/macro-integration-tests/tests/ui/error/fail/discriminant_too_large.rs +11 -0
  110. package/contracts/macro-integration-tests/tests/ui/error/fail/discriminant_too_large.stderr +7 -0
  111. package/contracts/macro-integration-tests/tests/ui/error/fail/non_enum_input.rs +11 -0
  112. package/contracts/macro-integration-tests/tests/ui/error/fail/non_enum_input.stderr +7 -0
  113. package/contracts/macro-integration-tests/tests/ui/error/pass/basic.rs +22 -0
  114. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/invalid_option.rs +6 -0
  115. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/invalid_option.stderr +7 -0
  116. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/multisig_rejects_ownable_api.rs +20 -0
  117. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/multisig_rejects_ownable_api.stderr +20 -0
  118. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/not_a_struct.rs +8 -0
  119. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/not_a_struct.stderr +7 -0
  120. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_invalid_inner_option.rs +10 -0
  121. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_invalid_inner_option.stderr +7 -0
  122. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_missing_internal.rs +20 -0
  123. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_missing_internal.stderr +86 -0
  124. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/basic.rs +45 -0
  125. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/multisig.rs +34 -0
  126. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/multisig_upgradeable.rs +30 -0
  127. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/upgradeable.rs +39 -0
  128. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/upgradeable_no_migration.rs +28 -0
  129. package/contracts/macro-integration-tests/tests/ui/multisig/fail/non_struct_input.rs +8 -0
  130. package/contracts/macro-integration-tests/tests/ui/multisig/fail/non_struct_input.stderr +7 -0
  131. package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_api.rs +20 -0
  132. package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_api.stderr +12 -0
  133. package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_trait.rs +20 -0
  134. package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_trait.stderr +5 -0
  135. package/contracts/macro-integration-tests/tests/ui/multisig/pass/basic.rs +49 -0
  136. package/contracts/macro-integration-tests/tests/ui/ownable/fail/non_struct_input.rs +8 -0
  137. package/contracts/macro-integration-tests/tests/ui/ownable/fail/non_struct_input.stderr +7 -0
  138. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_auth.rs +19 -0
  139. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_auth.stderr +12 -0
  140. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.rs +1 -1
  141. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.stderr +0 -8
  142. package/contracts/macro-integration-tests/tests/ui/ownable/pass/basic.rs +39 -0
  143. package/contracts/macro-integration-tests/tests/ui/ownable/pass/only_auth_env_param_variants.rs +7 -1
  144. package/contracts/macro-integration-tests/tests/ui/storage/fail/invalid_storage_type_param.stderr +1 -1
  145. package/contracts/macro-integration-tests/tests/ui/storage/fail/missing_storage_type_param.stderr +1 -1
  146. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_default_values.rs +11 -0
  147. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_default_values.stderr +7 -0
  148. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_name_attrs.rs +11 -0
  149. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_name_attrs.stderr +7 -0
  150. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_no_ttl_extension.rs +11 -0
  151. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_no_ttl_extension.stderr +7 -0
  152. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_type_params.stderr +1 -1
  153. package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_rejects_args.rs +13 -0
  154. package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_rejects_args.stderr +7 -0
  155. package/contracts/macro-integration-tests/tests/ui/storage/pass/api_surface.rs +102 -0
  156. package/contracts/macro-integration-tests/tests/ui/storage/pass/basic.rs +43 -0
  157. package/contracts/macro-integration-tests/tests/ui/storage/pass/multi_key.rs +38 -0
  158. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/missing_auth_trait.rs +14 -0
  159. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/missing_auth_trait.stderr +71 -0
  160. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/non_struct_input.rs +8 -0
  161. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/non_struct_input.stderr +7 -0
  162. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/{minimal_contract.rs → basic.rs} +2 -0
  163. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/multisig_contract.rs +28 -0
  164. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/ownable_contract.rs +32 -0
  165. package/contracts/macro-integration-tests/tests/ui/ttl_extendable/fail/non_struct_input.rs +8 -0
  166. package/contracts/macro-integration-tests/tests/ui/ttl_extendable/fail/non_struct_input.stderr +7 -0
  167. package/contracts/macro-integration-tests/tests/ui/ttl_extendable/pass/basic.rs +23 -0
  168. package/contracts/macro-integration-tests/tests/ui/ttl_extendable/pass/no_user_contractimpl.rs +21 -0
  169. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/attr_args.rs +11 -0
  170. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/attr_args.stderr +29 -0
  171. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_auth_trait.rs +20 -0
  172. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_auth_trait.stderr +71 -0
  173. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_upgradeable_internal.rs +10 -0
  174. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_upgradeable_internal.stderr +79 -0
  175. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/non_struct_input.rs +8 -0
  176. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/non_struct_input.stderr +7 -0
  177. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/basic.rs +43 -0
  178. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/multisig_contract.rs +35 -0
  179. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/no_migration.rs +30 -0
  180. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/no_user_contractimpl.rs +29 -0
  181. package/contracts/macro-integration-tests/tests/ui_contract_impl.rs +12 -0
  182. package/contracts/macro-integration-tests/tests/ui_contract_trait.rs +12 -0
  183. package/contracts/macro-integration-tests/tests/ui_lz_contract.rs +11 -0
  184. package/contracts/macro-integration-tests/tests/ui_multisig.rs +11 -0
  185. package/contracts/macro-integration-tests/tests/ui_ttl_extendable.rs +12 -0
  186. package/contracts/macro-integration-tests/tests/ui_upgradeable.rs +11 -0
  187. package/contracts/message-libs/blocked-message-lib/Cargo.toml +1 -1
  188. package/contracts/message-libs/blocked-message-lib/src/lib.rs +4 -1
  189. package/contracts/message-libs/blocked-message-lib/src/tests/blocked_message_lib_tests.rs +108 -0
  190. package/contracts/message-libs/blocked-message-lib/src/tests/mod.rs +4 -0
  191. package/contracts/message-libs/blocked-message-lib/src/tests/setup.rs +40 -0
  192. package/contracts/message-libs/simple-message-lib/src/lib.rs +1 -1
  193. package/contracts/message-libs/simple-message-lib/src/tests/mod.rs +2 -0
  194. package/contracts/message-libs/simple-message-lib/src/tests/setup.rs +124 -0
  195. package/contracts/message-libs/simple-message-lib/src/tests/simple_message_lib_tests.rs +309 -0
  196. package/contracts/message-libs/uln-302/src/errors.rs +21 -0
  197. package/contracts/message-libs/uln-302/src/interfaces/receive_uln.rs +1 -1
  198. package/contracts/message-libs/uln-302/src/receive_uln.rs +6 -4
  199. package/contracts/message-libs/uln-302/src/send_uln.rs +15 -6
  200. package/contracts/message-libs/uln-302/src/storage.rs +5 -5
  201. package/contracts/message-libs/uln-302/src/tests/uln302/get_config.rs +71 -0
  202. package/contracts/message-libs/uln-302/src/tests/uln302/mod.rs +1 -0
  203. package/contracts/message-libs/uln-302/src/uln302.rs +3 -0
  204. package/contracts/oapps/counter/Cargo.toml +2 -0
  205. package/contracts/oapps/counter/integration_tests/mod.rs +1 -0
  206. package/contracts/oapps/counter/integration_tests/setup_sml.rs +6 -4
  207. package/contracts/oapps/counter/integration_tests/setup_uln.rs +12 -5
  208. package/contracts/oapps/counter/integration_tests/test_with_blocked.rs +67 -0
  209. package/contracts/oapps/counter/src/tests/mod.rs +1 -0
  210. package/contracts/oapps/counter/src/tests/test_u256_ext.rs +48 -0
  211. package/contracts/oapps/oapp/src/lib.rs +0 -3
  212. package/contracts/oapps/oapp/src/tests/mod.rs +1 -0
  213. package/contracts/oapps/oft/integration-tests/setup.rs +2 -3
  214. package/contracts/oapps/oft/src/lib.rs +3 -0
  215. package/contracts/oapps/oft/src/tests/extensions/mod.rs +3 -0
  216. package/contracts/oapps/oft/src/tests/extensions/oft_fee.rs +240 -0
  217. package/contracts/oapps/oft/src/tests/extensions/pausable.rs +141 -0
  218. package/contracts/oapps/oft/src/tests/extensions/rate_limiter.rs +447 -0
  219. package/contracts/oapps/oft/src/tests/mod.rs +2 -0
  220. package/contracts/oapps/oft/src/tests/oft_types/lock_unlock.rs +180 -0
  221. package/contracts/oapps/oft/src/tests/oft_types/mod.rs +1 -0
  222. package/contracts/oapps/oft-core/integration-tests/setup.rs +2 -3
  223. package/contracts/oapps/oft-core/src/lib.rs +2 -2
  224. package/contracts/oapps/oft-core/src/tests/mod.rs +1 -1
  225. package/contracts/oapps/oft-core/src/tests/{test_oft_version.rs → test_oft_version_and_approval.rs} +9 -0
  226. package/contracts/oapps/oft-core/src/tests/test_utils.rs +0 -43
  227. package/contracts/upgrader/src/tests/test_upgrader.rs +18 -0
  228. package/contracts/utils/src/auth.rs +2 -2
  229. package/contracts/utils/src/buffer_reader.rs +61 -10
  230. package/contracts/utils/src/buffer_writer.rs +35 -20
  231. package/contracts/utils/src/bytes_ext.rs +1 -2
  232. package/contracts/utils/src/errors.rs +5 -3
  233. package/contracts/utils/src/multisig.rs +59 -36
  234. package/contracts/utils/src/option_ext.rs +3 -3
  235. package/contracts/utils/src/ownable.rs +12 -6
  236. package/contracts/utils/src/tests/auth.rs +179 -0
  237. package/contracts/utils/src/tests/buffer_reader.rs +203 -1
  238. package/contracts/utils/src/tests/buffer_writer.rs +176 -5
  239. package/contracts/utils/src/tests/mod.rs +2 -0
  240. package/contracts/utils/src/tests/multisig.rs +170 -141
  241. package/contracts/utils/src/tests/option_ext.rs +1 -1
  242. package/contracts/utils/src/tests/ownable.rs +156 -161
  243. package/contracts/utils/src/tests/test_helper.rs +21 -1
  244. package/contracts/utils/src/tests/testing_utils.rs +84 -2
  245. package/contracts/utils/src/tests/ttl_configurable.rs +66 -86
  246. package/contracts/utils/src/tests/ttl_extendable.rs +64 -0
  247. package/contracts/utils/src/tests/upgradeable.rs +115 -6
  248. package/contracts/utils/src/ttl_configurable.rs +22 -12
  249. package/contracts/utils/src/ttl_extendable.rs +1 -3
  250. package/contracts/utils/src/upgradeable.rs +21 -24
  251. package/contracts/workers/dvn/src/auth.rs +1 -1
  252. package/contracts/workers/dvn/src/interfaces/dvn.rs +2 -2
  253. package/contracts/workers/dvn/src/storage.rs +1 -1
  254. package/contracts/workers/dvn/src/tests/auth.rs +136 -3
  255. package/contracts/workers/dvn/src/tests/mod.rs +0 -1
  256. package/contracts/workers/dvn/src/tests/setup.rs +4 -10
  257. package/contracts/workers/executor-helper/src/tests/executor_helper.rs +279 -0
  258. package/contracts/workers/executor-helper/src/tests/setup.rs +106 -1
  259. package/contracts/workers/worker/src/worker.rs +1 -1
  260. package/docs/oft-guide.md +5 -5
  261. package/package.json +5 -7
  262. package/sdk/.turbo/turbo-test.log +662 -466
  263. package/sdk/LICENSE +23 -0
  264. package/sdk/dist/generated/bml.d.ts +101 -106
  265. package/sdk/dist/generated/bml.js +108 -26
  266. package/sdk/dist/generated/counter.d.ts +123 -484
  267. package/sdk/dist/generated/counter.js +103 -25
  268. package/sdk/dist/generated/dvn.d.ts +141 -699
  269. package/sdk/dist/generated/dvn.js +106 -28
  270. package/sdk/dist/generated/dvn_fee_lib.d.ts +31 -248
  271. package/sdk/dist/generated/dvn_fee_lib.js +27 -24
  272. package/sdk/dist/generated/endpoint.d.ts +158 -836
  273. package/sdk/dist/generated/endpoint.js +107 -29
  274. package/sdk/dist/generated/executor.d.ts +139 -671
  275. package/sdk/dist/generated/executor.js +106 -28
  276. package/sdk/dist/generated/executor_fee_lib.d.ts +109 -264
  277. package/sdk/dist/generated/executor_fee_lib.js +106 -28
  278. package/sdk/dist/generated/executor_helper.d.ts +95 -92
  279. package/sdk/dist/generated/executor_helper.js +103 -25
  280. package/sdk/dist/generated/layerzero_view.d.ts +178 -335
  281. package/sdk/dist/generated/layerzero_view.js +172 -33
  282. package/sdk/dist/generated/oft.d.ts +137 -680
  283. package/sdk/dist/generated/oft.js +103 -25
  284. package/sdk/dist/generated/price_feed.d.ts +45 -444
  285. package/sdk/dist/generated/price_feed.js +27 -24
  286. package/sdk/dist/generated/sml.d.ts +119 -428
  287. package/sdk/dist/generated/sml.js +103 -25
  288. package/sdk/dist/generated/treasury.d.ts +109 -288
  289. package/sdk/dist/generated/treasury.js +103 -25
  290. package/sdk/dist/generated/uln302.d.ts +190 -527
  291. package/sdk/dist/generated/uln302.js +170 -31
  292. package/sdk/dist/generated/upgrader.d.ts +14 -34
  293. package/sdk/dist/generated/upgrader.js +24 -21
  294. package/sdk/package.json +3 -4
  295. package/sdk/test/counter-sml.test.ts +218 -142
  296. package/sdk/test/counter-uln.test.ts +189 -145
  297. package/sdk/test/oft-sml.test.ts +173 -156
  298. package/sdk/test/suites/constants.ts +7 -1
  299. package/sdk/test/suites/globalSetup.ts +140 -74
  300. package/sdk/turbo.json +1 -1
  301. package/tools/ts-bindings-gen/Cargo.toml +4 -4
  302. package/tools/ts-bindings-gen/src/main.rs +4 -0
  303. package/turbo.json +3 -0
  304. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__storage__snapshot_generated_storage_code.snap +0 -1072
  305. package/contracts/endpoint-v2/src/constants.rs +0 -52
  306. package/contracts/macro-integration-tests/tests/ui/error/fail/attr_not_empty.rs +0 -12
  307. package/contracts/macro-integration-tests/tests/ui/error/fail/attr_not_empty.stderr +0 -7
  308. package/contracts/macro-integration-tests/tests/ui/error/pass/attr_on_variant_allowed.rs +0 -20
  309. package/contracts/macro-integration-tests/tests/ui/error/pass/basic_auto_discriminants.rs +0 -15
  310. package/contracts/macro-integration-tests/tests/ui/error/pass/mixed_discriminants.rs +0 -16
  311. package/contracts/macro-integration-tests/tests/ui/ownable/pass/minimal_contract.rs +0 -26
  312. package/contracts/macro-integration-tests/tests/ui/ownable/pass/namespacing_and_imports.rs +0 -21
  313. package/contracts/macro-integration-tests/tests/ui/storage/fail/storage_attr_rejects_args.rs +0 -12
  314. package/contracts/macro-integration-tests/tests/ui/storage/fail/storage_attr_rejects_args.stderr +0 -7
  315. package/contracts/macro-integration-tests/tests/ui/storage/pass/default_value_on_variant.rs +0 -14
  316. package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_instance_unit_basic.rs +0 -14
  317. package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_persistent_named_fields_keyed.rs +0 -16
  318. package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_temporary_unit_option.rs +0 -15
  319. package/contracts/macro-integration-tests/tests/ui/storage/pass/name_override.rs +0 -14
  320. package/contracts/macro-integration-tests/tests/ui/storage/pass/no_auto_ttl_extension.rs +0 -19
  321. package/contracts/macro-integration-tests/tests/ui/storage/pass/ttl_provider_basic.rs +0 -15
  322. package/contracts/message-libs/simple-message-lib/src/test.rs +0 -280
  323. package/contracts/oapps/oapp/src/macro_tests/mod.rs +0 -1
  324. package/contracts/workers/dvn/src/tests/multisig/mod.rs +0 -3
  325. package/contracts/workers/dvn/src/tests/multisig/set_signer.rs +0 -132
  326. package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +0 -109
  327. package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +0 -106
  328. /package/contracts/oapps/oapp/src/{macro_tests → tests}/test_macros.rs +0 -0
@@ -6,14 +6,14 @@ export * as contract from '@stellar/stellar-sdk/contract';
6
6
  export * as rpc from '@stellar/stellar-sdk/rpc';
7
7
  /**
8
8
  * Embedded WASM bytecode (base64-encoded)
9
- * Size: 57119 bytes (55.78 KB)
9
+ * Size: 56531 bytes (55.21 KB)
10
10
  */
11
- export declare const WASM_BASE64 = "AGFzbQEAAAABsAEdYAR+fn5+AX5gAn5+AX5gAX4BfmAAAX5gA35+fgF+YAN/f38AYAJ/fwF+YAJ+fgF/YAN/fn4AYAAAYAABf2ABfwBgAn9/AGABfwF/YAF/AX5gAn5/AGABfgBgAn9+AGAEf39/fwF+YAF+AX9gBX5/f39/AGACf38Bf2ADf39+AGAFfn5+fn4BfmAFf35/f34AYAh+fn5+fn5+fgF+YAJ+fgBgA35/fwF+YAN/f38BfwL9ASoBbAE3AAABbAExAAEBYQEwAAIBdgFkAAEBdgEzAAIBdgEyAAEBdgE2AAEBeAExAAEBdgFfAAMBdgExAAEBYgE4AAIBYgEzAAEBYgFlAAEBYgEwAAIBYwEwAAQBdgE4AAIBdgE5AAIBbAEyAAEBbAFfAAQBeAE3AAMBZAFfAAQBaQEwAAIBZAEwAAQBbAE2AAIBaQEzAAEBaQE1AAIBaQE0AAIBbQFhAAABdgFnAAEBYgFtAAQBaQE4AAIBaQE3AAIBaQE2AAEBaQFfAAIBYgFqAAEBbQE5AAQBeAEwAAEBeAEzAAMBeAE4AAMBbAEwAAEBbAE4AAEBeAE1AAIDqQGnAQUGBwcHBwgJCgsMDQoOBwMDAwsPCQsQDgsFEQgPAxERCwUCEhATDwMGCwwMCgwTDQsLEwoTCg4TDwwRFBERDAgRCBEEEQwCFREREQMCCQIWAQEBCwsBAQsBEAQBEAEQEAMCAwIDAgMCAgMDAQIDAxcYCBcBDAYBAhcRAxkMDBAAAgsCAwwDAwMDAhoBCQoIAwMBAREOAwwDAwkNGwUREQUODAURDBwcBAUBcAEBAQUDAQARBiEEfwFBgIDAAAt/AEGohcAAC38AQYCNwAALfwBBgI3AAAsHkgc1Bm1lbW9yeQIADF9fY2hlY2tfYXV0aABtCnNldF9wYXVzZWQAeAlzZXRfYWRtaW4AehlzZXRfc3VwcG9ydGVkX21lc3NhZ2VfbGliAHsNc2V0X2FsbG93bGlzdAB8DHNldF9kZW55bGlzdAB/GnNldF9kZWZhdWx0X211bHRpcGxpZXJfYnBzAIABE3NldF9kZXBvc2l0X2FkZHJlc3MAggEac2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXMAhAESc2V0X3dvcmtlcl9mZWVfbGliAIUBDnNldF9wcmljZV9mZWVkAIcBBnBhdXNlZACKAQhpc19hZG1pbgCLAQZhZG1pbnMAjAEYaXNfc3VwcG9ydGVkX21lc3NhZ2VfbGliAI0BDG1lc3NhZ2VfbGlicwCOAQ9pc19vbl9hbGxvd2xpc3QAjwEOYWxsb3dsaXN0X3NpemUAkAEOaXNfb25fZGVueWxpc3QAkQEHaGFzX2FjbACSARZkZWZhdWx0X211bHRpcGxpZXJfYnBzAJMBD2RlcG9zaXRfYWRkcmVzcwCUARpnZXRfc3VwcG9ydGVkX29wdGlvbl90eXBlcwCWAQ53b3JrZXJfZmVlX2xpYgCXAQpwcmljZV9mZWVkAJgBCmFzc2lnbl9qb2IAmQEHZ2V0X2ZlZQCcAQ5zZXRfZHN0X2NvbmZpZwCgAQpkc3RfY29uZmlnAKEBC25hdGl2ZV9kcm9wAKIBCGVuZHBvaW50AKQBDV9fY29uc3RydWN0b3IApQEOd2l0aGRyYXdfdG9rZW4AqQEHdXBncmFkZQCqAQdtaWdyYXRlAKwBBmZyZWV6ZQCtAQlpc19mcm96ZW4ArwEKYXV0aG9yaXplcgCwAQVvd25lcgCxAQ1wZW5kaW5nX293bmVyALIBEnRyYW5zZmVyX293bmVyc2hpcACzARpwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcgC1ARBhY2NlcHRfb3duZXJzaGlwALkBEnJlbm91bmNlX293bmVyc2hpcAC6ARNleHRlbmRfaW5zdGFuY2VfdHRsALsBD3NldF90dGxfY29uZmlncwC8AQt0dGxfY29uZmlncwC/ARJmcmVlemVfdHRsX2NvbmZpZ3MAwQEVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAMIBAV8DAQpfX2RhdGFfZW5kAwILX19oZWFwX2Jhc2UDAwqFrgGnAScAQQAgABCrgICAAEIBIAGtQiCGQgSEIAKtQiCGQgSEEICAgIAAGgubAQIBfwF+I4CAgIAAQRBrIgIkgICAgAACQAJAAkACQCAAQQFxRQ0AIAJBjYPAgABBCBDDgICAACACKAIADQIgAiACKQMIEMSAgIAADAELIAJBhIPAgABBCRDDgICAACACKAIADQEgAiACKQMIIAGtQiCGQgSEEMWAgIAACyACKQMIIQMgAikDAFANAQsACyACQRBqJICAgIAAIAMLDwAgACABEK2AgIAAQQFzCw0AIAAgARCkgICAAFALDwAgACABEK+AgIAAQQFzC6IBAQN/I4CAgIAAQRBrIgIkgICAgAACQAJAAkAgAEL/AYNCDlINACABQv8Bg0IOUQ0BCyAAIAEQpICAgABQIQMMAQsgAiABQgiINwMIIAIgAEIIiDcDAAJAA0AgAhDEgYCAACEDIAJBCGoQxIGAgAAhBCADQYCAxABGDQEgAyAERg0AC0EAIQMMAQsgBEGAgMQARiEDCyACQRBqJICAgIAAIAMLNwEBfkIAIQMCQAJAIAFCAlENACABp0EBcQ0BIAAgAjcDCEIBIQMLIAAgAzcDAA8LELGAgIAAAAsJABDDgYCAAAALWAECfyOAgICAAEEQayIAJICAgIAAIABBBGoQs4CAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELSAgIAAC0EAELWAgIAAIQEgAEEQaiSAgICAACABQf0BcQsMACAAQQEQy4GAgAALGwAgAK1CIIZCBIQgAa1CIIZCBIQQqICAgAAaC0cCAX8BfkECIQECQCAAEMqBgIAAIgJCAhC4gICAAEUNAEEBIQECQAJAIAJCAhCBgICAAKdB/wFxDgIBAgALAAtBACEBCyABC4sBAgJ/AX4jgICAgABBEGsiACSAgICAACAAQQRqELOAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBC0gICAAAtBACEBAkBBABC3gICAACICQgIQuICAgABFDQBBASEBAkACQCACQgIQgYCAgACnQf8BcQ4CAQIACwALQQAhAQsgAEEQaiSAgICAACABC8IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQCAAQf8BcQ4DAAECAAsgAUG2iMCAAEEGEMOAgIAAIAEoAgANAyABIAEpAwgQxICAgAAMAgsgAUG8iMCAAEEIEMOAgIAAIAEoAgANAiABIAEpAwgQxICAgAAMAQsgAUHEiMCAAEEKEMOAgIAAIAEoAgANASABIAEpAwgQxICAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgsPACAAIAEQp4CAgABCAVELFQEBfhC6gICAACIAEIKAgIAAGiAAC2YCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQs4CAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIELSAgIAACyAAELyAgIAAIAApAwghASAAKQMAQYoIEL2AgIAAIABBEGokgICAgAAgAQtKAgF/AX4jgICAgABBEGsiACSAgICAACAAELyAgIAAIAApAwghASAAKQMAQYoIEL2AgIAAIAEQgoCAgAAaIABBEGokgICAgAAgAQtQAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEEahCzgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQtICAgAALIAAQwoCAgAAgAUEQaiSAgICAAAspAAJAIACnQQFxRQ0ADwsgAUH6d2qtQiCGQoOAgIDggAF8EMCAgIAAAAtCAQF/I4CAgIAAQRBrIgAkgICAgAAgABC/gICAAAJAIAApAwBQDQBCg4CAgLCBARDAgICAAAALIABBEGokgICAgAALkwECAX8CfiOAgICAAEEQayIBJICAgIAAIAFBBGoQs4CAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELSAgIAAC0IAIQICQAJAQQEQwYCAgAAiA0IAELiAgIAARQ0AIANCABCBgICAACICQv8Bg0LNAFINASAAIAI3AwhCASECCyAAIAI3AwAgAUEQaiSAgICAAA8LAAsLACAAEKmAgIAAGguSAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQCAAQQFxRQ0AIAFByYfAgABBDBDDgICAACABKAIADQIgASABKQMIEMSAgIAADAELIAFBxIfAgABBBRDDgICAACABKAIADQEgASABKQMIEMSAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILTQECfkIAIQECQAJAQQAQwYCAgAAiAkICELiAgIAARQ0AIAJCAhCBgICAACIBQv8Bg0LNAFINASAAIAE3AwhCASEBCyAAIAE3AwAPCwALUQIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABIAIQxoGAgABCASEEAkAgAygCAA0AIAAgAykDCDcDCEIAIQQLIAAgBDcDACADQRBqJICAgIAAC0QBAX8jgICAgABBEGsiAiSAgICAACACIAE3AwggAkEIakEBEJ+BgIAAIQEgAEIANwMAIAAgATcDCCACQRBqJICAgIAAC0gBAX8jgICAgABBEGsiAySAgICAACADIAI3AwggAyABNwMAIANBAhCfgYCAACECIABCADcDACAAIAI3AwggA0EQaiSAgICAAAvNAgMBfwJ+AX8jgICAgABBMGsiAiSAgICAABDHgICAACIDIAAQg4CAgAAhBAJAAkACQAJAAkAgAQ0AIAJBCGogBBDIgICAACACKAIIIgVBAkYNASAFQQFxRQ0CIAIoAgwiBSADEISAgIAAQiCIp08NBCADIAWtQiCGQgSEEIWAgIAAIQMMBAsgBEICUQ0CQoOAgICAlgEQwICAgAAACxCxgICAAAALQoOAgICQlgEQwICAgAAACyADIAAQhoCAgAAhAwsgAkEBNgIgIAJBIGogAxDJgICAACACQRRqEMqAgIAAAkAgAigCFEEBRw0AIAJBIGogAigCGCACKAIcEMuAgIAAC0KO5q656ozk1TgQzICAgAAhAyACIAA3AyggAiABrTcDICADQeSIwIAAQQIgAkEgakECEM2AgIAAEIeAgIAAGiACQTBqJICAgIAAC6kBAgF/A34jgICAgABBMGsiACSAgICAACAAQRBqELOAgIAAAkAgACgCEEEBRw0AIAAoAhQgACgCGBC0gICAAAsgAEEBNgIAIABBEGogABDVgICAAAJAIAApAxAiAVANACAAQSRqEMqAgIAAIAAoAiRBAUcNACAAIAAoAiggACgCLBDLgICAAAsQiICAgAAhAiAAKQMYIQMgAEEwaiSAgICAACADIAIgAacbCz0BAn8CQAJAIAFCAlINAEEAIQIMAQtBAUECIAFC/wGDQgRRGyECIAFCIIinIQMLIAAgAzYCBCAAIAI2AgALFQAgABDggICAACABQgEQkoCAgAAaCwwAIABBAhDLgYCAAAslACAAEOCAgIAAQgEgAa1CIIZCBIQgAq1CIIZCBIQQgICAgAAaC2MDAX8BfgF/I4CAgIAAQRBrIgEkgICAgAAgASAANwMAQgIhAkEBIQMCQANAIANFDQEgA0F/aiEDIAAhAgwACwsgASACNwMIIAFBCGpBARCfgYCAACEAIAFBEGokgICAgAAgAAsuAAJAIAEgA0YNAAALIACtQiCGQgSEIAKtQiCGQgSEIAGtQiCGQgSEEKOAgIAACycAIAAQgoCAgAAaAkAgABDPgICAAA0AQoOAgIDAlwEQwICAgAAACwtdAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEEahCzgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQtICAgAALEMeAgIAAIAAQg4CAgAAhACABQRBqJICAgIAAIABCAlIL0QIDAX8CfgF/I4CAgIAAQTBrIgIkgICAgAAQ0YCAgAAiAyAAEIOAgIAAIQQCQAJAAkACQAJAIAENACACQQhqIAQQyICAgAAgAigCCCIFQQJGDQEgBUEBcUUNAiACKAIMIgUgAxCEgICAAEIgiKdPDQQgAyAFrUIghkIEhBCFgICAACEDDAQLIARCAlENAkKDgICA0JYBEMCAgIAAAAsQsYCAgAAAC0KDgICA4JYBEMCAgIAAAAsgAyAAEIaAgIAAIQMLIAJBAjYCICACQSBqIAMQyYCAgAAgAkEUahDKgICAAAJAIAIoAhRBAUcNACACQSBqIAIoAhggAigCHBDLgICAAAtB9IjAgABBGRDSgICAABDMgICAACEDIAIgAa03AyggAiAANwMgIANBpInAgABBAiACQSBqQQIQzYCAgAAQh4CAgAAaIAJBMGokgICAgAALqQECAX8DfiOAgICAAEEwayIAJICAgIAAIABBEGoQs4CAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYELSAgIAACyAAQQI2AgAgAEEQaiAAENWAgIAAAkAgACkDECIBUA0AIABBJGoQyoCAgAAgACgCJEEBRw0AIAAgACgCKCAAKAIsEMuAgIAACxCIgICAACECIAApAxghAyAAQTBqJICAgIAAIAMgAiABpxsLRQIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAiAAIAEQxoGAgAACQCACKAIAQQFHDQAACyACKQMIIQMgAkEQaiSAgICAACADC1YBAX8jgICAgABBEGsiASSAgICAACABELOAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC0gICAAAsgAUEKNgIAIAAgARDUgICAACABQRBqJICAgIAAC00BAn5CACECAkACQCABEOCAgIAAIgNCAhC4gICAAEUNACADQgIQgYCAgAAiAkL/AYNCzQBSDQEgACACNwMIQgEhAgsgACACNwMADwsAC00BAn5CACECAkACQCABEOCAgIAAIgNCARC4gICAAEUNACADQgEQgYCAgAAiAkL/AYNCywBSDQEgACACNwMIQgEhAgsgACACNwMADwsAC3cBA38jgICAgABBIGsiACSAgICAACAAQRBqELOAgIAAAkAgACgCEEEBRw0AIAAoAhQgACgCGBC0gICAAAsgAEEENgIQIABBCGogAEEQahDXgICAACAAKAIIIQEgACgCDCECIABBIGokgICAgAAgAkEAIAFBAXEbC1oCAX4BfwJAAkACQCABEOCAgIAAIgJCAhC4gICAAA0AQQAhAQwBCyACQgIQgYCAgAAiAkL/AYNCBFINASACQiCIpyEDQQEhAQsgACADNgIEIAAgATYCAA8LAAuMAQECfyOAgICAAEEgayIBJICAgIAAIAEQs4CAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELSAgIAACyABQQU2AgAgASAANwMIAkAgARDZgICAACICRQ0AIAFBFGoQyoCAgAAgASgCFEEBRw0AIAEgASgCGCABKAIcEMuAgIAACyABQSBqJICAgIAAIAILEgAgABDggICAAEIBELiAgIAAC1YBAX8jgICAgABBEGsiASSAgICAACABELOAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC0gICAAAsgAUEJNgIAIAAgARDUgICAACABQRBqJICAgIAAC1YBAX8jgICAgABBEGsiASSAgICAACABELOAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC0gICAAAsgAUEHNgIAIAAgARDUgICAACABQRBqJICAgIAAC4wBAQJ/I4CAgIAAQSBrIgEkgICAgAAgARCzgICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQtICAgAALIAFBAzYCACABIAA3AwgCQCABENmAgIAAIgJFDQAgAUEUahDKgICAACABKAIUQQFHDQAgASABKAIYIAEoAhwQy4CAgAALIAFBIGokgICAgAAgAgt3AQN/I4CAgIAAQSBrIgAkgICAgAAgAEEQahCzgICAAAJAIAAoAhBBAUcNACAAKAIUIAAoAhgQtICAgAALIABBBjYCECAAQQhqIABBEGoQ14CAgAAgACgCCCEBIAAoAgwhAiAAQSBqJICAgIAAIAJBACABQQFxGwtdAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEEahCzgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQtICAgAALENGAgIAAIAAQg4CAgAAhACABQRBqJICAgIAAIABCAlILjwECAn8BfiOAgICAAEEQayIAJICAgIAAIAAQs4CAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIELSAgIAAC0EAIQEgAEEANgIAAkAgABDggICAACICQgIQuICAgABFDQBBASEBAkACQCACQgIQgYCAgACnQf8BcQ4CAQIACwALQQAhAQsgAEEQaiSAgICAACABC6YEAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAA4LAAECAwQFBgcICQoACyABQYCMwIAAQQYQw4CAgAAgASgCAA0LIAEgASkDCBDEgICAAAwKCyABQYaMwIAAQQYQw4CAgAAgASgCAA0KIAEgASkDCBDEgICAAAwJCyABQYyMwIAAQQsQw4CAgAAgASgCAA0JIAEgASkDCBDEgICAAAwICyABQZeMwIAAQQkQw4CAgAAgASgCAA0IIAEgASkDCCAAKQMIEMWAgIAADAcLIAFBoIzAgABBDRDDgICAACABKAIADQcgASABKQMIEMSAgIAADAYLIAFBrYzAgABBCBDDgICAACABKAIADQYgASABKQMIIAApAwgQxYCAgAAMBQsgAUG1jMCAAEEUEMOAgIAAIAEoAgANBSABIAEpAwgQxICAgAAMBAsgAUHJjMCAAEEOEMOAgIAAIAEoAgANBCABIAEpAwgQxICAgAAMAwsgAUHXjMCAAEEUEMOAgIAAIAEoAgANAyABIAEpAwggADUCBEIghkIEhBDFgICAAAwCCyABQeuMwIAAQQwQw4CAgAAgASgCAA0CIAEgASkDCBDEgICAAAwBCyABQfeMwIAAQQkQw4CAgAAgASgCAA0BIAEgASkDCBDEgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC3wBAn8jgICAgABBEGsiASSAgICAACABQQRqELOAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBC0gICAAAsCQAJAIAAQ2ICAgABFDQBBACECDAELAkAQ1oCAgAANAEEBIQIMAQsgABDcgICAACECCyABQRBqJICAgIAAIAILKQACQCAAp0EBcUUNAA8LIAFB0HZqrUIghkKDgICAgJYBhBDAgICAAAALaQIBfwF+AkAgASgCCCICIAEoAgxJDQAgAEICNwMADwsgASkDACACrUIghkIEhBCJgICAACEDAkAgAkEBaiICRQ0AIAAgAzcDCCABIAI2AgggACADQv8Bg0LNAFKtNwMADwsQsYCAgAAAC9wCAgJ/Bn4jgICAgABB0ABrIgIkgICAgABBACEDAkADQCADQShGDQEgAkEIaiADakICNwMAIANBCGohAwwACwtCACEEQgEhBQJAIAFC/wGDQswAUg0AIAFByIHAgABBBSACQQhqQQUQ5YCAgAAgAkEwaiACKQMIEOaAgIAAIAIoAjBBAUYNACACKQNIIQEgAikDQCEGIAJBMGogAikDEBDngICAACACKAIwDQAgAikDOCEHIAJBMGogAikDGBDngICAACACKAIwDQAgAikDICIIQv8Bg0IEUg0AIAIpAzghCSACQTBqIAIpAygQ5oCAgAAgAigCMEEBRg0AIAIpA0AhBCAAIAIpA0g3AyggACAENwMgIAAgATcDGCAAIAY3AxAgACAIQiCIpzYCQCAAIAc3AzggACAJNwMwQgAhBUIAIQQLIAAgBTcDACAAIAQ3AwggAkHQAGokgICAgAALMQACQCACIARGDQAACyAAIAGtQiCGQgSEIAOtQiCGQgSEIAKtQiCGQgSEEJuAgIAAGgt7AgF/AX4CQAJAAkAgAadB/wFxIgJBxABGDQAgAkEKRw0BQgAhAyAAQgA3AxggACABQgiINwMQDAILIAEQmYCAgAAhAyABEJqAgIAAIQEgACADNwMYIAAgATcDEEIAIQMMAQsgAEKDkICAgAE3AwhCASEDCyAAIAM3AwALXQIBfwF+AkACQCABp0H/AXEiAkHAAEYNAAJAIAJBBkYNAEIBIQNCg5CAgIABIQEMAgsgAUIIiCEBQgAhAwwBC0IAIQMgARCVgICAACEBCyAAIAM3AwAgACABNwMIC/wBAgF/BX4jgICAgABBMGsiAiSAgICAACACQQhqIAEpAwAgASkDCBDpgICAAEIBIQMCQCACKAIIDQAgAikDECEEIAJBCGogASkDKBDqgICAACACKAIIDQAgAikDECEFIAJBCGogASkDIBDqgICAACACKAIIDQAgAikDECEGIAE1AjAhByACQQhqIAEpAxAgASkDGBDpgICAACACKAIIDQAgAiACKQMQNwMoIAIgBjcDGCACIAU3AxAgAiAENwMIIAIgB0IghkIEhDcDICAAQciBwIAAQQUgAkEIakEFEM2AgIAANwMIQgAhAwsgACADNwMAIAJBMGokgICAgAALRgACQAJAIAFC//////////8AViACQgBSIAJQGw0AIAFCCIZCCoQhAgwBCyACIAEQmICAgAAhAgsgAEIANwMAIAAgAjcDCAtCAQF/I4CAgIAAQRBrIgIkgICAgAAgAiABEKOBgIAAIAIpAwghASAAIAIpAwA3AwAgACABNwMIIAJBEGokgICAgAALgQEBAn8jgICAgABBIGsiAySAgICAAAJAAkAgAadBAXENACAAQoGAgIAwNwMADAELIAMgAhDsgICAAAJAAkAgAygCAEEBRw0AIABBAzYCBEEBIQQMAQsgACADKQMYNwMYIAAgAykDEDcDEEEAIQQLIAAgBDYCAAsgA0EgaiSAgICAAAt9AgF/AX4CQAJAAkACQCABp0H/AXEiAkHFAEYNACACQQtHDQIgACABQj+HNwMYIAAgAUIIhzcDEAwBCyABEJ6AgIAAIQMgARCfgICAACEBIAAgAzcDGCAAIAE3AxALQgAhAQwBCyAAQoOQgICAATcDCEIBIQELIAAgATcDAAuuDQUBfwF+AX8DfgF/I4CAgIAAQcAAayIDJICAgIAAIANBEGogABDugICAAAJAIAMoAhBBAUYNACADKQMYIQRBACEFAkADQCAFQRBGDQEgA0EwaiAFakICNwMAIAVBCGohBQwACwsgAUL/AYNCzABSDQAgAUH0gsCAAEECIANBMGpBAhDlgICAACADQRBqIAMpAzAQ7oCAgAAgAygCEA0AIAMpAzgiAUL/AYNCyABSDQAgAykDGCEAIAEQioCAgABCgICAgHCDQoCAgICACFINACACQv8Bg0LLAFINACADQRBqELOAgIAAAkAgAygCEEEBRw0AIAMoAhQgAygCGBC0gICAAAtBqIXAgACtQiCGQgSEQoSAgIDAARCLgICAACAAEIyAgIAAEI2AgIAAIgZC/wGDQs0AUg0AAkACQCAGEM+AgIAADQBCg4CAgCAhAQwBCyAAIAQgARCOgICAABoCQAJAAkACQCACEISAgIAAQv////8vVg0AIAIQhICAgABCgICAgBBUDQAgAhCPgICAACIBQv8Bg0LLAFINBSABEISAgIAAIQAgA0EANgIIIAMgATcDACADIABCIIg+AgwgA0EQaiADEO+AgIAAIAMpAxAiAUICUQ0FIAGnQQFxDQUCQCADKQMYIgGnQf8BcSIFQcoARg0AIAVBDkcNBgsCQAJAAkACQAJAIAEQ8ICAgABCIIinDgMAAQIKCyADKAIIIAMoAgwQ8YCAgABBAUsNCSADQTBqIAMQ74CAgAAgAykDMCIBQgJRDQkgAadBAXENCSADQRBqIAMpAzgQ8oCAgAAgAygCEEEBRg0JIAMpAyghBiADKQMYIQAgAykDICIBQaSCwIAAQRAQ0oCAgAAQr4CAgAANAyABQbSCwIAAQRAQ0oCAgAAQr4CAgAANAwJAIAFBxILAgABBChDSgICAABCugICAAEUNACABQc6CwIAAQQoQ0oCAgAAQroCAgAANBQsgBhCEgICAAEL/////D1YNAiADQQM2AhQMBgsgAygCCCADKAIMEPGAgIAAQQFLDQggA0EwaiADEO+AgIAAIAMpAzAiAUICUQ0IIAGnQQFxDQggA0EQaiADKQM4EPOAgIAAIAMoAhBFDQMMCAsgAygCCCADKAIMEPGAgIAAQQFLDQcgA0EwaiADEO+AgIAAIAMpAzAiAUICUQ0HIAGnQQFxDQcgA0EQaiADKQM4EPSAgIAAIAMoAhANBwwCCyADQRBqQgEgBhCQgICAABDrgICAACADKAIQQQFxDQMgAykDKCEBIAMpAyAhACACEISAgIAAQiCIIQYCQCAAIAGEQgBSDQAgBkIBUg0CDAMLIAZCAlINAQJAAkAgAhCEgICAAEKAgICAIFQNACACQoSAgIAQEImAgIAAIgJC/wGDQssAUg0IIAIQhICAgAAhBiADQQA2AgggAyACNwMAIAMgBkIgiD4CDCADQRBqIAMQ74CAgAAgAykDECICQgJRDQggAqdBAXENCAJAIAMpAxgiAqdB/wFxIgVBygBGDQAgBUEORw0JCwJAAkACQCACEPCAgIAAQiCIpw4DAAECCwsgAygCCCADKAIMEPGAgIAAQQFLDQogA0EwaiADEO+AgIAAIAMpAzAiAkICUQ0KIAKnQQFxDQogA0EQaiADKQM4EPKAgIAAIAMoAhBBAUYNCiADKQMgIQYgAykDGCEEIAMpAyghAhD1gICAABD2gICAACEHIAIQhICAgABC/////y9WDQMgA0EDNgIUDAcLIAMoAgggAygCDBDxgICAAEEBSw0JIANBMGogAxDvgICAACADKQMwIgFCAlENCSABp0EBcQ0JIANBEGogAykDOBDzgICAACADKAIQDQkMBAsgAygCCCADKAIMEPGAgIAAQQFLDQggA0EwaiADEO+AgIAAIAMpAzAiAUICUQ0IIAGnQQFxDQggA0EQaiADKQM4EPSAgIAAIAMoAhANCAwDCxD3gICAAAALIANBEGpCASACQoSAgIAgEImAgIAAEOuAgIAAIAMoAhBBAXENAyADKQMoIQIgAykDICEIQQMhBSAGQdiCwIAAQQgQ0oCAgAAQroCAgAANBCAEIAcQrICAgAAhCSAIIACFIAIgAYWEQgBSDQQgCUUNAgwECyACEISAgIAAQoCAgIBwg0KAgICAEFINACAAEPWAgIAAEKyAgIAARQ0BC0KDgICAMCEBDAMLQgIhAQwCCyADKAIUIQULIAVBf2qtQiCGQoOAgIAQfCEBCyADQcAAaiSAgICAACABDwsAC0IBAX5CASECAkAgAUL/AYNCyABSDQAgARCKgICAAEKAgICAcINCgICAgIAEUg0AIAAgATcDCEIAIQILIAAgAjcDAAtKAgF+AX9CAiECAkAgASgCCCIDIAEoAgxPDQAgACABKQMAIAOtQiCGQgSEEImAgIAANwMIIAEgA0EBajYCCEIAIQILIAAgAjcDAAsSACAAQbiAwIAAQQMQxYGAgAALGQACQCABIABJDQAgASAAaw8LELGAgIAAAAvTAQICfwN+I4CAgIAAQSBrIgIkgICAgABBACEDAkADQCADQRhGDQEgAkEIaiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUHMhcCAAEEDIAJBCGpBAxDlgICAACACKQMIIgFC/wGDQssAUg0AIAIpAxAiBUL/AYNCzQBSDQACQCACKQMYIganQf8BcSIDQcoARg0AIANBDkcNAQsgACABNwMYIAAgBjcDECAAIAU3AwhCACEECyAAIAQ3AwAgAkEgaiSAgICAAAu+AQICfwF+I4CAgIAAQSBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUH0hcCAAEECIAJBAhDlgICAACACQRBqIAIpAwAQx4GAgAAgAigCEA0AIAIpAxghASACQRBqIAIpAwgQ7oCAgAAgAigCEA0AIAAgAikDGDcDECAAIAE3AwhCACEECyAAIAQ3AwAgAkEgaiSAgICAAAvgAQICfwJ+I4CAgIAAQTBrIgIkgICAgABBACEDAkADQCADQRhGDQEgAkEIaiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUGUhsCAAEEDIAJBCGpBAxDlgICAACACKQMIIgFC/wGDQssAUg0AIAJBIGogAikDEBDHgYCAACACKAIgDQAgAikDKCEFIAJBIGogAikDGBDugICAACACKAIgDQAgAikDKCEEIAAgATcDGCAAIAQ3AxAgACAFNwMIQgAhBAsgACAENwMAIAJBMGokgICAgAALhwECAX8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQs4CAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELSAgIAACwJAAkBBASAAEKuAgIAAIgFCAhC4gICAAEUNACABQgIQgYCAgAAiAUL/AYNCzQBRDQEACxD3gICAAAALIABBEGokgICAgAAgAQs2AAJAIABBvIPAgABBDBDSgICAABCIgICAABCUgICAACIAQv8Bg0LNAFENABCxgICAAAALIAALCQAQsYCAgAAAC50CAgJ/AX4jgICAgABBEGsiASSAgICAAAJAAkBBASAAp0H/AXEiAkEAR0EBdCACQQFGGyICQQJGDQAgARCzgICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQtICAgAALELmAgIAAIQAQ34CAgAAgAnNBAXFFDQEgAUEANgIAIAEgAkICEPmAgIAAAkACQCACQQFxDQBCjtKq3O6sz/UAEMyAgIAAIQMgASAANwMAIANBmIrAgABBASABQQEQzYCAgAAQh4CAgAAaDAELQo7SqtzurAMQzICAgAAhAyABIAA3AwAgA0GIisCAAEEBIAFBARDNgICAABCHgICAABoLIAFBEGokgICAgABCAg8LAAtCg4CAgKCXARDAgICAAAALGgAgABDggICAACABrUL/AYMgAhCSgICAABoLjQEBAn8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AQQEgAadB/wFxIgNBAEdBAXQgA0EBRhsiA0ECRg0AIAJBBGoQs4CAgAACQCACKAIEQQFHDQAgAigCCCACKAIMELSAgIAACxC5gICAABogACADQQFxEMaAgIAAIAJBEGokgICAgABCAg8LAAuNAQECfyOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCzQBSDQBBASABp0H/AXEiA0EAR0EBdCADQQFGGyIDQQJGDQAgAkEEahCzgICAAAJAIAIoAgRBAUcNACACKAIIIAIoAgwQtICAgAALELmAgIAAGiAAIANBAXEQ0ICAgAAgAkEQaiSAgICAAEICDwsAC6MDAQN/I4CAgIAAQSBrIgIkgICAgAACQAJAAkACQCAAQv8Bg0LNAFINAEEBIAGnQf8BcSIDQQBHQQF0IANBAUYbIgNBAkYNACACQRBqELOAgIAAAkAgAigCEEEBRw0AIAIoAhQgAigCGBC0gICAAAsQuYCAgAAaIAAQ3ICAgAAhBAJAAkAgA0EBcQ0AIARFDQMgAkEDNgIQIAIgADcDGCACQRBqEOCAgIAAQgEQkYCAgAAaENaAgIAAIgRFDQUgBEF/aiEEDAELIAQNAyACQQM2AhAgAiAANwMYIAJBEGoQ/YCAgAAgAkEEahDKgICAAAJAIAIoAgRBAUcNACACQRBqIAIoAgggAigCDBDLgICAAAsQ1oCAgABBAWoiBEUNBAsgBBD+gICAAEG0icCAAEENENKAgIAAEMyAgIAAIQEgAiAANwMYIAIgA603AxAgAUHMicCAAEECIAJBEGpBAhDNgICAABCHgICAABogAkEgaiSAgICAAEICDwsAC0KDgICAgJcBEMCAgIAAAAtCg4CAgKCWARDAgICAAAALELGAgIAAAAsOACAAQQFCARD5gICAAAsxAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEENgIAIAEgABDOgYCAACABQRBqJICAgIAAC+4CAQN/I4CAgIAAQSBrIgIkgICAgAACQAJAAkAgAEL/AYNCzQBSDQBBASABp0H/AXEiA0EAR0EBdCADQQFGGyIDQQJGDQAgAkEQahCzgICAAAJAIAIoAhBBAUcNACACKAIUIAIoAhgQtICAgAALELmAgIAAGiAAENiAgIAAIQQCQAJAIANBAXENACAERQ0DIAJBBTYCECACIAA3AxggAkEQahDggICAAEIBEJGAgIAAGgwBCyAEDQMgAkEFNgIQIAIgADcDGCACQRBqEP2AgIAAIAJBBGoQyoCAgAAgAigCBEEBRw0AIAJBEGogAigCCCACKAIMEMuAgIAAC0HcicCAAEEMENKAgIAAEMyAgIAAIQEgAiAANwMYIAIgA603AxAgAUHwicCAAEECIAJBEGpBAhDNgICAABCHgICAABogAkEgaiSAgICAAEICDwsAC0KDgICAkJcBEMCAgIAAAAtCg4CAgLCWARDAgICAAAALegEBfyOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCBFINACACQQRqELOAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBC0gICAAAsgABDOgICAACABQiCIpxCBgYCAACACQRBqJICAgIAAQgIPCwALcgIBfwF+I4CAgIAAQRBrIgEkgICAgAAgAUEGNgIAIAEgABDOgYCAAEGgisCAAEEaENKAgIAAEMyAgIAAIQIgASAArUIghkIEhDcDACACQciKwIAAQQEgAUEBEM2AgIAAEIeAgIAAGiABQRBqJICAgIAAC6wBAQF/I4CAgIAAQRBrIgIkgICAgAACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACELOAgIAAAkAgAigCAEEBRw0AIAIoAgQgAigCCBC0gICAAAsgABDOgICAACABEIOBgIAAQdCKwIAAQRMQ0oCAgAAQzICAgAAhACACIAE3AwAgAEH0isCAAEEBIAJBARDNgICAABCHgICAABogAkEQaiSAgICAAEICDwsACzEBAX8jgICAgABBEGsiASSAgICAACABQQc2AgAgASAAEM2BgIAAIAFBEGokgICAgAALlwIBAX8jgICAgABBIGsiAySAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgAkL/AYNCyABSDQAgA0EQahCzgICAAAJAIAMoAhBBAUcNACADKAIUIAMoAhgQtICAgAALIAAQzoCAgAAgA0EINgIQIAMgAUIgiD4CFCADQRBqEOCAgIAAIAJCARCSgICAABogA0EEahDKgICAAAJAIAMoAgRBAUcNACADQRBqIAMoAgggAygCDBDLgICAAAtBnIvAgABBGhDSgICAABDMgICAACEAIAMgAjcDGCADIAFChICAgHCDNwMQIABBzIvAgABBAiADQRBqQQIQzYCAgAAQh4CAgAAaIANBIGokgICAgABCAg8LAAusAQEBfyOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCzQBSDQAgAhCzgICAAAJAIAIoAgBBAUcNACACKAIEIAIoAggQtICAgAALIAAQzoCAgAAgARCGgYCAAEHci8CAAEESENKAgIAAEMyAgIAAIQAgAiABNwMAIABB+IvAgABBASACQQEQzYCAgAAQh4CAgAAaIAJBEGokgICAgABCAg8LAAsxAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEJNgIAIAEgABDNgYCAACABQRBqJICAgIAAC38BAX8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQs0AUg0AIAJBBGoQs4CAgAACQCACKAIEQQFHDQAgAigCCCACKAIMELSAgIAACyAAEM6AgIAAIAEQiIGAgAAgARCJgYCAACACQRBqJICAgIAAQgIPCwALMQEBfyOAgICAAEEQayIBJICAgIAAIAFBCjYCACABIAAQzYGAgAAgAUEQaiSAgICAAAtdAgF/AX4jgICAgABBEGsiASSAgICAAEH8isCAAEEOENKAgIAAEMyAgIAAIQIgASAANwMIIAJBlIvAgABBASABQQhqQQEQzYCAgAAQh4CAgAAaIAFBEGokgICAgAALCQAQ34CAgACtCxsAAkAgAEL/AYNCzQBRDQAACyAAEM+AgIAArQsIABDHgICAAAsbAAJAIABC/wGDQs0AUQ0AAAsgABDegICAAK0LCAAQ0YCAgAALGwACQCAAQv8Bg0LNAFENAAALIAAQ3ICAgACtCw8AENaAgIAArUIghkIEhAsbAAJAIABC/wGDQs0AUQ0AAAsgABDYgICAAK0LGwACQCAAQv8Bg0LNAFENAAALIAAQ4YCAgACtCw8AEN2AgIAArUIghkIEhAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAENuAgIAAIAApAwAgACkDCBCVgYCAACEBIABBEGokgICAgAAgAQsNACABQgIgAKdBAXEbC8gBAgJ/AX4jgICAgABBIGsiASSAgICAAAJAIABC/wGDQgRSDQAgAEIgiKchAiABELOAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC0gICAAAsgAUEINgIAIAEgAjYCBEICIQACQCABEOCAgIAAIgNCARC4gICAAEUNACADQgEQgYCAgAAiAEL/AYNCyABSDQEgAUEUahDKgICAACABKAIUQQFHDQAgASABKAIYIAEoAhwQy4CAgAALIAFBIGokgICAgAAgAA8LAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAENqAgIAAIAApAwAgACkDCBCVgYCAACEBIABBEGokgICAgAAgAQs+AgF/AX4jgICAgABBEGsiACSAgICAACAAENOAgIAAIAApAwAgACkDCBCVgYCAACEBIABBEGokgICAgAAgAQuzAgEBfyOAgICAAEHAAGsiBSSAgICAAAJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACQv8Bg0IEUg0AIANC/wGDQgRSDQAgBEL/AYNCyABSDQAgBRCzgICAAAJAIAUoAgBBAUcNACAFKAIEIAUoAggQtICAgAALIAAQgoCAgAAaIAAQ3oCAgABFDQEgBSABIAJCIIinIANCIIinIAQQmoGAgAAgBUEwahDbgICAACAFKQM4IQAgBSkDMEG0CRDigICAACAFQTBqIAUpAwAgBSkDCBCbgYCAACAFKAIwQQFHDQILAAtCg4CAgNCXARDAgICAAAALIAUpAzghASAFIAA3AyggBSABNwMgQdCDwIAAQQIgBUEgakECEM2AgIAAIQAgBUHAAGokgICAgAAgAAvGBQQBfwl+AX8BfiOAgICAAEHwAGsiBSSAgICAACAFELOAgIAAAkAgBSgCAEEBRw0AIAUoAgQgBSgCCBC0gICAAAsCQBDfgICAAA0AAkAgARDhgICAAEUNACAFIAIQnoGAgAACQAJAIAUoAgBBAXFFDQAgBSkDKCEGIAUpAyAhByAFNQJAIQggBSkDOCEJIAUpAzAhCiAFKQMYIQsgBSkDECEMIAUQ04CAgAAgBSkDCCENIAUpAwBBuwkQ4oCAgAAgBRDagICAACAFKQMIIQ4gBSkDAEG+CRDigICAABDdgICAACEPEJOAgIAAIRAgBUHgAGogDCALEOmAgIAAIAUoAmANASAFKQNoIQsgBUHgAGogCRDqgICAACAFKAJgDQEgBSkDaCEMIAVB4ABqIAoQ6oCAgAAgBSgCYA0BIAUpA2ghCSAFQeAAaiAHIAYQ6YCAgAAgBSgCYEEBRg0BIAUpA2ghCiAFIAE3A1AgBSANNwNIIAUgBDcDQCAFIAo3AzggBSAJNwMoIAUgDDcDICAFIAs3AxggBSACrUIghkIEhDcDECAFIA+tQiCGQgSENwMIIAUgA61CIIZCBIQ3AwAgBSAIQiCGQgSENwMwIAVB0ITAgABBCyAFQQsQzYCAgAA3A2ggBSAQNwNgQQAhAgJAA0ACQCACQRBHDQBBACECAkADQCACQRBGDQEgBSACaiAFQeAAaiACaikDADcDACACQQhqIQIMAAsLIAUgDkKO1Oq1kNeyASAFQQIQn4GAgAAQlICAgAAQ7ICAgAAgBSgCAEEBRg0CIAUpAxAhASAAIAUpAxg3AwggACABNwMAIAVB8ABqJICAgIAADwsgBSACakICNwMAIAJBCGohAgwACwsQsYCAgAAAC0KDgICAEBDAgICAAAsAC0KDgICA8JYBEMCAgIAAAAtCg4CAgPCXARDAgICAAAALWwACQAJAIAFCgICAgICAgMAAfEL//////////wBWDQAgASABhSACIAFCP4eFhEIAUg0AIAFCCIZCC4QhAQwBCyACIAEQoICAgAAhAQsgAEIANwMAIAAgATcDCAuLAQEBfyOAgICAAEEQayIFJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCzQBSDQAgAkL/AYNCBFINACADQv8Bg0IEUg0AIARC/wGDQsgAUg0AIAUgASACQiCIpyADQiCIpyAEEJqBgIAAIAUpAwAgBSkDCBCdgYCAACEBIAVBEGokgICAgAAgAQ8LAAtDAQF/I4CAgIAAQRBrIgIkgICAgAAgAiAAIAEQm4GAgAACQCACKAIAQQFHDQAACyACKQMIIQEgAkEQaiSAgICAACABC90BAgF/AX4jgICAgABB0ABrIgIkgICAgAAgAhCzgICAAAJAIAIoAgBBAUcNACACKAIEIAIoAggQtICAgAALAkACQAJAQQAgARCrgICAACIDQgEQuICAgABFDQAgAiADQgEQgYCAgAAQ5ICAgAAgAigCAEEBcUUNAQALIABCADcDCCAAQgA3AwAMAQsgAEEQaiACQRBqQcAAENCBgIAAGiAAQgA3AwggAEIBNwMAIAIQyoCAgAAgAigCAEEBRw0AIAEgAigCBCACKAIIEKqAgIAACyACQdAAaiSAgICAAAsaACAArUIghkIEhCABrUIghkIEhBCcgICAAAvzBAUBfwF+AX8BfgJ/I4CAgIAAQaACayICJICAgIAAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LLAFINACACQdABahCzgICAAAJAIAIoAtABQQFHDQAgAigC1AEgAigC2AEQtICAgAALIAAQzoCAgAAgARCEgICAAEIgiCEDIAJB0AFqQRBqIQRCACEAAkADQCAAIANRDQEgASAAQiCGQgSEEImAgIAAIQVBACEGAkADQCAGQRBGDQEgAkGAAWogBmpCAjcDACAGQQhqIQYMAAsLAkACQCAFQv8Bg0LMAFINACAFQfyBwIAAQQIgAkGAAWpBAhDlgICAACACQdABaiACKQOAARDkgICAACACKALQAUEBcQ0AIAJBkAFqIARBwAAQ0IGAgAAaIAIpA4gBIgVC/wGDQgRRDQELIABC/////w9RDQQgAiACQcAAakHAABDQgYCAABoMBAsgAkHAAGogAkGQAWpBwAAQ0IGAgAAaIABC/////w9RDQMgAiACQcAAakHAABDQgYCAACIGQdABaiAGQcAAENCBgIAAGiAGIAVCIIinIgc2ApACQQAgBxCrgICAACEFIAZBkAFqIAZB0AFqEOiAgIAAIAYoApABQQFGDQIgBSAGKQOYAUIBEJKAgIAAGiAGQZABahDKgICAAAJAIAYoApABQQFHDQAgByAGKAKUASAGKAKYARCqgICAAAsgAEIBfCEADAALC0HQgMCAAEEOENKAgIAAEMyAgIAAIQAgAiABNwPQASAAQeSAwIAAQQEgAkHQAWpBARDNgICAABCHgICAABogAkGgAmokgICAgABCAg8LAAsQsYCAgAAAC3oBAX8jgICAgABB4ABrIgEkgICAgAACQCAAQv8Bg0IEUg0AIAEgAEIgiKcQnoGAgAACQAJAIAEoAgBBAXENAEICIQAMAQsgAUHQAGogAUEQahDogICAACABKAJQQQFxDQEgASkDWCEACyABQeAAaiSAgICAACAADwsAC+AGAgJ/B34jgICAgABBwABrIgUkgICAgAACQAJAAkAgAEL/AYNCzQBSDQBBACEGAkADQCAGQRhGDQEgBSAGakICNwMAIAZBCGohBgwACwsgAUL/AYNCzABSDQAgAUGkg8CAAEEDIAVBAxDlgICAAAJAAkAgBSkDACIBp0H/AXEiBkHAAEYNACAGQQZHDQIgAUIIiCEHDAELIAEQlYCAgAAhBwsgBUEoaiAFKQMIEO6AgIAAIAUoAigNACAFKQMQIghC/wGDQgRSDQAgAkL/AYNCBFINACADQv8Bg0LNAFINACAEQv8Bg0LLAFINACAFKQMwIQkgBRCz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IAAQjYCAgABC/wGDQgJSDQJBABCrgYCAACABQRBqJICAgIAAQgIPCwALQoOAgICwgwEQwICAgAAAC0KDgICAoIMBEMCAgIAAAAtbAQF/I4CAgIAAQRBrIgAkgICAgAAgAEEEahCzgICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQtICAgAALELmAgIAAGkEAQQEQroGAgAAgAEEQaiSAgICAAEICCxoAIAAQyoGAgAAgAa1C/wGDQgIQkoCAgAAaCwkAELKAgIAArQsIABC6gICAAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAELyAgIAAIAApAwAgACkDCBCVgYCAACEBIABBEGokgICAgAAgAQs+AgF/AX4jgICAgABBEGsiACSAgICAACAAEL+AgIAAIAApAwAgACkDCBCVgYCAACEBIABBEGokgICAgAAgAQt9AgF/AX4jgICAgABBEGsiASSAgICAAAJAIABC/wGDQs0AUg0AIAFBBGoQs4CAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELSAgIAACxC7gICAACECEL6AgIAAIAAQqIGAgAAgAiAAELSBgIAAIAFBEGokgICAgABCAg8LAAthAgF/AX4jgICAgABBEGsiAiSAgICAAEG9hsCAAEEVENKAgIAAEMyAgIAAIQMgAiAANwMIIAIgATcDACADQeSGwIAAQQIgAkECEM2AgIAAEIeAgIAAGiACQRBqJICAgIAAC9wCAgF/An4jgICAgABBIGsiAiSAgICAAAJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0IEUg0AIAJBCGoQs4CAgAACQCACKAIIQQFHDQAgAigCDCACKAIQELSAgIAACxC7gICAACEDAkACQCABQv////8PVg0AIAJBCGoQv4CAgAAgAikDECEBIAIpAwhBiAgQvYCAgAAgASAAEK2AgIAARQ0DELaBgIAADAELELeBgIAAIAFCIIinSQ0DQQEgAEIAELiBgIAAQQEQwYCAgABCACABQoSAgIBwgyIBIAEQgICAgAAaQfSGwIAAQRYQ0oCAgAAQzICAgAAhBCACIAE3AxggAiADNwMQIAIgADcDCCAEQZCHwIAAQQMgAkEIakEDEM2AgIAAEIeAgIAAGgsgAkEgaiSAgICAAEICDwsAC0KDgICA4IABEMCAgIAAAAtCg4CAgPCAARDAgICAAAALEwBBARDBgICAAEIAEJGAgIAAGgszAQJ+EKWAgIAAIQACQBCmgICAAEIgiCIBIABCIIgiAFQNACABpyAAp2sPCxCxgICAAAALFQAgABDBgICAACABIAIQkoCAgAAaC6cBAgF/An4jgICAgABBEGsiACSAgICAACAAELOAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBC0gICAAAsgABC/gICAACAAKQMIIQEgACkDAEGICBC9gICAACABEIKAgIAAGiAAEMKAgIAAAkAgACgCAA0AEPeAgIAAAAsgACkDCCECELaBgIAAIAEQqIGAgAAgAiABELSBgIAAIABBEGokgICAgABCAgugAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAgABCzgICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQtICAgAALELuAgIAAIQEQvoCAgABBABDBgICAAEICEJGAgIAAGkGoh8CAAEETENKAgIAAEMyAgIAAIQIgACABNwMAIAJBvIfAgABBASAAQQEQzYCAgAAQh4CAgAAaIABBEGokgICAgABCAgsxAAJAIABC/wGDQgRSDQAgAUL/AYNCBFINACAAQiCIpyABQiCIpxC0gICAAEICDwsAC98EAQV/I4CAgIAAQdAAayICJICAgIAAIAJBKGogABC9gYCAAAJAIAIoAihBAkYNACACQQhqQQhqIAJBKGpBCGoiAygCADYCACACIAIpAig3AwggAkEoaiABEL2BgIAAIAIoAihBAkYNACACQRhqQQhqIAMoAgA2AgAgAiACKQIoNwMYIAJBKGoQs4CAgAACQCACKAIoQQFHDQAgAigCLCACKAIwELSAgIAACxC5gICAABoCQAJAAkAQtoCAgAANABC3gYCAACIDQYD7gAMgA0GA+4ADSRshBCACIAJBGGo2AiwgAiACQQhqNgIoQQAhAwNAIANBCEYNAwJAIAJBKGogA2ooAgAiBSgCAEEBcUUNACAFKAIIIgYgBEsNAyAFKAIEIAZLDQMLIANBBGohAwwACwtCg4CAgND/ABDAgICAAAALQoOAgIDA/wAQwICAgAAACwJAAkAgAigCCEEBRw0AIAIoAgwgAigCEBCmgYCAAAwBC0EBELeAgIAAQgIQkYCAgAAaCwJAAkAgAigCGEEBRw0AIAIoAhwgAigC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IgEkgICAgAACQAJAAkACQCAAQQFxRQ0AIAFBzojAgABBCRDDgICAACABKAIADQIgASABKQMIEMSAgIAADAELIAFBtojAgABBBhDDgICAACABKAIADQEgASABKQMIEMSAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILdwICfwF+I4CAgIAAQRBrIgIkgICAgABBACEDAkACQCABELeAgIAAIgRCAhC4gICAAEUNACACQQRqIARCAhCBgICAABDIgYCAAEEBIQMgAigCBEEBRg0BIAAgAikCCDcCBAsgACADNgIAIAJBEGokgICAgAAPCwALVgIBfwF+I4CAgIAAQRBrIgMkgICAgAAgABC3gICAACEEIAMgASACEMmBgIAAAkAgAygCAEEBRw0AAAsgBCADKQMIQgIQkoCAgAAaIANBEGokgICAgAALFQAgABDggICAACABQgIQkoCAgAAaCxwAIAAQ4ICAgAAgAa1CIIZCBIRCAhCSgICAABoLuQcBDH8jgICAgABBEGshAwJAAkAgAkEQTw0AIAAhBAwBCwJAIAAgAEEAIABrQQNxIgVqIgZPDQAgBUF/aiEHIAAhBCABIQgCQCAFRQ0AIAUhCSAAIQQgASEIA0AgBCAILQAAOgAAIAhBAWohCCAEQQFqIQQgCUF/aiIJDQALCyAHQQdJDQADQCAEIAgtAAA6AAAgBEEBaiAIQQFqLQAAOgAAIARBAmogCEECai0AADoAACAEQQNqIAhBA2otAAA6AAAgBEEEaiAIQQRqLQAAOgAAIARBBWogCEEFai0AADoAACAEQQZqIAhBBmotAAA6AAAgBEEHaiAIQQdqLQAAOgAAIAhBCGohCCAEQQhqIgQgBkcNAAsLIAYgAiAFayIJQXxxIgdqIQQCQAJAIAEgBWoiCEEDcSIBDQAgBiAETw0BIAghAQNAIAYgASgCADYCACABQQRqIQEgBkEEaiIGIARJDQAMAgsLQQAhAiADQQA2AgwgA0EMaiABciEFAkBBBCABayIKQQFxRQ0AIAUgCC0AADoAAEEBIQILAkAgCkECcUUNACAFIAJqIAggAmovAQA7AQALIAggAWshAiABQQN0IQsgAygCDCEFAkACQCAGQQRqIARJDQAgBiEMDAELQQAgC2tBGHEhDQNAIAYgBSALdiACQQRqIgIoAgAiBSANdHI2AgAgBkEIaiEKIAZBBGoiDCEGIAogBEkNAAsLQQAhBiADQQA6AAggA0EAOgAGAkACQCABQQFHDQAgA0EIaiENQQAhAUEAIQpBACEODAELIAJBBWotAAAhCiADIAJBBGotAAAiAToACCAKQQh0IQpBAiEOIANBBmohDQsCQCAIQQFxRQ0AIA0gAkEEaiAOai0AADoAACADLQAGQRB0IQYgAy0ACCEBCyAMIAogBnIgAUH/AXFyQQAgC2tBGHF0IAUgC3ZyNgIACyAJQQNxIQIgCCAHaiEBCwJAIAQgBCACaiIGTw0AIAJBf2ohCQJAIAJBB3EiCEUNAANAIAQgAS0AADoAACABQQFqIQEgBEEBaiEEIAhBf2oiCA0ACwsgCUEHSQ0AA0AgBCABLQAAOgAAIARBAWogAUEBai0AADoAACAEQQJqIAFBAmotAAA6AAAgBEEDaiABQQNqLQAAOgAAIARBBGogAUEEai0AADoAACAEQQVqIAFBBWotAAA6AAAgBEEGaiABQQZqLQAAOgAAIARBB2ogAUEHai0AADoAACABQQhqIQEgBEEIaiIEIAZHDQALCyAACw4AIAAgASACEM+BgIAACwuKDQEAQYCAwAALgA1Db250cmFjdENyZWF0ZUNvbnRyYWN0SG9zdEZuQ3JlYXRlQ29udHJhY3RXaXRoQ3Rvckhvc3RGbgAAEAAIAAAACAAQABQAAAAcABAAHAAAAGRzdF9jb25maWdfc2V0cGFyYW1zXgAQAAYAAABuYXRpdmVfZHJvcF9hcHBsaWVkbmF0aXZlX2Ryb3BfcGFyYW1zb3JpZ2luc3VjY2VzcwAAtgUQAAcAAAB/ABAAEgAAAMgEEAAEAAAAkQAQAAYAAACXABAABwAAAPYBEAAQAAAAIAIQABMAAAAzAhAAEwAAADoFEAAOAAAARgIQAAoAAABkc3RfY29uZmlnAADwABAACgAAALYFEAAHAAAAcmVjZWl2ZXLIARAABgAAAAwBEAAIAAAAbHpfcmVjZWl2ZV9hbGVydGx6X2NvbXBvc2VfYWxlcnRsel9yZWNlaXZlbHpfY29tcG9zZXRyYW5zZmVycHVibGljX2tleXNpZ25hdHVyZQBgARAACgAAAGoBEAAJAAAARHN0Q29uZmlnRW5kcG9pbnRub25jZXNyY19laWQAAACVARAABQAAAA0CEAAGAAAAmgEQAAcAAABuYXRpdmVfdG9rZW5hbW91bnR0b8gBEAAGAAAAzgEQAAIAAABkZWZhdWx0X211bHRpcGxpZXJfYnBzZmxvb3JfbWFyZ2luX3VzZG9wdGlvbnNzZW5kZXJjYWxsZGF0YV9zaXplbHpfY29tcG9zZV9iYXNlX2dhc2x6X3JlY2VpdmVfYmFzZV9nYXNuYXRpdmVfY2FwEwIQAA0AAADgARAAFgAAALYFEAAHAAAA9gEQABAAAAAgAhAAEwAAADMCEAATAAAAOgUQAA4AAABGAhAACgAAAAYCEAAHAAAAigUQAAoAAAANAhAABgAAAAAAABIAAAAAAAAAAFdhc21hcmdzY29udHJhY3Rmbl9uYW1lALgCEAAEAAAAvAIQAAgAAADEAhAABwAAAGV4ZWN1dGFibGVzYWx0AADkAhAACgAAAO4CEAAEAAAAY29uc3RydWN0b3JfYXJncwQDEAAQAAAA5AIQAAoAAADuAhAABAAAALQCEAAEAAAAdGhyZXNob2xkb3duZXJzaGlwX3RyYW5zZmVycmVkbmV3X293bmVyb2xkX293bmVyUgMQAAkAAABbAxAACQAAAG93bmVyc2hpcF90cmFuc2ZlcnJpbmd0dGwAAABSAxAACQAAAFsDEAAJAAAAigMQAAMAAABvd25lcnNoaXBfcmVub3VuY2VkAFsDEAAJAAAAT3duZXJQZW5kaW5nT3duZXJleHRlbmRfdG8AANUDEAAJAAAANAMQAAkAAAB0dGxfY29uZmlnc19zZXRpbnN0YW5jZXBlcnNpc3RlbnQAAAD/AxAACAAAAAcEEAAKAAAAdHRsX2NvbmZpZ3NfZnJvemVuRnJvemVuSW5zdGFuY2VQZXJzaXN0ZW50TWlncmF0aW5nYWN0aXZlYWRtaW4AAFcEEAAGAAAAXQQQAAUAAABzZXRfc3VwcG9ydGVkX21lc3NhZ2VfbGlibWVzc2FnZV9saWJzdXBwb3J0ZWQAAACNBBAACwAAAJgEEAAJAAAAc2V0X2FsbG93bGlzdGFsbG93ZWRvYXBwwQQQAAcAAADIBBAABAAAAHNldF9kZW55bGlzdGRlbmllZAAA6AQQAAYAAADIBBAABAAAAHBhdXNlcgAAAAUQAAYAAAB1bnBhdXNlchAFEAAIAAAAc2V0X2RlZmF1bHRfbXVsdGlwbGllcl9icHNtdWx0aXBsaWVyX2JwczoFEAAOAAAAc2V0X2RlcG9zaXRfYWRkcmVzc2RlcG9zaXRfYWRkcmVzcwAAYwUQAA8AAABzZXRfcHJpY2VfZmVlZHByaWNlX2ZlZWSKBRAACgAAAHNldF9zdXBwb3J0ZWRfb3B0aW9uX3R5cGVzZHN0X2VpZG9wdGlvbl90eXBlcwAAALYFEAAHAAAAvQUQAAwAAABzZXRfd29ya2VyX2ZlZV9saWJmZWVfbGliAAAA7gUQAAcAAABQYXVzZWRBZG1pbnNNZXNzYWdlTGlic0FsbG93bGlzdEFsbG93bGlzdFNpemVEZW55bGlzdERlZmF1bHRNdWx0aXBsaWVyQnBzRGVwb3NpdEFkZHJlc3NTdXBwb3J0ZWRPcHRpb25UeXBlc1dvcmtlckZlZUxpYlByaWNlRmVlZADX9AEOY29udHJhY3RzcGVjdjAAAAAEAAAAAAAAAAAAAAANRXhlY3V0b3JFcnJvcgAAAAAAAAMAAAAAAAAAD0VpZE5vdFN1cHBvcnRlZAAAAAABAAAAAAAAAAxVbmF1dGhvcml6ZWQAAAACAAAAAAAAABNVbmF1dGhvcml6ZWRDb250ZXh0AAAAAAMAAAAFAAAAAAAAAAAAAAAMRHN0Q29uZmlnU2V0AAAAAQAAAA5kc3RfY29uZmlnX3NldAAAAAAAAQAAAAAAAAAGcGFyYW1zAAAAAAPqAAAH0AAAABFTZXREc3RDb25maWdQYXJhbQAAAAAAAAAAAAACAAAABQAAAAAAAAAAAAAAEU5hdGl2ZURyb3BBcHBsaWVkAAAAAAAAAQAAABNuYXRpdmVfZHJvcF9hcHBsaWVkAAAAAAUAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAAAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAAAAAAABG9hcHAAAAATAAAAAAAAAAAAAAASbmF0aXZlX2Ryb3BfcGFyYW1zAAAAAAPqAAAH0AAAABBOYXRpdmVEcm9wUGFyYW1zAAAAAAAAAAAAAAAHc3VjY2VzcwAAAAPqAAAAAQAAAAAAAAACAAAAAQAAANtEZXN0aW5hdGlvbiBjaGFpbiBjb25maWd1cmF0aW9uIGZvciBleGVjdXRvciBmZWUgY2FsY3VsYXRpb24uCgpDb250YWlucyBnYXMgY29zdHMgYW5kIGZlZSBwYXJhbWV0ZXJzIHNwZWNpZmljIHRvIGVhY2ggZGVzdGluYXRpb24gY2hhaW4uClRoZXNlIHBhcmFtZXRlcnMgYXJlIHVzZWQgYnkgdGhlIGZlZSBsaWJyYXJ5IHRvIGNhbGN1bGF0ZSBhY2N1cmF0ZSBleGVjdXRpb24gZmVlcy4AAAAAAAAAAAlEc3RDb25maWcAAAAAAAAFAAAAO01pbmltdW0gZmVlIG1hcmdpbiBpbiBVU0QgKHNjYWxlZCkgdG8gZW5zdXJlIHByb2ZpdGFiaWxpdHkuAAAAABBmbG9vcl9tYXJnaW5fdXNkAAAACgAAADpCYXNlIGdhcyBjb3N0IHBlciBsekNvbXBvc2UgY2FsbCBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4uAAAAAAATbHpfY29tcG9zZV9iYXNlX2dhcwAAAAAGAAAAP0Jhc2UgZ2FzIGNvc3QgZm9yIGx6UmVjZWl2ZSBleGVjdXRpb24gb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLgAAAAATbHpfcmVjZWl2ZV9iYXNlX2dhcwAAAAAGAAAAUUZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyBmb3IgdGhpcyBkZXN0aW5hdGlvbiAoMCA9IHVzZSBkZWZhdWx0IG11bHRpcGxpZXIpLgAAAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAAEZNYXhpbXVtIG5hdGl2ZSB0b2tlbiB2YWx1ZSB0aGF0IGNhbiBiZSB0cmFuc2ZlcnJlZCB0byB0aGUgZGVzdGluYXRpb24uAAAAAAAKbmF0aXZlX2NhcAAAAAAACgAAAAEAAAB8UGFyYW1ldGVycyBmb3Igc2V0dGluZyBkZXN0aW5hdGlvbiBjb25maWd1cmF0aW9uLgoKVXNlZCB3aGVuIGNvbmZpZ3VyaW5nIGV4ZWN1dG9yIHNldHRpbmdzIGZvciBhIHNwZWNpZmljIGRlc3RpbmF0aW9uIGNoYWluLgAAAAAAAAARU2V0RHN0Q29uZmlnUGFyYW0AAAAAAAACAAAAKENvbmZpZ3VyYXRpb24gZm9yIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi4AAAAKZHN0X2NvbmZpZwAAAAAH0AAAAAlEc3RDb25maWcAAAAAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAAQAAAGhQYXJhbWV0ZXJzIGZvciBhIG5hdGl2ZSB0b2tlbiBkcm9wLgoKVXNlZCB0byBzcGVjaWZ5IG5hdGl2ZSB0b2tlbiB0cmFuc2ZlcnMgYXMgcGFydCBvZiBleGVjdXRvciBvcHRpb25zLgAAAAAAAAAQTmF0aXZlRHJvcFBhcmFtcwAAAAIAAAAkQW1vdW50IG9mIG5hdGl2ZSB0b2tlbnMgdG8gdHJhbnNmZXIuAAAABmFtb3VudAAAAAAACwAAAC9SZWNlaXZlciBhZGRyZXNzIGZvciB0aGUgbmF0aXZlIHRva2VuIHRyYW5zZmVyLgAAAAAIcmVjZWl2ZXIAAAATAAAAAAAAALhWZXJpZmllcyBhdXRob3JpemF0aW9uIGZvciB0aGUgZXhlY3V0b3IgY29udHJhY3QuCgpUaGUgcHVibGljIGtleSBtdXN0IGNvcnJlc3BvbmQgdG8gYSByZWdpc3RlcmVkIGFkbWluIGFuZCBtdXN0IGhhdmUgc2lnbmVkIHRoZSBzaWduYXR1cmVfcGF5bG9hZC4KVXNlcyBFZDI1NTE5IHNpZ25hdHVyZSB2ZXJpZmljYXRpb24uAAAADF9fY2hlY2tfYXV0aAAAAAMAAAAAAAAAEXNpZ25hdHVyZV9wYXlsb2FkAAAAAAAD7gAAACAAAAAAAAAACWF1dGhfZGF0YQAAAAAAB9AAAAARRXhlY3V0b3JTaWduYXR1cmUAAAAAAAAAAAAADWF1dGhfY29udGV4dHMAAAAAAAPqAAAH0AAAAAdDb250ZXh0AAAAAAEAAAPpAAAAAgAAAAMAAAABAAAAjFNpZ25hdHVyZSBkYXRhIGZvciBDdXN0b20gQWNjb3VudCBhdXRob3JpemF0aW9uLgpDb250YWlucyB0aGUgYWRtaW4ncyBwdWJsaWMga2V5IGFuZCB0aGVpciBFZDI1NTE5IHNpZ25hdHVyZSBvdmVyIHRoZSBhdXRob3JpemF0aW9uIHBheWxvYWQuAAAAAAAAABFFeGVjdXRvclNpZ25hdHVyZQAAAAAAAAIAAABNQWRtaW4ncyBFZDI1NTE5IHB1YmxpYyBrZXkgKDMyIGJ5dGVzKSAtIG11c3QgY29ycmVzcG9uZCB0byBhIHJlZ2lzdGVyZWQgYWRtaW4AAAAAAAAKcHVibGljX2tleQAAAAAD7gAAACAAAAA3RWQyNTUxOSBzaWduYXR1cmUgKDY0IGJ5dGVzKSBvdmVyIHRoZSBzaWduYXR1cmVfcGF5bG9hZAAAAAAJc2lnbmF0dXJlAAAAAAAD7gAAAEAAAAAAAAAA5FNldHMgdGhlIHBhdXNlZCBzdGF0ZSBvZiB0aGUgd29ya2VyLgoKV2hlbiBwYXVzZWQsIHRoZSB3b3JrZXIgd2lsbCByZWplY3QgbmV3IGpvYiBhc3NpZ25tZW50cyAoZS5nLiwgYXNzaWduX2pvYiwgZ2V0X2ZlZSkuCkV4aXN0aW5nIGpvYnMgaW4gcHJvZ3Jlc3MgYXJlIG5vdCBhZmZlY3RlZC4KCiMgQXJndW1lbnRzCiogYHBhdXNlZGAgLSBgdHJ1ZWAgdG8gcGF1c2UsIGBmYWxzZWAgdG8gdW5wYXVzZQAAAApzZXRfcGF1c2VkAAAAAAABAAAAAAAAAAZwYXVzZWQAAAAAAAEAAAAAAAAAAAAAAP1TZXRzIGFkbWluIHN0YXR1cyBmb3IgYW4gYWRkcmVzcy4KCkFkbWlucyBjYW4gY29uZmlndXJlIHdvcmtlciBzZXR0aW5ncyBsaWtlIGZlZSBtdWx0aXBsaWVycywgZGVwb3NpdCBhZGRyZXNzZXMsCmFuZCBzdXBwb3J0ZWQgb3B0aW9uIHR5cGVzLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gVGhlIGFkZHJlc3MgdG8gc2V0IGFkbWluIHN0YXR1cyBmb3IKKiBgYWN0aXZlYCAtIGB0cnVlYCB0byBhZGQgYWRtaW4sIGBmYWxzZWAgdG8gcmVtb3ZlAAAAAAAACXNldF9hZG1pbgAAAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAAAAAE3U2V0cyB3aGV0aGVyIGEgbWVzc2FnZSBsaWJyYXJ5IGlzIHN1cHBvcnRlZCBieSB0aGlzIHdvcmtlci4KCk1lc3NhZ2UgbGlicmFyaWVzIChlLmcuLCBVTE4zMDIpIGNhbGwgd29ya2VycyB0byBhc3NpZ24gam9icy4gT25seSBzdXBwb3J0ZWQKbGlicmFyaWVzIGNhbiBpbnRlcmFjdCB3aXRoIHRoaXMgd29ya2VyLgoKIyBBcmd1bWVudHMKKiBgbWVzc2FnZV9saWJgIC0gVGhlIG1lc3NhZ2UgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzCiogYHN1cHBvcnRlZGAgLSBgdHJ1ZWAgdG8gYWRkIHN1cHBvcnQsIGBmYWxzZWAgdG8gcmVtb3ZlIHN1cHBvcnQAAAAAGXNldF9zdXBwb3J0ZWRfbWVzc2FnZV9saWIAAAAAAAACAAAAAAAAAAttZXNzYWdlX2xpYgAAAAATAAAAAAAAAAlzdXBwb3J0ZWQAAAAAAAABAAAAAAAAAAAAAAFYU2V0cyBhbGxvd2xpc3Qgc3RhdHVzIGZvciBhbiBPQXBwIGFkZHJlc3MuCgpXaGVuIHRoZSBhbGxvd2xpc3QgaXMgZW1wdHksIGFsbCBPQXBwcyBhcmUgYWxsb3dlZCAodW5sZXNzIG9uIGRlbnlsaXN0KS4KV2hlbiB0aGUgYWxsb3dsaXN0IGlzIG5vdCBlbXB0eSwgb25seSBhbGxvd2xpc3RlZCBPQXBwcyBhcmUgYWxsb3dlZC4KRGVueWxpc3QgYWx3YXlzIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBhbGxvd2xpc3QuCgojIEFyZ3VtZW50cwoqIGBvYXBwYCAtIFRoZSBPQXBwIGNvbnRyYWN0IGFkZHJlc3MKKiBgYWxsb3dlZGAgLSBgdHJ1ZWAgdG8gYWRkIHRvIGFsbG93bGlzdCwgYGZhbHNlYCB0byByZW1vdmUAAAANc2V0X2FsbG93bGlzdAAAAAAAAAIAAAAAAAAABG9hcHAAAAATAAAAAAAAAAdhbGxvd2VkAAAAAAEAAAAAAAAAAAAAAQlTZXRzIGRlbnlsaXN0IHN0YXR1cyBmb3IgYW4gT0FwcCBhZGRyZXNzLgoKRGVueWxpc3RlZCBPQXBwcyBhcmUgYmxvY2tlZCBmcm9tIHVzaW5nIHRoaXMgd29ya2VyLCBldmVuIGlmIHRoZXkncmUgb24KdGhlIGFsbG93bGlzdCAoZGVueWxpc3QgdGFrZXMgcHJlY2VkZW5jZSkuCgojIEFyZ3VtZW50cwoqIGBvYXBwYCAtIFRoZSBPQXBwIGNvbnRyYWN0IGFkZHJlc3MKKiBgZGVuaWVkYCAtIGB0cnVlYCB0byBhZGQgdG8gZGVueWxpc3QsIGBmYWxzZWAgdG8gcmVtb3ZlAAAAAAAADHNldF9kZW55bGlzdAAAAAIAAAAAAAAABG9hcHAAAAATAAAAAAAAAAZkZW5pZWQAAAAAAAEAAAAAAAAAAAAAATtTZXRzIHRoZSBkZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cy4KClRoZSBtdWx0aXBsaWVyIGlzIGFwcGxpZWQgdG8gYmFzZSBmZWVzIGR1cmluZyBmZWUgY2FsY3VsYXRpb24uIFVzZWQgd2hlbgpubyBkZXN0aW5hdGlvbi1zcGVjaWZpYyBtdWx0aXBsaWVyIGlzIGNvbmZpZ3VyZWQuCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBBZG1pbiBhZGRyZXNzIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgbXVsdGlwbGllcl9icHNgIC0gTXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKDEwMDAwID0gMXgsIDEyMDAwID0gMS4yeCkAAAAAGnNldF9kZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAACAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAADm11bHRpcGxpZXJfYnBzAAAAAAAEAAAAAAAAAAAAAADxU2V0cyB0aGUgZGVwb3NpdCBhZGRyZXNzIHdoZXJlIHdvcmtlciBmZWVzIGFyZSBjb2xsZWN0ZWQuCgpXaGVuIGpvYnMgYXJlIGFzc2lnbmVkLCBmZWVzIGFyZSBkaXJlY3RlZCB0byB0aGlzIGFkZHJlc3MuCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBBZG1pbiBhZGRyZXNzIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgZGVwb3NpdF9hZGRyZXNzYCAtIEFkZHJlc3MgdG8gcmVjZWl2ZSBjb2xsZWN0ZWQgZmVlcwAAAAAAABNzZXRfZGVwb3NpdF9hZGRyZXNzAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAPZGVwb3NpdF9hZGRyZXNzAAAAABMAAAAAAAAAAAAAAQlTZXRzIHN1cHBvcnRlZCBleGVjdXRvciBvcHRpb24gdHlwZXMgZm9yIGEgZGVzdGluYXRpb24gZW5kcG9pbnQuCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBBZG1pbiBhZGRyZXNzIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgZWlkYCAtIERlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKQoqIGBvcHRpb25fdHlwZXNgIC0gU3VwcG9ydGVkIG9wdGlvbiB0eXBlcy4gRWFjaCBieXRlIHJlcHJlc2VudHMgYW4gb3B0aW9uIHR5cGUuAAAAAAAAGnNldF9zdXBwb3J0ZWRfb3B0aW9uX3R5cGVzAAAAAAADAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAAA2VpZAAAAAAEAAAAAAAAAAxvcHRpb25fdHlwZXMAAAAOAAAAAAAAAAAAAAESU2V0cyB0aGUgd29ya2VyIGZlZSBsaWJyYXJ5IGNvbnRyYWN0IGFkZHJlc3MuCgpUaGUgZmVlIGxpYnJhcnkgY2FsY3VsYXRlcyBmZWVzIGJhc2VkIG9uIGV4ZWN1dG9yIG9wdGlvbnMgYW5kIHByaWNlIGZlZWQgZGF0YS4KCiMgQXJndW1lbnRzCiogYGFkbWluYCAtIEFkbWluIGFkZHJlc3MgKG11c3QgcHJvdmlkZSBhdXRob3JpemF0aW9uKQoqIGB3b3JrZXJfZmVlX2xpYmAgLSBGZWUgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzIGltcGxlbWVudGluZyBgSUV4ZWN1dG9yRmVlTGliYAAAAAAAEnNldF93b3JrZXJfZmVlX2xpYgAAAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAA53b3JrZXJfZmVlX2xpYgAAAAAAEwAAAAAAAAAAAAABElNldHMgdGhlIHByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcy4KClRoZSBwcmljZSBmZWVkIHByb3ZpZGVzIGdhcyBwcmljZXMgYW5kIGV4Y2hhbmdlIHJhdGVzIGZvciBjcm9zcy1jaGFpbgpmZWUgY2FsY3VsYXRpb25zLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gQWRtaW4gYWRkcmVzcyAobXVzdCBwcm92aWRlIGF1dGhvcml6YXRpb24pCiogYHByaWNlX2ZlZWRgIC0gUHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzIGltcGxlbWVudGluZyBgSUxheWVyWmVyb1ByaWNlRmVlZGAAAAAAAA5zZXRfcHJpY2VfZmVlZAAAAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAApwcmljZV9mZWVkAAAAAAATAAAAAAAAAAAAAAAlUmV0dXJucyB3aGV0aGVyIHRoZSB3b3JrZXIgaXMgcGF1c2VkLgAAAAAAAAZwYXVzZWQAAAAAAAAAAAABAAAAAQAAAAAAAABVUmV0dXJucyB3aGV0aGVyIGFuIGFkZHJlc3MgaXMgYW4gYWRtaW4uCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBUaGUgYWRkcmVzcyB0byBjaGVjawAAAAAAAAhpc19hZG1pbgAAAAEAAAAAAAAABWFkbWluAAAAAAAAEwAAAAEAAAABAAAAAAAAABxSZXR1cm5zIGFsbCBhZG1pbiBhZGRyZXNzZXMuAAAABmFkbWlucwAAAAAAAAAAAAEAAAPqAAAAEwAAAAAAAABvUmV0dXJucyB3aGV0aGVyIGEgbWVzc2FnZSBsaWJyYXJ5IGlzIHN1cHBvcnRlZC4KCiMgQXJndW1lbnRzCiogYG1lc3NhZ2VfbGliYCAtIE1lc3NhZ2UgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzAAAAABhpc19zdXBwb3J0ZWRfbWVzc2FnZV9saWIAAAABAAAAAAAAAAttZXNzYWdlX2xpYgAAAAATAAAAAQAAAAEAAAAAAAAAc1JldHVybnMgYWxsIHN1cHBvcnRlZCBtZXNzYWdlIGxpYnJhcnkgYWRkcmVzc2VzLgoKIyBSZXR1cm5zClZlY3RvciBvZiBzdXBwb3J0ZWQgbWVzc2FnZSBsaWJyYXJ5IGNvbnRyYWN0IGFkZHJlc3Nlcy4AAAAADG1lc3NhZ2VfbGlicwAAAAAAAAABAAAD6gAAABMAAAAAAAAAWlJldHVybnMgd2hldGhlciBhbiBPQXBwIGlzIG9uIHRoZSBhbGxvd2xpc3QuCgojIEFyZ3VtZW50cwoqIGBvYXBwYCAtIE9BcHAgY29udHJhY3QgYWRkcmVzcwAAAAAAD2lzX29uX2FsbG93bGlzdAAAAAABAAAAAAAAAARvYXBwAAAAEwAAAAEAAAABAAAAAAAAADFSZXR1cm5zIHRoZSBudW1iZXIgb2YgYWRkcmVzc2VzIG9uIHRoZSBhbGxvd2xpc3QuAAAAAAAADmFsbG93bGlzdF9zaXplAAAAAAAAAAAAAQAAAAQAAAAAAAAAWVJldHVybnMgd2hldGhlciBhbiBPQXBwIGlzIG9uIHRoZSBkZW55bGlzdC4KCiMgQXJndW1lbnRzCiogYG9hcHBgIC0gT0FwcCBjb250cmFjdCBhZGRyZXNzAAAAAAAADmlzX29uX2RlbnlsaXN0AAAAAAABAAAAAAAAAARvYXBwAAAAEwAAAAEAAAABAAAAAAAAAPlSZXR1cm5zIHdoZXRoZXIgYW4gT0FwcCBoYXMgYWNjZXNzIGNvbnRyb2wgbGlzdCAoQUNMKSBwZXJtaXNzaW9uLgoKQUNMIGV2YWx1YXRpb24gb3JkZXI6CjEuIElmIG9uIGRlbnlsaXN0IOKGkiBkZW5pZWQKMi4gSWYgYWxsb3dsaXN0IGlzIGVtcHR5IE9SIG9uIGFsbG93bGlzdCDihpIgYWxsb3dlZAozLiBPdGhlcndpc2Ug4oaSIGRlbmllZAoKIyBBcmd1bWVudHMKKiBgb2FwcGAgLSBPQXBwIGNvbnRyYWN0IGFkZHJlc3MgdG8gY2hlY2sAAAAAAAAHaGFzX2FjbAAAAAABAAAAAAAAAARvYXBwAAAAEwAAAAEAAAABAAAAAAAAADNSZXR1cm5zIHRoZSBkZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cy4AAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAAAAAABAAAABAAAAAAAAAA1UmV0dXJucyB0aGUgZGVwb3NpdCBhZGRyZXNzIHdoZXJlIGZlZXMgYXJlIGNvbGxlY3RlZC4AAAAAAAAPZGVwb3NpdF9hZGRyZXNzAAAAAAAAAAABAAAD6AAAABMAAAAAAAAAfFJldHVybnMgc3VwcG9ydGVkIG9wdGlvbiB0eXBlcyBmb3IgYSBkZXN0aW5hdGlvbiBlbmRwb2ludC4KCiMgQXJndW1lbnRzCiogYGVpZGAgLSBEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikAAAAaZ2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXMAAAAAAAEAAAAAAAAAA2VpZAAAAAAEAAAAAQAAA+gAAAAOAAAAAAAAADBSZXR1cm5zIHRoZSB3b3JrZXIgZmVlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcy4AAAAOd29ya2VyX2ZlZV9saWIAAAAAAAAAAAABAAAD6AAAABMAAAAAAAAAKFJldHVybnMgdGhlIHByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcy4AAAAKcHJpY2VfZmVlZAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAABEQXNzaWducyBhIGpvYiB0byB0aGUgZXhlY3V0b3IgYW5kIHJldHVybnMgZmVlIHJlY2lwaWVudCBpbmZvcm1hdGlvbi4AAAAKYXNzaWduX2pvYgAAAAAABQAAAAAAAAAIc2VuZF9saWIAAAATAAAAAAAAAAZzZW5kZXIAAAAAABMAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAANY2FsbGRhdGFfc2l6ZQAAAAAAAAQAAAAAAAAAB29wdGlvbnMAAAAADgAAAAEAAAfQAAAADEZlZVJlY2lwaWVudAAAAAAAAAA3Q2FsY3VsYXRlcyB0aGUgZXhlY3V0aW9uIGZlZSBmb3IgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAHZ2V0X2ZlZQAAAAAFAAAAAAAAAAhzZW5kX2xpYgAAABMAAAAAAAAABnNlbmRlcgAAAAAAEwAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAA1jYWxsZGF0YV9zaXplAAAAAAAABAAAAAAAAAAHb3B0aW9ucwAAAAAOAAAAAQAAAAsAAAAAAAAAQFNldHMgZGVzdGluYXRpb24tc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgZm9yIG11bHRpcGxlIGVuZHBvaW50cy4AAAAOc2V0X2RzdF9jb25maWcAAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAGcGFyYW1zAAAAAAPqAAAH0AAAABFTZXREc3RDb25maWdQYXJhbQAAAAAAAAAAAAAAAAAAPlJldHVybnMgdGhlIGRlc3RpbmF0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIGEgc3BlY2lmaWMgZW5kcG9pbnQuAAAAAAAKZHN0X2NvbmZpZwAAAAAAAQAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAQAAA+gAAAfQAAAACURzdENvbmZpZwAAAAAAAAAAAACRTmF0aXZlIHRva2VuIGRyb3BzLgoKVHJhbnNmZXJzIG5hdGl2ZSB0b2tlbnMgdG8gZWFjaCByZWNlaXZlciBzcGVjaWZpZWQgaW4gdGhlIHBhcmFtZXRlcnMgYW5kCnRyYWNrcyB0aGUgc3VjY2Vzcy9mYWlsdXJlIHN0YXR1cyBvZiBlYWNoIHRyYW5zZmVyLgAAAAAAAAtuYXRpdmVfZHJvcAAAAAAFAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAARvYXBwAAAAEwAAAAAAAAASbmF0aXZlX2Ryb3BfcGFyYW1zAAAAAAPqAAAH0AAAABBOYXRpdmVEcm9wUGFyYW1zAAAAAAAAAAAAAAAqUmV0dXJucyB0aGUgZW5kcG9pbnQgYWRkcmVzcyBmcm9tIHN0b3JhZ2UuAAAAAAAIZW5kcG9pbnQAAAAAAAAAAQAAABMAAAAAAAACSUluaXRpYWxpemVzIHRoZSBleGVjdXRvciBjb250cmFjdC4KClNldHMgdXAgb3duZXJzaGlwLCB3b3JrZXIgY29uZmlndXJhdGlvbiwgYW5kIGVuZHBvaW50IGFkZHJlc3MuCgojIEFyZ3VtZW50cwoqIGBlbmRwb2ludGAgLSBMYXllclplcm8gRW5kcG9pbnQgVjIgY29udHJhY3QgYWRkcmVzcwoqIGBvd25lcmAgLSBDb250cmFjdCBvd25lciBhZGRyZXNzCiogYGFkbWluc2AgLSBJbml0aWFsIGFkbWluIGFkZHJlc3NlcyAobXVzdCBub3QgYmUgZW1wdHkpCiogYG1lc3NhZ2VfbGlic2AgLSBTdXBwb3J0ZWQgbWVzc2FnZSBsaWJyYXJ5IGFkZHJlc3NlcyAoZS5nLiwgVUxOMzAyKQoqIGBwcmljZV9mZWVkYCAtIFByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcyBmb3IgZmVlIGNhbGN1bGF0aW9ucwoqIGBkZWZhdWx0X211bHRpcGxpZXJfYnBzYCAtIERlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICgxMDAwMCA9IDF4KQoqIGB3b3JrZXJfZmVlX2xpYmAgLSBXb3JrZXIgZmVlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcwoqIGBkZXBvc2l0X2FkZHJlc3NgIC0gQWRkcmVzcyB0byByZWNlaXZlIGZlZSBwYXltZW50cwAAAAAAAA1fX2NvbnN0cnVjdG9yAAAAAAAACAAAAAAAAAAIZW5kcG9pbnQAAAATAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAABmFkbWlucwAAAAAD6gAAABMAAAAAAAAADG1lc3NhZ2VfbGlicwAAA+oAAAATAAAAAAAAAApwcmljZV9mZWVkAAAAAAATAAAAAAAAABZkZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAAEAAAAAAAAAA53b3JrZXJfZmVlX2xpYgAAAAAAEwAAAAAAAAAPZGVwb3NpdF9hZGRyZXNzAAAAABMAAAAAAAAAAAAAALJXaXRoZHJhd3MgYSB0b2tlbiBmcm9tIHRoZSBjb250cmFjdCB0byBhIHNwZWNpZmllZCBhZGRyZXNzLgoKIyBBcmd1bWVudHMKKiBgdG9rZW5gIC0gVGhlIHRva2VuIGNvbnRyYWN0IGFkZHJlc3MKKiBgdG9gIC0gVGhlIHJlY2lwaWVudCBhZGRyZXNzCiogYGFtb3VudGAgLSBUaGUgYW1vdW50IHRvIHdpdGhkcmF3AAAAAAAOd2l0aGRyYXdfdG9rZW4AAAAAAAQAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAFdG9rZW4AAAAAAAATAAAAAAAAAAJ0bwAAAAAAEwAAAAAAAAAGYW1vdW50AAAAAAALAAAAAAAAAAAAAACVVGhlIHR5cGUgb2YgZGF0YSByZXF1aXJlZCBmb3IgbWlncmF0aW9uLgpVcGdyYWRlcyB0aGUgY29udHJhY3QgdG8gbmV3IFdBU00gYnl0ZWNvZGUuClNldHMgYSBtaWdyYXRpb24gZmxhZyB0aGF0IG11c3QgYmUgY2xlYXJlZCBieSBjYWxsaW5nIGBtaWdyYXRlYC4AAAAAAAAHdXBncmFkZQAAAAABAAAAAAAAAA1uZXdfd2FzbV9oYXNoAAAAAAAD7gAAACAAAAAAAAAAAAAAAHZSdW5zIG1pZ3JhdGlvbiBsb2dpYyBhZnRlciBhbiB1cGdyYWRlLgpDYW4gb25seSBiZSBjYWxsZWQgd2hlbiB0aGUgbWlncmF0aW9uIGZsYWcgaXMgc2V0IGJ5IGEgcHJldmlvdXMgYHVwZ3JhZGVgIGNhbGwuAAAAAAAHbWlncmF0ZQAAAAABAAAAAAAAAA5taWdyYXRpb25fZGF0YQAAAAAADgAAAAAAAAAAAAAAXlBlcm1hbmVudGx5IGZyZWV6ZXMgdGhlIGNvbnRyYWN0LCBwcmV2ZW50aW5nIGFueSBmdXR1cmUgdXBncmFkZXMuClRoaXMgYWN0aW9uIGlzIGlycmV2ZXJzaWJsZS4AAAAAAAZmcmVlemUAAAAAAAAAAAAAAAAAAAAAADtSZXR1cm5zIHdoZXRoZXIgdGhlIGNvbnRyYWN0IGlzIGZyb3plbiAodXBncmFkZXMgZGlzYWJsZWQpLgAAAAAJaXNfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAKYXV0aG9yaXplcgAAAAAAAAAAAAEAAAATAAAAAAAAAD5SZXR1cm5zIHRoZSBjdXJyZW50IG93bmVyIGFkZHJlc3MsIG9yIE5vbmUgaWYgbm8gb3duZXIgaXMgc2V0LgAAAAAABW93bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAABZUmV0dXJucyB0aGUgcGVuZGluZyBvd25lciBhZGRyZXNzIGZvciAyLXN0ZXAgdHJhbnNmZXIsIG9yIE5vbmUgaWYgbm8gdHJhbnNmZXIgaXMgcGVuZGluZy4AAAAAAAANcGVuZGluZ19vd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAABK1RyYW5zZmVycyBvd25lcnNoaXAgaW1tZWRpYXRlbHkgdG8gYSBuZXcgYWRkcmVzcy4KClVzZSB3aXRoIGNhdXRpb24gLSBpZiB5b3UgdHJhbnNmZXIgdG8gYSB3cm9uZyBhZGRyZXNzLCBvd25lcnNoaXAgaXMgbG9zdCBmb3JldmVyLgpDb25zaWRlciB1c2luZyBgcHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXJgIGluc3RlYWQuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzAAAAABJ0cmFuc2Zlcl9vd25lcnNoaXAAAAAAAAEAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAlxQcm9wb3NlcyBhbiBvd25lcnNoaXAgdHJhbnNmZXIgdG8gYSBuZXcgYWRkcmVzcy4KClRoZSBuZXcgb3duZXIgbXVzdCBjYWxsIGBhY2NlcHRfb3duZXJzaGlwKClgIHdpdGhpbiBgdHRsYCBsZWRnZXJzCnRvIGNvbXBsZXRlIHRoZSB0cmFuc2Zlci4gVGhlIHBlbmRpbmcgdHJhbnNmZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGV4cGlyZSBhZnRlci4KCiMgQXJndW1lbnRzCi0gYG5ld19vd25lcmAgLSBUaGUgcHJvcG9zZWQgbmV3IG93bmVyCi0gYHR0bGAgLSBOdW1iZXIgb2YgbGVkZ2VycyB0aGUgbmV3IG93bmVyIGhhcyB0byBhY2NlcHQuClVzZSBgMGAgdG8gY2FuY2VsIGEgcGVuZGluZyB0cmFuc2ZlciAobmV3X293bmVyIG11c3QgbWF0Y2ggcGVuZGluZykuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgd2hlbiBjYW5jZWxsaW5nIGFuZCBubyBwZW5kaW5nIHRyYW5zZmVyIGV4aXN0cwotIGBJbnZhbGlkVHRsYCBpZiB0dGwgZXhjZWVkcyBtYXggVFRMCi0gYEludmFsaWRQZW5kaW5nT3duZXJgIHdoZW4gY2FuY2VsbGluZyB3aXRoIHdyb25nIG5ld19vd25lciBhZGRyZXNzAAAAGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAAAAAAACAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAN0dGwAAAAABAAAAAAAAAAAAAAAuUFjY2VwdHMgYSBwZW5kaW5nIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIuCgpNdXN0IGJlIGNhbGxlZCBieSB0aGUgcGVuZGluZyBvd25lciBiZWZvcmUgdGhlIFRUTCBleHBpcmVzLgoKIyBQYW5pY3MKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIGlmIHRoZXJlIGlzIG5vIHBlbmRpbmcgdHJhbnNmZXIgKG9yIGl0IGV4cGlyZWQpAAAAAAAAEGFjY2VwdF9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAACkUGVybWFuZW50bHkgcmVub3VuY2VzIG93bmVyc2hpcC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MgKGNhbmNlbCBpdCBmaXJzdCkAAAAScmVub3VuY2Vfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAAAAClRXh0ZW5kcyB0aGUgaW5zdGFuY2UgVFRMLgoKIyBBcmd1bWVudHMKCiogYHRocmVzaG9sZGAgLSBUaGUgdGhyZXNob2xkIHRvIGV4dGVuZCB0aGUgVFRMIChpZiBjdXJyZW50IFRUTCBpcyBiZWxvdyB0aGlzLCBleHRlbmQpLgoqIGBleHRlbmRfdG9gIC0gVGhlIFRUTCB0byBleHRlbmQgdG8uAAAAAAAAE2V4dGVuZF9pbnN0YW5jZV90dGwAAAAAAgAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAJZXh0ZW5kX3RvAAAAAAAABAAAAAAAAAAAAAABj1NldHMgVFRMIGNvbmZpZ3MgZm9yIGluc3RhbmNlIGFuZCBwZXJzaXN0ZW50IHN0b3JhZ2UuCgotIGBOb25lYCB2YWx1ZXMgcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGNvbmZpZyAoZGlzYWJsZXMgYXV0by1leHRlbnNpb24gZm9yIHRoYXQgdHlwZSkKLSBWYWxpZGF0ZXMgdGhhdCBgdGhyZXNob2xkIDw9IGV4dGVuZF90byA8PSBNQVhfVFRMYAoKIyBBcmd1bWVudHMKLSBgaW5zdGFuY2VgIC0gVFRMIGNvbmZpZyBmb3IgaW5zdGFuY2Ugc3RvcmFnZQotIGBwZXJzaXN0ZW50YCAtIFRUTCBjb25maWcgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZQoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnRnJvemVuYCBpZiBjb25maWdzIGFyZSBmcm96ZW4KLSBgSW52YWxpZFR0bENvbmZpZ2AgaWYgdmFsaWRhdGlvbiBmYWlscwAAAAAPc2V0X3R0bF9jb25maWdzAAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAADhUGVybWFuZW50bHkgZnJlZXplcyBUVEwgY29uZmlncywgcHJldmVudGluZyBhbnkgZnV0dXJlIG1vZGlmaWNhdGlvbnMuCgpUaGlzIGlzIGlycmV2ZXJzaWJsZSBhbmQgcHJvdmlkZXMgaW1tdXRhYmlsaXR5IGd1YXJhbnRlZXMgdG8gdXNlcnMuCkVtaXRzIGBUdGxDb25maWdzRnJvemVuYCBldmVudC4KCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0FscmVhZHlGcm96ZW5gIGlmIGFscmVhZHkgZnJvemVuAAAAAAAAEmZyZWV6ZV90dGxfY29uZmlncwAAAAAAAAAAAAAAAAAAAAAAJ1JldHVybnMgd2hldGhlciBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAgAAAAAAAAAAAAAAD0V4ZWN1dG9yU3RvcmFnZQAAAAACAAAAAQAAAAAAAAAJRHN0Q29uZmlnAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAhFbmRwb2ludAAAAAUAAAAAAAAAAAAAAApQYWNrZXRTZW50AAAAAAABAAAAC3BhY2tldF9zZW50AAAAAAMAAAAA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AAAAEwAAAAAAAAATUGF5bG9hZEhhc2hOb3RGb3VuZAAAAAAUAAAAAAAAAAlTYW1lVmFsdWUAAAAAAAAVAAAAAAAAAAxVbmF1dGhvcml6ZWQAAAAWAAAAAAAAAA5VbnN1cHBvcnRlZEVpZAAAAAAAFwAAAAAAAAAKWmVyb1pyb0ZlZQAAAAAAGAAAAAAAAAAOWnJvVW5hdmFpbGFibGUAAAAAABkAAAABAAAALVBhcmFtZXRlcnMgZm9yIHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAAAAPTWVzc2FnaW5nUGFyYW1zAAAAAAUAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAHFRoZSBtZXNzYWdlIHBheWxvYWQgdG8gc2VuZC4AAAAHbWVzc2FnZQAAAAAOAAAAIUVuY29kZWQgZXhlY3V0b3IgYW5kIERWTiBvcHRpb25zLgAAAAAAAAdvcHRpb25zAAAAAA4AAAA5V2hldGhlciB0byBwYXkgZmVlcyBpbiBaUk8gdG9rZW4gaW5zdGVhZCBvZiBuYXRpdmUgdG9rZW4uAAAAAAAACnBheV9pbl96cm8AAAAAAAEAAAA1UmVjZWl2ZXIgYWRkcmVzcyBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAAEAAABNU291cmNlIG1lc3NhZ2UgaW5mb3JtYXRpb24gaWRlbnRpZnlpbmcgd2hlcmUgYSBjcm9zcy1jaGFpbiBtZXNzYWdlIGNhbWUgZnJvbS4AAAAAAAAAAAAABk9yaWdpbgAAAAAAAwAAABdOb25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAAFbm9uY2UAAAAAAAAGAAAALlNlbmRlciBhZGRyZXNzIG9uIHRoZSBzb3VyY2UgY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAZzZW5kZXIAAAAAA+4AAAAgAAAAJlNvdXJjZSBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAAChGZWUgc3RydWN0dXJlIGZvciBjcm9zcy1jaGFpbiBtZXNzYWdpbmcuAAAAAAAAAAxNZXNzYWdpbmdGZWUAAAACAAAAH0ZlZSBwYWlkIGluIG5hdGl2ZSB0b2tlbiAoWExNKS4AAAAACm5hdGl2ZV9mZWUAAAAAAAsAAAAoRmVlIHBhaWQgaW4gWlJPIHRva2VuIChMYXllclplcm8gdG9rZW4pLgAAAAd6cm9fZmVlAAAAAAsAAAABAAAAQlJlY2VpcHQgcmV0dXJuZWQgYWZ0ZXIgc3VjY2Vzc2Z1bGx5IHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAABBNZXNzYWdpbmdSZWNlaXB0AAAAAwAAAClUaGUgZmVlcyBjaGFyZ2VkIGZvciBzZW5kaW5nIHRoZSBtZXNzYWdlLgAAAAAAAANmZWUAAAAH0AAAAAxNZXNzYWdpbmdGZWUAAAArR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBtZXNzYWdlLgAAAAAEZ3VpZAAAA+4AAAAgAAAAJFRoZSBvdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAACAAAAOFR5cGUgb2YgbWVzc2FnZSBsaWJyYXJ5IGluZGljYXRpbmcgc3VwcG9ydGVkIG9wZXJhdGlvbnMuAAAAAAAAAA5NZXNzYWdlTGliVHlwZQAAAAAAAwAAAAAAAAAfU3VwcG9ydHMgb25seSBzZW5kaW5nIG1lc3NhZ2VzLgAAAAAEU2VuZAAAAAAAAAAhU3VwcG9ydHMgb25seSByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAAB1JlY2VpdmUAAAAAAAAAAC1TdXBwb3J0cyBib3RoIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAOU2VuZEFuZFJlY2VpdmUAAAAAAAEAAAC3VmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgYSBtZXNzYWdlIGxpYnJhcnkuCgpOb3RlOiBgbWlub3JgIGFuZCBgZW5kcG9pbnRfdmVyc2lvbmAgdXNlIGB1MzJgIGluc3RlYWQgb2YgYHU4YCBiZWNhdXNlIFN0ZWxsYXIgZG9lcyBub3QKc3VwcG9ydCBgdThgIHR5cGVzIGluIGNvbnRyYWN0IGludGVyZmFjZSBmdW5jdGlvbnMuAAAAAAAAAAARTWVzc2FnZUxpYlZlcnNpb24AAAAAAAADAAAAM0VuZHBvaW50IHZlcnNpb24gKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAQZW5kcG9pbnRfdmVyc2lvbgAAAAQAAAAVTWFqb3IgdmVyc2lvbiBudW1iZXIuAAAAAAAABW1ham9yAAAAAAAABgAAADdNaW5vciB2ZXJzaW9uIG51bWJlciAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAAAVtaW5vcgAAAAAAAAQAAAABAAAANlRpbWVvdXQgY29uZmlndXJhdGlvbiBmb3IgcmVjZWl2ZSBsaWJyYXJ5IHRyYW5zaXRpb25zLgAAAAAAAAAAAAdUaW1lb3V0AAAAAAIAAAAoVW5peCB0aW1lc3RhbXAgd2hlbiB0aGUgdGltZW91dCBleHBpcmVzLgAAAAZleHBpcnkAAAAAAAYAAAApVGhlIG5ldyBsaWJyYXJ5IGFkZHJlc3MgdG8gdHJhbnNpdGlvbiB0by4AAAAAAAADbGliAAAAABMAAAABAAAANVBhcmFtZXRlcnMgZm9yIHNldHRpbmcgbWVzc2FnZSBsaWJyYXJ5IGNvbmZpZ3VyYXRpb24uAAAAAAAAAAAAAA5TZXRDb25maWdQYXJhbQAAAAAAAwAAAB9YRFItZW5jb2RlZCBjb25maWd1cmF0aW9uIGRhdGEuAAAAAAZjb25maWcAAAAAAA4AAAAwVGhlIHR5cGUgb2YgY29uZmlndXJhdGlvbiAoZS5nLiwgZXhlY3V0b3IsIFVMTikuAAAAC2NvbmZpZ190eXBlAAAAAAQAAAAnVGhlIGVuZHBvaW50IElEIHRoaXMgY29uZmlnIGFwcGxpZXMgdG8uAAAAAANlaWQAAAAABAAAAAEAAAAxUmVzb2x2ZWQgbGlicmFyeSBpbmZvcm1hdGlvbiB3aXRoIGRlZmF1bHQgc3RhdHVzLgAAAAAAAAAAAAAPUmVzb2x2ZWRMaWJyYXJ5AAAAAAIAAABEV2hldGhlciB0aGlzIGlzIHRoZSBkZWZhdWx0IGxpYnJhcnkgKHRydWUpIG9yIE9BcHAtc3BlY2lmaWMgKGZhbHNlKS4AAAAKaXNfZGVmYXVsdAAAAAAAAQAAAB1UaGUgcmVzb2x2ZWQgbGlicmFyeSBhZGRyZXNzLgAAAAAAAANsaWIAAAAAEwAAAAEAAABIT3V0Ym91bmQgcGFja2V0IGNvbnRhaW5pbmcgYWxsIGluZm9ybWF0aW9uIGZvciBjcm9zcy1jaGFpbiB0cmFuc21pc3Npb24uAAAAAAAAAA5PdXRib3VuZFBhY2tldAAAAAAABwAAABhEZXN0aW5hdGlvbiBlbmRwb2ludCBJRC4AAAAHZHN0X2VpZAAAAAAEAAAALEdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIG1lc3NhZ2UuAAAABGd1aWQAAAPuAAAAIAAAABRUaGUgbWVzc2FnZSBwYXlsb2FkLgAAAAdtZXNzYWdlAAAAAA4AAAAgT3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAMVJlY2VpdmVyIGFkZHJlc3Mgb24gZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAB9TZW5kZXIgYWRkcmVzcyBvbiBzb3VyY2UgY2hhaW4uAAAAAAZzZW5kZXIAAAAAABMAAAATU291cmNlIGVuZHBvaW50IElELgAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAACtBIGZlZSByZWNpcGllbnQgd2l0aCB0aGUgYW1vdW50IHRvIGJlIHBhaWQuAAAAAAAAAAAMRmVlUmVjaXBpZW50AAAAAgAAABVBbW91bnQgb2YgZmVlIHRvIHBheS4AAAAAAAAGYW1vdW50AAAAAAALAAAAH1RoZSBhZGRyZXNzIHRvIHNlbmQgdGhlIGZlZSB0by4AAAAAAnRvAAAAAAATAAAAAQAAADxSZXN1bHQgb2Ygc2VuZCBvcGVyYXRpb24gY29udGFpbmluZyBmZWVzIGFuZCBlbmNvZGVkIHBhY2tldC4AAAAAAAAADUZlZXNBbmRQYWNrZXQAAAAAAAADAAAAKlRoZSBlbmNvZGVkIHBhY2tldCByZWFkeSBmb3IgdHJhbnNtaXNzaW9uLgAAAAAADmVuY29kZWRfcGFja2V0AAAAAAAOAAAAP0xpc3Qgb2YgbmF0aXZlIHRva2VuIGZlZSByZWNpcGllbnRzIChleGVjdXRvciwgRFZOcywgdHJlYXN1cnkpLgAAAAAVbmF0aXZlX2ZlZV9yZWNpcGllbnRzAAAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAALExpc3Qgb2YgWlJPIHRva2VuIGZlZSByZWNpcGllbnRzICh0cmVhc3VyeSkuAAAAEnpyb19mZWVfcmVjaXBpZW50cwAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAAAQAAAOFQYXJhbWV0ZXJzIGZvciBEVk4gZmVlIGNhbGN1bGF0aW9uLgoKQ29udGFpbnMgYWxsIGlucHV0cyBuZWVkZWQgYnkgdGhlIGZlZSBsaWJyYXJ5IHRvIGNhbGN1bGF0ZSB2ZXJpZmljYXRpb24gZmVlcwpmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnZXMuIEluY2x1ZGVzIG1lc3NhZ2UgcGFyYW1ldGVycywgY29tbW9uIGNvbmZpZ3VyYXRpb24sCmFuZCBkZXN0aW5hdGlvbi1zcGVjaWZpYyBzZXR0aW5ncy4AAAAAAAAAAAAADER2bkZlZVBhcmFtcwAAAAoAAAAnTnVtYmVyIG9mIGJsb2NrIGNvbmZpcm1hdGlvbnMgcmVxdWlyZWQuAAAAAA1jb25maXJtYXRpb25zAAAAAAAABgAAAExEZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAodXNlZCBpZiBubyBkc3Qtc3BlY2lmaWMgbXVsdGlwbGllcikuAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAQAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAI01pbmltdW0gZmVlIG1hcmdpbiBpbiBVU0QgKHNjYWxlZCkuAAAAABBmbG9vcl9tYXJnaW5fdXNkAAAACgAAARA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpEZXN0aW5hdGlvbi1TcGVjaWZpYyBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkdhcyBlc3RpbWF0ZSBmb3IgdmVyaWZpY2F0aW9uIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAANnYXMAAAAACgAAAEZEZXN0aW5hdGlvbi1zcGVjaWZpYyBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKDAgPSB1c2UgZGVmYXVsdCkuAAAAAAAObXVsdGlwbGllcl9icHMAAAAAAAQAAAALRFZOIG9wdGlvbnMAAAAAB29wdGlvbnMAAAAADgAAARA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDb21tb24gQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpQcmljZSBmZWVkIGNvbnRyYWN0IGFkZHJlc3MgZm9yIGdhcyBwcmljZSBhbmQgZXhjaGFuZ2UgcmF0ZSBkYXRhLgAAAApwcmljZV9mZWVkAAAAAAATAAAAJ051bWJlciBvZiByZXF1aXJlZCBzaWduYXR1cmVzIChxdW9ydW0pLgAAAAAGcXVvcnVtAAAAAAAEAAAA5T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ck1lc3NhZ2UgUGFyYW1ldGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgT0FwcCBzZW5kZXIgYWRkcmVzcy4AAAAAAAAGc2VuZGVyAAAAAAATAAAAAQAAAONQYXJhbWV0ZXJzIGZvciBleGVjdXRvciBmZWUgY2FsY3VsYXRpb24uCgpDb250YWlucyBhbGwgaW5wdXRzIG5lZWRlZCBieSB0aGUgZmVlIGxpYnJhcnkgdG8gY2FsY3VsYXRlIGV4ZWN1dGlvbiBmZWVzCmZvciBjcm9zcy1jaGFpbiBtZXNzYWdlcy4gSW5jbHVkZXMgbWVzc2FnZSBwYXJhbWV0ZXJzLCBjb21tb24gY29uZmlndXJhdGlvbiwKYW5kIGRlc3RpbmF0aW9uLXNwZWNpZmljIHNldHRpbmdzLgAAAAAAAAAACUZlZVBhcmFtcwAAAAAAAAsAAAAmU2l6ZSBvZiB0aGUgbWVzc2FnZSBjYWxsZGF0YSBpbiBieXRlcy4AAAAAAA1jYWxsZGF0YV9zaXplAAAAAAAABAAAAExEZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAodXNlZCBpZiBubyBkc3Qtc3BlY2lmaWMgbXVsdGlwbGllcikuAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAQAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAI01pbmltdW0gZmVlIG1hcmdpbiBpbiBVU0QgKHNjYWxlZCkuAAAAABBmbG9vcl9tYXJnaW5fdXNkAAAACgAAADZCYXNlIGdhcyBmb3IgZWFjaCBsekNvbXBvc2UgY2FsbCBvbiBkZXN0aW5hdGlvbiBjaGFpbi4AAAAAABNsel9jb21wb3NlX2Jhc2VfZ2FzAAAAAAYAAAETPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KRGVzdGluYXRpb24tU3BlY2lmaWMgQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpCYXNlIGdhcyBmb3IgbHpSZWNlaXZlIGV4ZWN1dGlvbiBvbiBkZXN0aW5hdGlvbiBjaGFpbi4AAAAAE2x6X3JlY2VpdmVfYmFzZV9nYXMAAAAABgAAAEZEZXN0aW5hdGlvbi1zcGVjaWZpYyBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKDAgPSB1c2UgZGVmYXVsdCkuAAAAAAAObXVsdGlwbGllcl9icHMAAAAAAAQAAAAsTWF4aW11bSBuYXRpdmUgdG9rZW4gdmFsdWUgdGhhdCBjYW4gYmUgc2VudC4AAAAKbmF0aXZlX2NhcAAAAAAACgAAAEZFbmNvZGVkIGV4ZWN1dG9yIG9wdGlvbnMgKGx6UmVjZWl2ZSBnYXMsIGx6Q29tcG9zZSwgbmF0aXZlRHJvcCwgZXRjLikuAAAAAAAHb3B0aW9ucwAAAAAOAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNvbW1vbiBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcyBmb3IgZ2FzIHByaWNlIGFuZCBleGNoYW5nZSByYXRlIGRhdGEuAAAACnByaWNlX2ZlZWQAAAAAABMAAADlPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KTWVzc2FnZSBQYXJhbWV0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBPQXBwIHNlbmRlciBhZGRyZXNzLgAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAAhEdhcyBwcmljZSBpbmZvcm1hdGlvbiBmb3IgYSBkZXN0aW5hdGlvbiBlbmRwb2ludC4KCkNvbnRhaW5zIHRoZSBleGNoYW5nZSByYXRlIGFuZCBnYXMgY29zdHMgbmVlZGVkIGZvciBjcm9zcy1jaGFpbiBmZWUgY2FsY3VsYXRpb25zLgAAAAAAAAAFUHJpY2UAAAAAAAADAAAAN0dhcyBjb3N0IHBlciBieXRlIG9mIGNhbGxkYXRhIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi4AAAAADGdhc19wZXJfYnl0ZQAAAAQAAABCR2FzIHByaWNlIGluIHRoZSBzbWFsbGVzdCB1bml0ICh3ZWkgZm9yIEVWTSwgc3Ryb29wcyBmb3IgU3RlbGxhcikuAAAAAAARZ2FzX3ByaWNlX2luX3VuaXQAAAAAAAAGAAAAqVByaWNlIHJhdGlvID0gKHJlbW90ZSBuYXRpdmUgdG9rZW4gcHJpY2UgLyBsb2NhbCBuYXRpdmUgdG9rZW4gcHJpY2UpICogUFJJQ0VfUkFUSU9fREVOT01JTkFUT1IuClVzZWQgdG8gY29udmVydCBkZXN0aW5hdGlvbiBjaGFpbiBnYXMgY29zdHMgdG8gc291cmNlIGNoYWluIG5hdGl2ZSB0b2tlbi4AAAAAAAALcHJpY2VfcmF0aW8AAAAACgAAAAEAAACARmVlIGVzdGltYXRpb24gcmVzdWx0IHdpdGggZGV0YWlsZWQgYnJlYWtkb3duLgoKQ29udGFpbnMgdGhlIGNhbGN1bGF0ZWQgZmVlIGFuZCBhbGwgaW50ZXJtZWRpYXRlIHZhbHVlcyB1c2VkIGluIHRoZSBjYWxjdWxhdGlvbi4AAAAAAAAAC0ZlZUVzdGltYXRlAAAAAAQAAAAwU291cmNlIGNoYWluIG5hdGl2ZSB0b2tlbiBwcmljZSBpbiBVU0QgKHNjYWxlZCkuAAAAEG5hdGl2ZV9wcmljZV91c2QAAAAKAAAAJVByaWNlIHJhdGlvIHVzZWQgZm9yIHRoZSBjYWxjdWxhdGlvbi4AAAAAAAALcHJpY2VfcmF0aW8AAAAACgAAADJEZW5vbWluYXRvciBmb3IgdGhlIHByaWNlIHJhdGlvICh0eXBpY2FsbHkgMTBeMjApLgAAAAAAF3ByaWNlX3JhdGlvX2Rlbm9taW5hdG9yAAAAAAoAAAAxVG90YWwgZ2FzIGZlZSBpbiBzb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuIHVuaXRzLgAAAAAAAA10b3RhbF9nYXNfZmVlAAAAAAAACwAAAAQAAAAdUGFja2V0Q29kZWNWMUVycm9yOiAxMTAwLTExMDkAAAAAAAAAAAAAElBhY2tldENvZGVjVjFFcnJvcgAAAAAAAgAAAAAAAAATSW52YWxpZFBhY2tldEhlYWRlcgAAAARMAAAAAAAAABRJbnZhbGlkUGFja2V0VmVyc2lvbgAABE0AAAAEAAAAHVdvcmtlck9wdGlvbnNFcnJvcjogMTExMC0xMTE5AAAAAAAAAAAAABJXb3JrZXJPcHRpb25zRXJyb3IAAAAAAAkAAAAAAAAAEkludmFsaWRCeXRlc0xlbmd0aAAAAAAEVgAAAAAAAAAZSW52YWxpZExlZ2FjeU9wdGlvbnNUeXBlMQAAAAAABFcAAAAAAAAAGUludmFsaWRMZWdhY3lPcHRpb25zVHlwZTIAAAAAAARYAAAAAAAAABFJbnZhbGlkT3B0aW9uVHlwZQAAAAAABFkAAAAAAAAADkludmFsaWRPcHRpb25zAAAAAARaAAAAAAAAAA9JbnZhbGlkV29ya2VySWQAAAAEWwAAAAAAAAAdTGVnYWN5T3B0aW9uc1R5cGUxR2FzT3ZlcmZsb3cAAAAAAARcAAAAAAAAACBMZWdhY3lPcHRpb25zVHlwZTJBbW91bnRPdmVyZmxvdwAABF0AAAAAAAAAHUxlZ2FjeU9wdGlvbnNUeXBlMkdhc092ZXJmbG93AAAAAAAEXgAAAAQAAAAcQnVmZmVyUmVhZGVyRXJyb3I6IDEwMDAtMTAwOQAAAAAAAAARQnVmZmVyUmVhZGVyRXJyb3IAAAAAAAACAAAAAAAAAA1JbnZhbGlkTGVuZ3RoAAAAAAAD6AAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD6QAAAAQAAAAcQnVmZmVyV3JpdGVyRXJyb3I6IDEwMTAtMTAxOQAAAAAAAAARQnVmZmVyV3JpdGVyRXJyb3IAAAAAAAABAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPyAAAABAAAAB9UdGxDb25maWd1cmFibGVFcnJvcjogMTAyMC0xMDI5AAAAAAAAAAAUVHRsQ29uZmlndXJhYmxlRXJyb3IAAAADAAAAAAAAABBJbnZhbGlkVHRsQ29uZmlnAAAD/AAAAAAAAAAPVHRsQ29uZmlnRnJvemVuAAAAA/0AAAAAAAAAFlR0bENvbmZpZ0FscmVhZHlGcm96ZW4AAAAAA/4AAAAEAAAAF093bmFibGVFcnJvcjogMTAzMC0xMDM5AAAAAAAAAAAMT3duYWJsZUVycm9yAAAABgAAAAAAAAATSW52YWxpZFBlbmRpbmdPd25lcgAAAAQGAAAAAAAAAApJbnZhbGlkVHRsAAAAAAQHAAAAAAAAABFOb1BlbmRpbmdUcmFuc2ZlcgAAAAAABAgAAAAAAAAAD093bmVyQWxyZWFkeVNldAAAAAQJAAAAAAAAAAtPd25lck5vdFNldAAAAAQKAAAAAAAAABJUcmFuc2ZlckluUHJvZ3Jlc3MAAAAABAsAAAAEAAAAGEJ5dGVzRXh0RXJyb3I6IDEwNDAtMTA0OQAAAAAAAAANQnl0ZXNFeHRFcnJvcgAAAAAAAAEAAAAAAAAADkxlbmd0aE1pc21hdGNoAAAAAAQQAAAABAAAABtVcGdyYWRlYWJsZUVycm9yOiAxMDUwLTEwNTkAAAAAAAAAABBVcGdyYWRlYWJsZUVycm9yAAAAAwAAAAAAAAAUSW52YWxpZE1pZ3JhdGlvbkRhdGEAAAQaAAAAAAAAABNNaWdyYXRpb25Ob3RBbGxvd2VkAAAABBsAAAAAAAAADlVwZ3JhZGVzRnJvemVuAAAAAAQcAAAABAAAABhNdWx0aXNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpc2lnRXJyb3IAAAAAAAAIAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAADUludmFsaWRTaWduZXIAAAAAAAQlAAAAAAAAAA5TaWduYXR1cmVFcnJvcgAAAAAEJgAAAAAAAAATU2lnbmVyQWxyZWFkeUV4aXN0cwAAAAQnAAAAAAAAAA5TaWduZXJOb3RGb3VuZAAAAAAEKAAAAAAAAAAdVG90YWxTaWduZXJzTGVzc1RoYW5UaHJlc2hvbGQAAAAAAAQpAAAAAAAAAA9VbnNvcnRlZFNpZ25lcnMAAAAEKgAAAAAAAAANWmVyb1RocmVzaG9sZAAAAAAABCsAAAAFAAAAMEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHNpZ25lciBpcyBhZGRlZCBvciByZW1vdmVkLgAAAAAAAAAJU2lnbmVyU2V0AAAAAAAAAQAAAApzaWduZXJfc2V0AAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAQAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAANkV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2lnbmF0dXJlIHRocmVzaG9sZCBpcyBjaGFuZ2VkLgAAAAAAAAAAAAxUaHJlc2hvbGRTZXQAAAABAAAADXRocmVzaG9sZF9zZXQAAAAAAAABAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAPTXVsdGlzaWdTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAdTaWduZXJzAAAAAAAAAAAAAAAACVRocmVzaG9sZAAAAAAAAAUAAABXRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyB0cmFuc2ZlcnJlZCAoYm90aCBzaW5nbGUtc3RlcCBhbmQgdHdvLXN0ZXAgY29tcGxldGlvbikuAAAAAAAAAAAUT3duZXJzaGlwVHJhbnNmZXJyZWQAAAABAAAAFW93bmVyc2hpcF90cmFuc2ZlcnJlZAAAAAAAAAIAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAIAAAAFAAAAO0V2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgcHJvcG9zZWQuAAAAAAAAAAAVT3duZXJzaGlwVHJhbnNmZXJyaW5nAAAAAAAAAQAAABZvd25lcnNoaXBfdHJhbnNmZXJyaW5nAAAAAAADAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgcmVub3VuY2VkLgAAAAAAAAAAABJPd25lcnNoaXBSZW5vdW5jZWQAAAAAAAEAAAATb3duZXJzaGlwX3Jlbm91bmNlZAAAAAAB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AAAABG9hcHAAAAATAAAAAAAAAAAAAAAGZGVuaWVkAAAAAAABAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAGUGF1c2VkAAAAAAABAAAABnBhdXNlZAAAAAAAAQAAAAAAAAAGcGF1c2VyAAAAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAIVW5wYXVzZWQAAAABAAAACHVucGF1c2VkAAAAAQAAAAAAAAAIdW5wYXVzZXIAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAXU2V0RGVmYXVsdE11bHRpcGxpZXJCcHMAAAAAAQAAABpzZXRfZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAAAQAAAAAAAAAObXVsdGlwbGllcl9icHMAAAAAAAQAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABFTZXREZXBvc2l0QWRkcmVzcwAAAAAAAAEAAAATc2V0X2RlcG9zaXRfYWRkcmVzcwAAAAABAAAAAAAAAA9kZXBvc2l0X2FkZHJlc3MAAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAADFNldFByaWNlRmVlZAAAAAEAAAAOc2V0X3ByaWNlX2ZlZWQAAAAAAAEAAAAAAAAACnByaWNlX2ZlZWQAAAAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABdTZXRTdXBwb3J0ZWRPcHRpb25UeXBlcwAAAAABAAAAGnNldF9zdXBwb3J0ZWRfb3B0aW9uX3R5cGVzAAAAAAACAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAAAAAAAAAAAAAxvcHRpb25fdHlwZXMAAAAOAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAPU2V0V29ya2VyRmVlTGliAAAAAAEAAAASc2V0X3dvcmtlcl9mZWVfbGliAAAAAAABAAAAAAAAAAdmZWVfbGliAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA1Xb3JrZXJTdG9yYWdlAAAAAAAACwAAAAAAAAAAAAAABlBhdXNlZAAAAAAAAAAAAAAAAAAGQWRtaW5zAAAAAAAAAAAAAAAAAAtNZXNzYWdlTGlicwAAAAABAAAAAAAAAAlBbGxvd2xpc3QAAAAAAAABAAAAEwAAAAAAAAAAAAAADUFsbG93bGlzdFNpemUAAAAAAAABAAAAAAAAAAhEZW55bGlzdAAAAAEAAAATAAAAAAAAAAAAAAAURGVmYXVsdE11bHRpcGxpZXJCcHMAAAAAAAAAAAAAAA5EZXBvc2l0QWRkcmVzcwAAAAAAAQAAAAAAAAAUU3VwcG9ydGVkT3B0aW9uVHlwZXMAAAABAAAABAAAAAAAAAAAAAAADFdvcmtlckZlZUxpYgAAAAAAAAAAAAAACVByaWNlRmVlZAAAAACLAQ5jb250cmFjdG1ldGF2MAAAAAAAAAAGYmludmVyAAAAAAAFMC4wLjEAAAAAAAAAAAAABXJzdmVyAAAAAAAABjEuOTAuMAAAAAAAAAAAAAhyc3Nka3ZlcgAAAC8yNS4wLjEjOTQxNDQ4MDc5ZWNjZjk1NjI3ZDJmZmVhMTNiYTI2OGUzMDVhOTA3NwAAHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAZAAAAAABTDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAZjbGl2ZXIAAAAAAC8yNS4wLjAjYTY0OTI1ZTkzOTFjM2QzYjNlZjhlNTNkYzYwYzIzZGI5ZTZhODJlNAA=";
11
+ export declare const WASM_BASE64 = "AGFzbQEAAAABsAEdYAJ+fgF+YAR+fn5+AX5gAX4BfmAAAX5gA35+fgF+YAJ+fgF/YAN/fn4AYAAAYAABf2ABfwF/YAF/AX5gAX8AYAJ/fwF+YAJ+fwBgAX4AYAN/f38AYAJ/fgBgBH9/f38BfmABfgF/YAJ/fwBgBX5/f39/AGACf38Bf2ADf39+AGAFfn5+fn4BfmAFf35/f34AYAh+fn5+fn5+fgF+YAJ+fgBgA35/fwF+YAN/f38BfwL9ASoBbAExAAABbAE3AAEBYQEwAAIBdgFkAAABdgEzAAIBdgEyAAABdgE2AAABeAExAAABdgFfAAMBdgExAAABYgE4AAIBYgEzAAABYgFlAAABYgEwAAIBYwEwAAQBdgE4AAIBdgE5AAIBbAEyAAABbAFfAAQBeAE3AAMBZAFfAAQBZAEwAAQBbAE2AAIBaQEwAAIBaQEzAAABaQE1AAIBaQE0AAIBbQFhAAEBdgFnAAABYgFtAAQBaQE4AAIBaQE3AAIBaQE2AAABaQFfAAIBYgFqAAABbQE5AAQBeAEwAAABeAEzAAMBeAE4AAMBbAEwAAABbAE4AAABeAE1AAIDqgGoAQUFBQUGBwgHCQgKBQsLDAMDAwsNDgcLCgsPEAYNAxAQCwIRDhINAwwLExMIExIJCwsSCBIIChINExAUEBATBhAGEAQQEwIVEBAQAwIHAhYAAAALCwAACwAOBAAOAA4OAwIDAgMCAwICAwMAAgMDFxgGFwATDAACFwMZExMOAQILAgMTAwMDAwIaAAcIBgMDABMAEAoDCxMDAwcQCRsPEBAPChMPEBMcHAQFAXABAQEFAwEAEQYhBH8BQYCAwAALfwBBqIXAAAt/AEHIjcAAC38AQdCNwAALB5EHNQZtZW1vcnkCAAxfX2NoZWNrX2F1dGgAbApzZXRfcGF1c2VkAHcJc2V0X2FkbWluAHkZc2V0X3N1cHBvcnRlZF9tZXNzYWdlX2xpYgB6DXNldF9hbGxvd2xpc3QAewxzZXRfZGVueWxpc3QAfhpzZXRfZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwB/E3NldF9kZXBvc2l0X2FkZHJlc3MAgQEac2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXMAgwESc2V0X3dvcmtlcl9mZWVfbGliAIQBDnNldF9wcmljZV9mZWVkAIYBBnBhdXNlZACJAQhpc19hZG1pbgCKAQZhZG1pbnMAiwEYaXNfc3VwcG9ydGVkX21lc3NhZ2VfbGliAIwBDG1lc3NhZ2VfbGlicwCNAQ9pc19vbl9hbGxvd2xpc3QAjgEOYWxsb3dsaXN0X3NpemUAjwEOaXNfb25fZGVueWxpc3QAkAEHaGFzX2FjbACRARZkZWZhdWx0X211bHRpcGxpZXJfYnBzAJIBD2RlcG9zaXRfYWRkcmVzcwCTARpnZXRfc3VwcG9ydGVkX29wdGlvbl90eXBlcwCVAQ53b3JrZXJfZmVlX2xpYgCWAQpwcmljZV9mZWVkAJcBCmFzc2lnbl9qb2IAmAEHZ2V0X2ZlZQCbAQ5zZXRfZHN0X2NvbmZpZwCfAQpkc3RfY29uZmlnAKABC25hdGl2ZV9kcm9wAKEBCGVuZHBvaW50AKIBDV9fY29uc3RydWN0b3IAowEOd2l0aGRyYXdfdG9rZW4ApwEHdXBncmFkZQCoAQdtaWdyYXRlAKoBBmZyZWV6ZQCrAQlpc19mcm96ZW4ArQEKYXV0aG9yaXplcgCuAQVvd25lcgCvAQ1wZW5kaW5nX293bmVyALABEnRyYW5zZmVyX293bmVyc2hpcACxARpwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcgCzARBhY2NlcHRfb3duZXJzaGlwALcBEnJlbm91bmNlX293bmVyc2hpcAC4ARNleHRlbmRfaW5zdGFuY2VfdHRsALkBD3NldF90dGxfY29uZmlncwC7AQt0dGxfY29uZmlncwC+ARJmcmVlemVfdHRsX2NvbmZpZ3MAwQEVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAMIBAV8DAQpfX2RhdGFfZW5kAwILX19oZWFwX2Jhc2UDAwq1nQGoAQ8AIAAgARCrgICAAEEBcwuiAQEDfyOAgICAAEEQayICJICAgIAAAkACQAJAIABC/wGDQg5SDQAgAUL/AYNCDlENAQsgACABEKSAgIAAUCEDDAELIAIgAUIIiDcDCCACIABCCIg3AwACQANAIAIQxYGAgAAhAyACQQhqEMWBgIAAIQQgA0GAgMQARg0BIAMgBEYNAAtBACEDDAELIARBgIDEAEYhAwsgAkEQaiSAgICAACADCw8AIAAgARCtgICAAEEBcwsNACAAIAEQpICAgABQCzcBAX5CACEDAkACQCABQgJRDQAgAadBAXENASAAIAI3AwhCASEDCyAAIAM3AwAPCxCvgICAAAALCQAQw4GAgAAACxQAELGAgIAAQQAQsoCAgABB/QFxC0gBAX8jgICAgABBEGsiACSAgICAACAAQQRqEL+BgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBC6gYCAAAsgAEEQaiSAgICAAAtHAgF/AX5BAiEBAkAgABDLgYCAACICQgIQtYCAgABFDQBBASEBAkACQCACQgIQgICAgACnQf8BcQ4CAQIACwALQQAhAQsgAQtNAgF/AX4QsYCAgABBACEAAkBBABC0gICAACIBQgIQtYCAgABFDQBBASEAAkACQCABQgIQgICAgACnQf8BcQ4CAQIACwALQQAhAAsgAAvCAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkAgAEH/AXEOAwABAgALIAFB/ojAgABBBhDDgICAACABKAIADQMgASABKQMIEMSAgIAADAILIAFBhInAgABBCBDDgICAACABKAIADQIgASABKQMIEMSAgIAADAELIAFBjInAgABBChDDgICAACABKAIADQEgASABKQMIEMSAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILDwAgACABEKeAgIAAQgFRC2sCAX8CfiOAgICAAEEQayIBJICAgIAAIAFBBGoQt4CAgAACQCABKAIEQQFHDQAgATUCDCECIAE1AgghA0EAIAAQuICAgABCASADQiCGQgSEIAJCIIZCBIQQgYCAgAAaCyABQRBqJICAgIAACwwAIABBAhDMgYCAAAubAQIBfwF+I4CAgIAAQRBrIgIkgICAgAACQAJAAkACQCAAQQFxRQ0AIAJBjYPAgABBCBDDgICAACACKAIADQIgAiACKQMIEMSAgIAADAELIAJBhIPAgABBCRDDgICAACACKAIADQEgAiACKQMIIAGtQiCGQgSEEMWAgIAACyACKQMIIQMgAikDAFANAQsACyACQRBqJICAgIAAIAMLFQEBfhC6gICAACIAEIKAgIAAGiAAC0cCAX8BfiOAgICAAEEQayIAJICAgIAAELGAgIAAIAAQvICAgAAgACkDCCEBIAApAwBBiwgQvYCAgAAgAEEQaiSAgICAACABC2wCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQvICAgAAgACkDCCEBIAApAwBBiwgQvYCAgAACQCABELqAgIAAEK2AgIAADQBCg4CAgOCAARC+gICAAAALIAEQgoCAgAAaIABBEGokgICAgAAgAQsQABCxgICAACAAEMKAgIAACykAAkAgAKdBAXFFDQAPCyABQfp3aq1CIIZCg4CAgOCAAXwQvoCAgAAACwsAIAAQqYCAgAAaC0IBAX8jgICAgABBEGsiACSAgICAACAAEMCAgIAAAkAgACkDAFANAEKDgICAwIEBEL6AgIAAAAsgAEEQaiSAgICAAAtTAQJ+ELGAgIAAQgAhAQJAAkBBARDBgICAACICQgAQtYCAgABFDQAgAkIAEICAgIAAIgFC/wGDQs0AUg0BIAAgATcDCEIBIQELIAAgATcDAA8LAAuSAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQCAAQQFxRQ0AIAFBkYjAgABBDBDDgICAACABKAIADQIgASABKQMIEMSAgIAADAELIAFBjIjAgABBBRDDgICAACABKAIADQEgASABKQMIEMSAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILTQECfkIAIQECQAJAQQAQwYCAgAAiAkICELWAgIAARQ0AIAJCAhCAgICAACIBQv8Bg0LNAFINASAAIAE3AwhCASEBCyAAIAE3AwAPCwALUQIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABIAIQx4GAgABCASEEAkAgAygCAA0AIAAgAykDCDcDCEIAIQQLIAAgBDcDACADQRBqJICAgIAAC0QBAX8jgICAgABBEGsiAiSAgICAACACIAE3AwggAkEIakEBEJ6BgIAAIQEgAEIANwMAIAAgATcDCCACQRBqJICAgIAAC0gBAX8jgICAgABBEGsiAySAgICAACADIAI3AwggAyABNwMAIANBAhCegYCAACECIABCADcDACAAIAI3AwggA0EQaiSAgICAAAurAgMBfwJ+AX8jgICAgABBIGsiAiSAgICAABDHgICAACIDIAAQg4CAgAAhBAJAAkACQAJAAkAgAQ0AIAJBCGogBBDIgICAACACKAIIIgVBAkYNASAFQQFxRQ0CIAIoAgwiBSADEISAgIAAQiCIp08NBCADIAWtQiCGQgSEEIWAgIAAIQMMBAsgBEICUQ0CQoOAgICAlgEQvoCAgAAACxCvgICAAAALQoOAgICQlgEQvoCAgAAACyADIAAQhoCAgAAhAwsgAkEBNgIQIAJBEGogAxDJgICAACACQRBqEMqAgIAAQo7mrrnqjOTVOBDLgICAACEDIAIgADcDGCACIAGtNwMQIANBrInAgABBAiACQRBqQQIQzICAgAAQh4CAgAAaIAJBIGokgICAgAALaAIBfwN+I4CAgIAAQSBrIgAkgICAgAAQsYCAgAAgAEEBNgIAIABBEGogABDUgICAAAJAIAApAxAiAVANACAAEMqAgIAACxCIgICAACECIAApAxghAyAAQSBqJICAgIAAIAMgAiABpxsLPQECfwJAAkAgAUICUg0AQQAhAgwBC0EBQQIgAUL/AYNCBFEbIQIgAUIgiKchAwsgACADNgIEIAAgAjYCAAsVACAAEN+AgIAAIAFCARCSgICAABoLaQIBfwJ+I4CAgIAAQRBrIgEkgICAgAAgAUEEahC3gICAAAJAIAEoAgRBAUcNACABNQIMIQIgATUCCCEDIAAQ34CAgABCASADQiCGQgSEIAJCIIZCBIQQgYCAgAAaCyABQRBqJICAgIAAC2MDAX8BfgF/I4CAgIAAQRBrIgEkgICAgAAgASAANwMAQgIhAkEBIQMCQANAIANFDQEgA0F/aiEDIAAhAgwACwsgASACNwMIIAFBCGpBARCegYCAACEAIAFBEGokgICAgAAgAAsuAAJAIAEgA0YNAAALIACtQiCGQgSEIAKtQiCGQgSEIAGtQiCGQgSEEKOAgIAACycAIAAQgoCAgAAaAkAgABDOgICAAA0AQoOAgIDAlwEQvoCAgAAACwsZABCxgICAABDHgICAACAAEIOAgIAAQgJSC68CAwF/An4BfyOAgICAAEEgayICJICAgIAAENCAgIAAIgMgABCDgICAACEEAkACQAJAAkACQCABDQAgAkEIaiAEEMiAgIAAIAIoAggiBUECRg0BIAVBAXFFDQIgAigCDCIFIAMQhICAgABCIIinTw0EIAMgBa1CIIZCBIQQhYCAgAAhAwwECyAEQgJRDQJCg4CAgNCWARC+gICAAAALEK+AgIAAAAtCg4CAgOCWARC+gICAAAALIAMgABCGgICAACEDCyACQQI2AhAgAkEQaiADEMmAgIAAIAJBEGoQyoCAgABBvInAgABBGRDRgICAABDLgICAACEDIAIgAa03AxggAiAANwMQIANB7InAgABBAiACQRBqQQIQzICAgAAQh4CAgAAaIAJBIGokgICAgAALaAIBfwN+I4CAgIAAQSBrIgAkgICAgAAQsYCAgAAgAEECNgIAIABBEGogABDUgICAAAJAIAApAxAiAVANACAAEMqAgIAACxCIgICAACECIAApAxghAyAAQSBqJICAgIAAIAMgAiABpxsLRQIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAiAAIAEQx4GAgAACQCACKAIAQQFHDQAACyACKQMIIQMgAkEQaiSAgICAACADCzcBAX8jgICAgABBEGsiASSAgICAABCxgICAACABQQo2AgAgACABENOAgIAAIAFBEGokgICAgAALTQECfkIAIQICQAJAIAEQ34CAgAAiA0ICELWAgIAARQ0AIANCAhCAgICAACICQv8Bg0LNAFINASAAIAI3AwhCASECCyAAIAI3AwAPCwALTQECfkIAIQICQAJAIAEQ34CAgAAiA0IBELWAgIAARQ0AIANCARCAgICAACICQv8Bg0LLAFINASAAIAI3AwhCASECCyAAIAI3AwAPCwALVQEDfyOAgICAAEEgayIAJICAgIAAELGAgIAAIABBBDYCECAAQQhqIABBEGoQ1oCAgAAgACgCCCEBIAAoAgwhAiAAQSBqJICAgIAAIAJBACABQQFxGwtaAgF+AX8CQAJAAkAgARDfgICAACICQgIQtYCAgAANAEEAIQEMAQsgAkICEICAgIAAIgJC/wGDQgRSDQEgAkIgiKchA0EBIQELIAAgAzYCBCAAIAE2AgAPCwALTgECfyOAgICAAEEQayIBJICAgIAAELGAgIAAIAFBBTYCACABIAA3AwgCQCABENiAgIAAIgJFDQAgARDKgICAAAsgAUEQaiSAgICAACACCxIAIAAQ34CAgABCARC1gICAAAs3AQF/I4CAgIAAQRBrIgEkgICAgAAQsYCAgAAgAUEJNgIAIAAgARDTgICAACABQRBqJICAgIAACzcBAX8jgICAgABBEGsiASSAgICAABCxgICAACABQQc2AgAgACABENOAgIAAIAFBEGokgICAgAALTgECfyOAgICAAEEQayIBJICAgIAAELGAgIAAIAFBAzYCACABIAA3AwgCQCABENiAgIAAIgJFDQAgARDKgICAAAsgAUEQaiSAgICAACACC1UBA38jgICAgABBIGsiACSAgICAABCxgICAACAAQQY2AhAgAEEIaiAAQRBqENaAgIAAIAAoAgghASAAKAIMIQIgAEEgaiSAgICAACACQQAgAUEBcRsLGQAQsYCAgAAQ0ICAgAAgABCDgICAAEICUgtwAgJ/AX4jgICAgABBEGsiACSAgICAABCxgICAAEEAIQEgAEEANgIAAkAgABDfgICAACICQgIQtYCAgABFDQBBASEBAkACQCACQgIQgICAgACnQf8BcQ4CAQIACwALQQAhAQsgAEEQaiSAgICAACABC6YEAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAA4LAAECAwQFBgcICQoACyABQciMwIAAQQYQw4CAgAAgASgCAA0LIAEgASkDCBDEgICAAAwKCyABQc6MwIAAQQYQw4CAgAAgASgCAA0KIAEgASkDCBDEgICAAAwJCyABQdSMwIAAQQsQw4CAgAAgASgCAA0JIAEgASkDCBDEgICAAAwICyABQd+MwIAAQQkQw4CAgAAgASgCAA0IIAEgASkDCCAAKQMIEMWAgIAADAcLIAFB6IzAgABBDRDDgICAACABKAIADQcgASABKQMIEMSAgIAADAYLIAFB9YzAgABBCBDDgICAACABKAIADQYgASABKQMIIAApAwgQxYCAgAAMBQsgAUH9jMCAAEEUEMOAgIAAIAEoAgANBSABIAEpAwgQxICAgAAMBAsgAUGRjcCAAEEOEMOAgIAAIAEoAgANBCABIAEpAwgQxICAgAAMAwsgAUGfjcCAAEEUEMOAgIAAIAEoAgANAyABIAEpAwggADUCBEIghkIEhBDFgICAAAwCCyABQbONwIAAQQwQw4CAgAAgASgCAA0CIAEgASkDCBDEgICAAAwBCyABQb+NwIAAQQkQw4CAgAAgASgCAA0BIAEgASkDCBDEgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACCy8AELGAgIAAAkAgABDXgICAAEUNAEEADwsCQBDVgICAAA0AQQEPCyAAENuAgIAACykAAkAgAKdBAXFFDQAPCyABQdB2aq1CIIZCg4CAgICWAYQQvoCAgAAAC2kCAX8BfgJAIAEoAggiAiABKAIMSQ0AIABCAjcDAA8LIAEpAwAgAq1CIIZCBIQQiYCAgAAhAwJAIAJBAWoiAkUNACAAIAM3AwggASACNgIIIAAgA0L/AYNCzQBSrTcDAA8LEK+AgIAAAAvcAgICfwZ+I4CAgIAAQdAAayICJICAgIAAQQAhAwJAA0AgA0EoRg0BIAJBCGogA2pCAjcDACADQQhqIQMMAAsLQgAhBEIBIQUCQCABQv8Bg0LMAFINACABQciBwIAAQQUgAkEIakEFEOSAgIAAIAJBMGogAikDCBDlgICAACACKAIwQQFGDQAgAikDSCEBIAIpA0AhBiACQTBqIAIpAxAQ5oCAgAAgAigCMA0AIAIpAzghByACQTBqIAIpAxgQ5oCAgAAgAigCMA0AIAIpAyAiCEL/AYNCBFINACACKQM4IQkgAkEwaiACKQMoEOWAgIAAIAIoAjBBAUYNACACKQNAIQQgACACKQNINwMoIAAgBDcDICAAIAE3AxggACAGNwMQIAAgCEIgiKc2AkAgACAHNwM4IAAgCTcDMEIAIQVCACEECyAAIAU3AwAgACAENwMIIAJB0ABqJICAgIAACzEAAkAgAiAERg0AAAsgACABrUIghkIEhCADrUIghkIEhCACrUIghkIEhBCbgICAABoLewIBfwF+AkACQAJAIAGnQf8BcSICQcQARg0AIAJBCkcNAUIAIQMgAEIANwMYIAAgAUIIiDcDEAwCCyABEJmAgIAAIQMgARCagICAACEBIAAgAzcDGCAAIAE3AxBCACEDDAELIABCg5CAgIABNwMIQgEhAwsgACADNwMAC10CAX8BfgJAAkAgAadB/wFxIgJBwABGDQACQCACQQZGDQBCASEDQoOQgICAASEBDAILIAFCCIghAUIAIQMMAQtCACEDIAEQl4CAgAAhAQsgACADNwMAIAAgATcDCAv8AQIBfwV+I4CAgIAAQTBrIgIkgICAgAAgAkEIaiABKQMAIAEpAwgQ6ICAgABCASEDAkAgAigCCA0AIAIpAxAhBCACQQhqIAEpAygQ6YCAgAAgAigCCA0AIAIpAxAhBSACQQhqIAEpAyAQ6YCAgAAgAigCCA0AIAIpAxAhBiABNQIwIQcgAkEIaiABKQMQIAEpAxgQ6ICAgAAgAigCCA0AIAIgAikDEDcDKCACIAY3AxggAiAFNwMQIAIgBDcDCCACIAdCIIZCBIQ3AyAgAEHIgcCAAEEFIAJBCGpBBRDMgICAADcDCEIAIQMLIAAgAzcDACACQTBqJICAgIAAC0YAAkACQCABQv//////////AFYgAkIAUiACUBsNACABQgiGQgqEIQIMAQsgAiABEJiAgIAAIQILIABCADcDACAAIAI3AwgLQgEBfyOAgICAAEEQayICJICAgIAAIAIgARDEgYCAACACKQMIIQEgACACKQMANwMAIAAgATcDCCACQRBqJICAgIAAC4EBAQJ/I4CAgIAAQSBrIgMkgICAgAACQAJAIAGnQQFxDQAgAEKBgICAMDcDAAwBCyADIAIQ64CAgAACQAJAIAMoAgBBAUcNACAAQQM2AgRBASEEDAELIAAgAykDGDcDGCAAIAMpAxA3AxBBACEECyAAIAQ2AgALIANBIGokgICAgAALfQIBfwF+AkACQAJAAkAgAadB/wFxIgJBxQBGDQAgAkELRw0CIAAgAUI/hzcDGCAAIAFCCIc3AxAMAQsgARCegICAACEDIAEQn4CAgAAhASAAIAM3AxggACABNwMQC0IAIQEMAQsgAEKDkICAgAE3AwhCASEBCyAAIAE3AwALjA0FAX8BfgF/A34BfyOAgICAAEHAAGsiAySAgICAACADQRBqIAAQ7YCAgAACQCADKAIQQQFGDQAgAykDGCEEQQAhBQJAA0AgBUEQRg0BIANBMGogBWpCAjcDACAFQQhqIQUMAAsLIAFC/wGDQswAUg0AIAFB9ILAgABBAiADQTBqQQIQ5ICAgAAgA0EQaiADKQMwEO2AgIAAIAMoAhANACADKQM4IgFC/wGDQsgAUg0AIAMpAxghACABEIqAgIAAQoCAgIBwg0KAgICAgAhSDQAgAkL/AYNCywBSDQAQsYCAgABBqIXAgACtQiCGQgSEQoSAgIDAARCLgICAACAAEIyAgIAAEI2AgIAAIgZC/wGDQs0AUg0AAkACQCAGEM6AgIAADQBCg4CAgCAhAQwBCyAAIAQgARCOgICAABoCQAJAAkACQCACEISAgIAAQv////8vVg0AIAIQhICAgABCgICAgBBUDQAgAhCPgICAACIBQv8Bg0LLAFINBSABEISAgIAAIQAgA0EANgIIIAMgATcDACADIABCIIg+AgwgA0EQaiADEO6AgIAAIAMpAxAiAUICUQ0FIAGnQQFxDQUCQCADKQMYIgGnQf8BcSIFQcoARg0AIAVBDkcNBgsCQAJAAkACQAJAIAEQ74CAgABCIIinDgMAAQIKCyADKAIIIAMoAgwQ8ICAgABBAUsNCSADQTBqIAMQ7oCAgAAgAykDMCIBQgJRDQkgAadBAXENCSADQRBqIAMpAzgQ8YCAgAAgAygCEEEBRg0JIAMpAyghBiADKQMYIQAgAykDICIBQaSCwIAAQRAQ0YCAgAAQq4CAgAANAyABQbSCwIAAQRAQ0YCAgAAQq4CAgAANAwJAIAFBxILAgABBChDRgICAABCqgICAAEUNACABQc6CwIAAQQoQ0YCAgAAQqoCAgAANBQsgBhCEgICAAEL/////D1YNAiADQQM2AhQMBgsgAygCCCADKAIMEPCAgIAAQQFLDQggA0EwaiADEO6AgIAAIAMpAzAiAUICUQ0IIAGnQQFxDQggA0EQaiADKQM4EPKAgIAAIAMoAhBFDQMMCAsgAygCCCADKAIMEPCAgIAAQQFLDQcgA0EwaiADEO6AgIAAIAMpAzAiAUICUQ0HIAGnQQFxDQcgA0EQaiADKQM4EPOAgIAAIAMoAhANBwwCCyADQRBqQgEgBhCQgICAABDqgICAACADKAIQQQFxDQMgAykDKCEBIAMpAyAhACACEISAgIAAQiCIIQYCQCAAIAGEQgBSDQAgBkIBUg0CDAMLIAZCAlINAQJAAkAgAhCEgICAAEKAgICAIFQNACACQoSAgIAQEImAgIAAIgJC/wGDQssAUg0IIAIQhICAgAAhBiADQQA2AgggAyACNwMAIAMgBkIgiD4CDCADQRBqIAMQ7oCAgAAgAykDECICQgJRDQggAqdBAXENCAJAIAMpAxgiAqdB/wFxIgVBygBGDQAgBUEORw0JCwJAAkACQCACEO+AgIAAQiCIpw4DAAECCwsgAygCCCADKAIMEPCAgIAAQQFLDQogA0EwaiADEO6AgIAAIAMpAzAiAkICUQ0KIAKnQQFxDQogA0EQaiADKQM4EPGAgIAAIAMoAhBBAUYNCiADKQMgIQYgAykDGCEEIAMpAyghAhD0gICAABD1gICAACEHIAIQhICAgABC/////y9WDQMgA0EDNgIUDAcLIAMoAgggAygCDBDwgICAAEEBSw0JIANBMGogAxDugICAACADKQMwIgFCAlENCSABp0EBcQ0JIANBEGogAykDOBDygICAACADKAIQDQkMBAsgAygCCCADKAIMEPCAgIAAQQFLDQggA0EwaiADEO6AgIAAIAMpAzAiAUICUQ0IIAGnQQFxDQggA0EQaiADKQM4EPOAgIAAIAMoAhANCAwDCxD2gICAAAALIANBEGpCASACQoSAgIAgEImAgIAAEOqAgIAAIAMoAhBBAXENAyADKQMoIQIgAykDICEIQQMhBSAGQdiCwIAAQQgQ0YCAgAAQqoCAgAANBCAEIAcQrICAgAAhCSAIIACFIAIgAYWEQgBSDQQgCUUNAgwECyACEISAgIAAQoCAgIBwg0KAgICAEFINACAAEPSAgIAAEKyAgIAARQ0BC0KDgICAMCEBDAMLQgIhAQwCCyADKAIUIQULIAVBf2qtQiCGQoOAgIAQfCEBCyADQcAAaiSAgICAACABDwsAC0IBAX5CASECAkAgAUL/AYNCyABSDQAgARCKgICAAEKAgICAcINCgICAgIAEUg0AIAAgATcDCEIAIQILIAAgAjcDAAtKAgF+AX9CAiECAkAgASgCCCIDIAEoAgxPDQAgACABKQMAIAOtQiCGQgSEEImAgIAANwMIIAEgA0EBajYCCEIAIQILIAAgAjcDAAsSACAAQbiAwIAAQQMQxoGAgAALGQACQCABIABJDQAgASAAaw8LEK+AgIAAAAvTAQICfwN+I4CAgIAAQSBrIgIkgICAgABBACEDAkADQCADQRhGDQEgAkEIaiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUHMhcCAAEEDIAJBCGpBAxDkgICAACACKQMIIgFC/wGDQssAUg0AIAIpAxAiBUL/AYNCzQBSDQACQCACKQMYIganQf8BcSIDQcoARg0AIANBDkcNAQsgACABNwMYIAAgBjcDECAAIAU3AwhCACEECyAAIAQ3AwAgAkEgaiSAgICAAAu+AQICfwF+I4CAgIAAQSBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUH0hcCAAEECIAJBAhDkgICAACACQRBqIAIpAwAQyIGAgAAgAigCEA0AIAIpAxghASACQRBqIAIpAwgQ7YCAgAAgAigCEA0AIAAgAikDGDcDECAAIAE3AwhCACEECyAAIAQ3AwAgAkEgaiSAgICAAAvgAQICfwJ+I4CAgIAAQTBrIgIkgICAgABBACEDAkADQCADQRhGDQEgAkEIaiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUGUhsCAAEEDIAJBCGpBAxDkgICAACACKQMIIgFC/wGDQssAUg0AIAJBIGogAikDEBDIgYCAACACKAIgDQAgAikDKCEFIAJBIGogAikDGBDtgICAACACKAIgDQAgAikDKCEEIAAgATcDGCAAIAQ3AxAgACAFNwMIQgAhBAsgACAENwMAIAJBMGokgICAgAALSQIBfwF+ELGAgIAAAkACQEEBIAAQuICAgAAiAUICELWAgIAARQ0AIAFCAhCAgICAACIBQv8Bg0LNAFENAQALEPaAgIAAAAsgAQs2AAJAIABBvIPAgABBDBDRgICAABCIgICAABCUgICAACIAQv8Bg0LNAFENABCvgICAAAALIAALCQAQr4CAgAAAC/4BAgJ/AX4jgICAgABBEGsiASSAgICAAAJAAkBBASAAp0H/AXEiAkEAR0EBdCACQQFGGyICQQJGDQAQsYCAgAAQuYCAgAAhABDegICAACACc0EBcUUNASABQQA2AgAgASACQgIQ+ICAgAACQAJAIAJBAXENAEKO0qrc7qzP9QAQy4CAgAAhAyABIAA3AwAgA0HgisCAAEEBIAFBARDMgICAABCHgICAABoMAQtCjtKq3O6sAxDLgICAACEDIAEgADcDACADQdCKwIAAQQEgAUEBEMyAgIAAEIeAgIAAGgsgAUEQaiSAgICAAEICDwsAC0KDgICAoJcBEL6AgIAAAAsaACAAEN+AgIAAIAGtQv8BgyACEJKAgIAAGgtPAQF/AkAgAEL/AYNCzQBSDQBBASABp0H/AXEiAkEAR0EBdCACQQFGGyICQQJGDQAQsYCAgAAQuYCAgAAaIAAgAkEBcRDGgICAAEICDwsAC08BAX8CQCAAQv8Bg0LNAFINAEEBIAGnQf8BcSICQQBHQQF0IAJBAUYbIgJBAkYNABCxgICAABC5gICAABogACACQQFxEM+AgIAAQgIPCwAL0wIBA38jgICAgABBEGsiAiSAgICAAAJAAkACQAJAIABC/wGDQs0AUg0AQQEgAadB/wFxIgNBAEdBAXQgA0EBRhsiA0ECRg0AELGAgIAAELmAgIAAGiAAENuAgIAAIQQCQAJAIANBAXENACAERQ0DIAJBAzYCACACIAA3AwggAhDfgICAAEIBEJGAgIAAGhDVgICAACIERQ0FIARBf2ohBAwBCyAEDQMgAkEDNgIAIAIgADcDCCACEPyAgIAAIAIQyoCAgAAQ1YCAgABBAWoiBEUNBAsgBBD9gICAAEH8icCAAEENENGAgIAAEMuAgIAAIQEgAiAANwMIIAIgA603AwAgAUGUisCAAEECIAJBAhDMgICAABCHgICAABogAkEQaiSAgICAAEICDwsAC0KDgICAgJcBEL6AgIAAAAtCg4CAgKCWARC+gICAAAALEK+AgIAAAAsOACAAQQFCARD4gICAAAsxAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEENgIAIAEgABDPgYCAACABQRBqJICAgIAAC6ECAQN/I4CAgIAAQRBrIgIkgICAgAACQAJAAkAgAEL/AYNCzQBSDQBBASABp0H/AXEiA0EAR0EBdCADQQFGGyIDQQJGDQAQsYCAgAAQuYCAgAAaIAAQ14CAgAAhBAJAAkAgA0EBcQ0AIARFDQMgAkEFNgIAIAIgADcDCCACEN+AgIAAQgEQkYCAgAAaDAELIAQNAyACQQU2AgAgAiAANwMIIAIQ/ICAgAAgAhDKgICAAAtBpIrAgABBDBDRgICAABDLgICAACEBIAIgADcDCCACIAOtNwMAIAFBuIrAgABBAiACQQIQzICAgAAQh4CAgAAaIAJBEGokgICAgABCAg8LAAtCg4CAgJCXARC+gICAAAALQoOAgICwlgEQvoCAgAAACzoAAkAgAEL/AYNCzQBSDQAgAUL/AYNCBFINABCxgICAACAAEM2AgIAAIAFCIIinEICBgIAAQgIPCwALcgIBfwF+I4CAgIAAQRBrIgEkgICAgAAgAUEGNgIAIAEgABDPgYCAAEHoisCAAEEaENGAgIAAEMuAgIAAIQIgASAArUIghkIEhDcDACACQZCLwIAAQQEgAUEBEMyAgIAAEIeAgIAAGiABQRBqJICAgIAAC5ABAQF/I4CAgIAAQRBrIgIkgICAgAACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINABCxgICAACAAEM2AgIAAIAEQgoGAgABBmIvAgABBExDRgICAABDLgICAACEAIAIgATcDCCAAQbyLwIAAQQEgAkEIakEBEMyAgIAAEIeAgIAAGiACQRBqJICAgIAAQgIPCwALMQEBfyOAgICAAEEQayIBJICAgIAAIAFBBzYCACABIAAQzoGAgAAgAUEQaiSAgICAAAvKAQEBfyOAgICAAEEQayIDJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCBFINACACQv8Bg0LIAFINABCxgICAACAAEM2AgIAAIANBCDYCACADIAFCIIg+AgQgAxDfgICAACACQgEQkoCAgAAaIAMQyoCAgABB5IvAgABBGhDRgICAABDLgICAACEAIAMgAjcDCCADIAFChICAgHCDNwMAIABBlIzAgABBAiADQQIQzICAgAAQh4CAgAAaIANBEGokgICAgABCAg8LAAuQAQEBfyOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCzQBSDQAQsYCAgAAgABDNgICAACABEIWBgIAAQaSMwIAAQRIQ0YCAgAAQy4CAgAAhACACIAE3AwggAEHAjMCAAEEBIAJBCGpBARDMgICAABCHgICAABogAkEQaiSAgICAAEICDwsACzEBAX8jgICAgABBEGsiASSAgICAACABQQk2AgAgASAAEM6BgIAAIAFBEGokgICAgAALPwACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINABCxgICAACAAEM2AgIAAIAEQh4GAgAAgARCIgYCAAEICDwsACzEBAX8jgICAgABBEGsiASSAgICAACABQQo2AgAgASAAEM6BgIAAIAFBEGokgICAgAALXQIBfwF+I4CAgIAAQRBrIgEkgICAgABBxIvAgABBDhDRgICAABDLgICAACECIAEgADcDCCACQdyLwIAAQQEgAUEIakEBEMyAgIAAEIeAgIAAGiABQRBqJICAgIAACwkAEN6AgIAArQsbAAJAIABC/wGDQs0AUQ0AAAsgABDOgICAAK0LCAAQx4CAgAALGwACQCAAQv8Bg0LNAFENAAALIAAQ3YCAgACtCwgAENCAgIAACxsAAkAgAEL/AYNCzQBRDQAACyAAENuAgIAArQsPABDVgICAAK1CIIZCBIQLGwACQCAAQv8Bg0LNAFENAAALIAAQ14CAgACtCxsAAkAgAEL/AYNCzQBR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IAAQvICAgAAgACkDACAAKQMIEJSBgIAAIQEgAEEQaiSAgICAACABCz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQwICAgAAgACkDACAAKQMIEJSBgIAAIQEgAEEQaiSAgICAACABCzwBAX4CQCAAQv8Bg0LNAFENAAALELGAgIAAELuAgIAAIQEQv4CAgAAgABCmgYCAACABIAAQsoGAgABCAgthAgF/AX4jgICAgABBEGsiAiSAgICAAEG9hsCAAEEVENGAgIAAEMuAgIAAIQMgAiAANwMIIAIgATcDACADQeSGwIAAQQIgAkECEMyAgIAAEIeAgIAAGiACQRBqJICAgIAAC/wCAgF/An4jgICAgABBIGsiAiSAgICAAAJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0IEUg0AELGAgIAAELuAgIAAIQMCQAJAIAFC/////w9WDQAgAkEIahDAgICAACACKQMQIQEgAikDCEGJCBC9gICAACABIAAQrYCAgABFDQMQtIGAgABBqIfAgABBHBDRgICAABDLgICAACEAIAIgAzcDECACIAE3AwggAEHgh8CAAEECIAJBCGpBAhDMgICAABCHgICAABoMAQsQtYGAgAAgAUIgiKdJDQNBASAAQgAQtoGAgABBARDBgICAAEIAIAFChICAgHCDIgEgARCBgICAABpB9IbAgABBFhDRgICAABDLgICAACEEIAIgATcDGCACIAM3AxAgAiAANwMIIARBkIfAgABBAyACQQhqQQMQzICAgAAQh4CAgAAaCyACQSBqJICAgIAAQgIPCwALQoOAgIDwgAEQvoCAgAAAC0KDgICAgIEBEL6AgIAAAAsTAEEBEMGAgIAAQgAQkYCAgAAaCzMBAn4QpYCAgAAhAAJAEKaAgIAAQiCIIgEgAEIgiCIAVA0AIAGnIACnaw8LEK+AgIAAAAsVACAAEMGAgIAAIAEgAhCSgICAABoLiAECAX8CfiOAgICAAEEQayIAJICAgIAAELGAgIAAIAAQwICAgAAgACkDCCEBIAApAwBBiQgQvYCAgAAgARCCgICAABogABDCgICAAAJAIAAoAgANABD2gICAAAALIAApAwghAhC0gYCAACABEKaBgIAAIAIgARCygYCAACAAQRBqJICAgIAAQgILhAECAX8CfiOAgICAAEEQayIAJICAgIAA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AAJAAkAgAUL/AYNCywBRDQAgAEIBNwMADAELIAEQhICAgAAhAyACQQA2AgggAiABNwMAIAIgA0IgiD4CDCACQRBqIAIQ7oCAgAACQCACKQMQIgFCAlENACABp0EBcQ0AAkAgAikDGCIBp0H/AXEiBEHKAEYNACAEQQ5HDQELAkAgAUGshsCAAEEBEMaBgIAAQv////8PVg0AIAIoAgggAigCDBDwgICAAEEBSw0AIAJBEGogAhDugICAACACKQMQIgFCAlENACABp0EBcQ0AIAJBEGogAikDGBDtgICAACACKAIQDQAgAikDGCEBIABCADcDACAAIAE3AwgMAgsgAEIBNwMADAELIABCATcDAAsgAkEgaiSAgICAAAutAQICfwF+I4CAgIAAQRBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtBASEDAkAgAUL/AYNCzABSDQAgAUGoiMCAAEECIAJBAhDkgICAACACKQMAIgFC/wGDQgRSDQAgAikDCCIEQv8Bg0IEUg0AIAAgAUIgiKc2AgggACAEQiCIPgIEQQAhAwsgACADNgIAIAJBEGokgICAgAALYAIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABrUIghkIEhDcDCCADIAKtQiCGQgSENwMAQaiIwIAAQQIgA0ECEMyAgIAAIQQgAEIANwMAIAAgBDcDCCADQRBqJICAgIAAC5IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAIABBAXFFDQAgAUGWicCAAEEJEMOAgIAAIAEoAgANAiABIAEpAwgQxICAgAAMAQsgAUH+iMCAAEEGEMOAgIAAIAEoAgANASABIAEpAwgQxICAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgt3AgJ/AX4jgICAgABBEGsiAiSAgICAAEEAIQMCQAJAIAEQtICAgAAiBEICELWAgIAARQ0AIAJBBGogBEICEICAgIAAEMmBgIAAQQEhAyACKAIEQQFGDQEgACACKQIINwIECyAAIAM2AgAgAkEQaiSAgICAAA8LAAtWAgF/AX4jgICAgABBEGsiAySAgICAACAAELSAgIAAIQQgAyABIAIQyoGAgAACQCADKAIAQQFHDQAACyAEIAMpAwhCAhCSgICAABogA0EQaiSAgICAAAsVACAAEN+AgIAAIAFCAhCSgICAABoLHAAgABDfgICAACABrUIghkIEhEICEJKAgIAAGgu5BwEMfyOAgICAAEEQayEDAkACQCACQRBPDQAgACEEDAELAkAgACAAQQAgAGtBA3EiBWoiBk8NACAFQX9qIQcgACEEIAEhCAJAIAVFDQAgBSEJIAAhBCABIQgDQCAEIAgtAAA6AAAgCEEBaiEIIARBAWohBCAJQX9qIgkNAAsLIAdBB0kNAANAIAQgCC0AADoAACAEQQFqIAhBAWotAAA6AAAgBEECaiAIQQJqLQAAOgAAIARBA2ogCEEDai0AADoAACAEQQRqIAhBBGotAAA6AAAgBEEFaiAIQQVqLQAAOgAAIARBBmogCEEGai0AADoAACAEQQdqIAhBB2otAAA6AAAgCEEIaiEIIARBCGoiBCAGRw0ACwsgBiACIAVrIglBfHEiB2ohBAJAAkAgASAFaiIIQQNxIgENACAGIARPDQEgCCEBA0AgBiABKAIANgIAIAFBBGohASAGQQRqIgYgBEkNAAwCCwtBACECIANBADYCDCADQQxqIAFyIQUCQEEEIAFrIgpBAXFFDQAgBSAILQAAOgAAQQEhAgsCQCAKQQJxRQ0AIAUgAmogCCACai8BADsBAAsgCCABayECIAFBA3QhCyADKAIMIQUCQAJAIAZBBGogBEkNACAGIQwMAQtBACALa0EYcSENA0AgBiAFIAt2IAJBBGoiAigCACIFIA10cjYCACAGQQhqIQogBkEEaiIMIQYgCiAESQ0ACwtBACEGIANBADoACCADQQA6AAYCQAJAIAFBAUcNACADQQhqIQ1BACEBQQAhCkEAIQ4MAQsgAkEFai0AACEKIAMgAkEEai0AACIBOgAIIApBCHQhCkECIQ4gA0EGaiENCwJAIAhBAXFFDQAgDSACQQRqIA5qLQAAOgAAIAMtAAZBEHQhBiADLQAIIQELIAwgCiAGciABQf8BcXJBACALa0EYcXQgBSALdnI2AgALIAlBA3EhAiAIIAdqIQELAkAgBCAEIAJqIgZPDQAgAkF/aiEJAkAgAkEHcSIIRQ0AA0AgBCABLQAAOgAAIAFBAWohASAEQQFqIQQgCEF/aiIIDQALCyAJQQdJDQADQCAEIAEtAAA6AAAgBEEBaiABQQFqLQAAOgAAIARBAmogAUECai0AADoAACAEQQNqIAFBA2otAAA6AAAgBEEEaiABQQRqLQAAOgAAIARBBWogAUEFai0AADoAACAEQQZqIAFBBmotAAA6AAAgBEEHaiABQQdqLQAAOgAAIAFBCGohASAEQQhqIgQgBkcNAAsLIAALDgAgACABIAIQ0IGAgAALC9INAQBBgIDAAAvIDUNvbnRyYWN0Q3JlYXRlQ29udHJhY3RIb3N0Rm5DcmVhdGVDb250cmFjdFdpdGhDdG9ySG9zdEZuAAAQAAgAAAAIABAAFAAAABwAEAAcAAAAZHN0X2NvbmZpZ19zZXRwYXJhbXNeABAABgAAAG5hdGl2ZV9kcm9wX2FwcGxpZWRuYXRpdmVfZHJvcF9wYXJhbXNvcmlnaW5zdWNjZXNzAAD+BRAABwAAAH8AEAASAAAAEAUQAAQAAACRABAABgAAAJcAEAAHAAAA9gEQABAAAAAgAhAAEwAAADMCEAATAAAAggUQAA4AAABGAhAACgAAAGRzdF9jb25maWcAAPAAEAAKAAAA/gUQAAcAAAByZWNlaXZlcsgBEAAGAAAADAEQAAgAAABsel9yZWNlaXZlX2FsZXJ0bHpfY29tcG9zZV9hbGVydGx6X3JlY2VpdmVsel9jb21wb3NldHJhbnNmZXJwdWJsaWNfa2V5c2lnbmF0dXJlAGABEAAKAAAAagEQAAkAAABEc3RDb25maWdFbmRwb2ludG5vbmNlc3JjX2VpZAAAAJUBEAAFAAAADQIQAAYAAACaARAABwAAAG5hdGl2ZV90b2tlbmFtb3VudHRvyAEQAAYAAADOARAAAgAAAGRlZmF1bHRfbXVsdGlwbGllcl9icHNmbG9vcl9tYXJnaW5fdXNkb3B0aW9uc3NlbmRlcmNhbGxkYXRhX3NpemVsel9jb21wb3NlX2Jhc2VfZ2FzbHpfcmVjZWl2ZV9iYXNlX2dhc25hdGl2ZV9jYXATAhAADQAAAOABEAAWAAAA/gUQAAcAAAD2ARAAEAAAACACEAATAAAAMwIQABMAAACCBRAADgAAAEYCEAAKAAAABgIQAAcAAADSBRAACgAAAA0CEAAGAAAAAAAAEgAAAAAAAAAAV2FzbWFyZ3Njb250cmFjdGZuX25hbWUAuAIQAAQAAAC8AhAACAAAAMQCEAAHAAAAZXhlY3V0YWJsZXNhbHQAAOQCEAAKAAAA7gIQAAQAAABjb25zdHJ1Y3Rvcl9hcmdzBAMQABAAAADkAhAACgAAAO4CEAAEAAAAtAIQAAQAAAB0aHJlc2hvbGRvd25lcnNoaXBfdHJhbnNmZXJyZWRuZXdfb3duZXJvbGRfb3duZXJSAxAACQAAAFsDEAAJAAAAb3duZXJzaGlwX3RyYW5zZmVycmluZ3R0bAAAAFIDEAAJAAAAWwMQAAkAAACKAxAAAwAAAG93bmVyc2hpcF90cmFuc2Zlcl9jYW5jZWxsZWRjYW5jZWxsZWRfcGVuZGluZ19vd25lcm93bmVyxAMQABcAAADbAxAABQAAAG93bmVyc2hpcF9yZW5vdW5jZWQAWwMQAAkAAABPd25lclBlbmRpbmdPd25lcmV4dGVuZF90bwAAHQQQAAkAAAA0AxAACQAAAHR0bF9jb25maWdzX3NldGluc3RhbmNlcGVyc2lzdGVudAAAAEcEEAAIAAAATwQQAAoAAAB0dGxfY29uZmlnc19mcm96ZW5Gcm96ZW5JbnN0YW5jZVBlcnNpc3RlbnRNaWdyYXRpbmdhY3RpdmVhZG1pbgAAnwQQAAYAAAClBBAABQAAAHNldF9zdXBwb3J0ZWRfbWVzc2FnZV9saWJtZXNzYWdlX2xpYnN1cHBvcnRlZAAAANUEEAALAAAA4AQQAAkAAABzZXRfYWxsb3dsaXN0YWxsb3dlZG9hcHAJBRAABwAAABAFEAAEAAAAc2V0X2RlbnlsaXN0ZGVuaWVkAAAwBRAABgAAABAFEAAEAAAAcGF1c2VyAABIBRAABgAAAHVucGF1c2VyWAUQAAgAAABzZXRfZGVmYXVsdF9tdWx0aXBsaWVyX2Jwc211bHRpcGxpZXJfYnBzggUQAA4AAABzZXRfZGVwb3NpdF9hZGRyZXNzZGVwb3NpdF9hZGRyZXNzAACrBRAADwAAAHNldF9wcmljZV9mZWVkcHJpY2VfZmVlZNIFEAAKAAAAc2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXNkc3RfZWlkb3B0aW9uX3R5cGVzAAAA/gUQAAcAAAAFBhAADAAAAHNldF93b3JrZXJfZmVlX2xpYmZlZV9saWIAAAA2BhAABwAAAFBhdXNlZEFkbWluc01lc3NhZ2VMaWJzQWxsb3dsaXN0QWxsb3dsaXN0U2l6ZURlbnlsaXN0RGVmYXVsdE11bHRpcGxpZXJCcHNEZXBvc2l0QWRkcmVzc1N1cHBvcnRlZE9wdGlvblR5cGVzV29ya2VyRmVlTGliUHJpY2VGZWVkAJOAAg5jb250cmFjdHNwZWN2MAAAAAQAAAAAAAAAAAAAAA1FeGVjdXRvckVycm9yAAAAAAAAAwAAAAAAAAAPRWlkTm90U3VwcG9ydGVkAAAAAAEAAAAAAAAADFVuYXV0aG9yaXplZAAAAAIAAAAAAAAAE1VuYXV0aG9yaXplZENvbnRleHQAAAAAAwAAAAUAAAAAAAAAAAAAAAxEc3RDb25maWdTZXQAAAABAAAADmRzdF9jb25maWdfc2V0AAAAAAABAAAAAAAAAAZwYXJhbXMAAAAAA+oAAAfQAAAAEVNldERzdENvbmZpZ1BhcmFtAAAAAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAARTmF0aXZlRHJvcEFwcGxpZWQAAAAAAAABAAAAE25hdGl2ZV9kcm9wX2FwcGxpZWQAAAAABQAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAAAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAAAAAAAEb2FwcAAAABMAAAAAAAAAAAAAABJuYXRpdmVfZHJvcF9wYXJhbXMAAAAAA+oAAAfQAAAAEE5hdGl2ZURyb3BQYXJhbXMAAAAAAAAAAAAAAAdzdWNjZXNzAAAAA+oAAAABAAAAAAAAAAIAAAABAAAA20Rlc3RpbmF0aW9uIGNoYWluIGNvbmZpZ3VyYXRpb24gZm9yIGV4ZWN1dG9yIGZlZSBjYWxjdWxhdGlvbi4KCkNvbnRhaW5zIGdhcyBjb3N0cyBhbmQgZmVlIHBhcmFtZXRlcnMgc3BlY2lmaWMgdG8gZWFjaCBkZXN0aW5hdGlvbiBjaGFpbi4KVGhlc2UgcGFyYW1ldGVycyBhcmUgdXNlZCBieSB0aGUgZmVlIGxpYnJhcnkgdG8gY2FsY3VsYXRlIGFjY3VyYXRlIGV4ZWN1dGlvbiBmZWVzLgAAAAAAAAAACURzdENvbmZpZwAAAAAAAAUAAAA7TWluaW11bSBmZWUgbWFyZ2luIGluIFVTRCAoc2NhbGVkKSB0byBlbnN1cmUgcHJvZml0YWJpbGl0eS4AAAAAEGZsb29yX21hcmdpbl91c2QAAAAKAAAAOkJhc2UgZ2FzIGNvc3QgcGVyIGx6Q29tcG9zZSBjYWxsIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi4AAAAAABNsel9jb21wb3NlX2Jhc2VfZ2FzAAAAAAYAAAA/QmFzZSBnYXMgY29zdCBmb3IgbHpSZWNlaXZlIGV4ZWN1dGlvbiBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4uAAAAABNsel9yZWNlaXZlX2Jhc2VfZ2FzAAAAAAYAAABRRmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzIGZvciB0aGlzIGRlc3RpbmF0aW9uICgwID0gdXNlIGRlZmF1bHQgbXVsdGlwbGllcikuAAAAAAAADm11bHRpcGxpZXJfYnBzAAAAAAAEAAAARk1heGltdW0gbmF0aXZlIHRva2VuIHZhbHVlIHRoYXQgY2FuIGJlIHRyYW5zZmVycmVkIHRvIHRoZSBkZXN0aW5hdGlvbi4AAAAAAApuYXRpdmVfY2FwAAAAAAAKAAAAAQAAAHxQYXJhbWV0ZXJzIGZvciBzZXR0aW5nIGRlc3RpbmF0aW9uIGNvbmZpZ3VyYXRpb24uCgpVc2VkIHdoZW4gY29uZmlndXJpbmcgZXhlY3V0b3Igc2V0dGluZ3MgZm9yIGEgc3BlY2lmaWMgZGVzdGluYXRpb24gY2hhaW4uAAAAAAAAABFTZXREc3RDb25maWdQYXJhbQAAAAAAAAIAAAAoQ29uZmlndXJhdGlvbiBmb3IgdGhlIGRlc3RpbmF0aW9uIGNoYWluLgAAAApkc3RfY29uZmlnAAAAAAfQAAAACURzdENvbmZpZwAAAAAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAABAAAAaFBhcmFtZXRlcnMgZm9yIGEgbmF0aXZlIHRva2VuIGRyb3AuCgpVc2VkIHRvIHNwZWNpZnkgbmF0aXZlIHRva2VuIHRyYW5zZmVycyBhcyBwYXJ0IG9mIGV4ZWN1dG9yIG9wdGlvbnMuAAAAAAAAABBOYXRpdmVEcm9wUGFyYW1zAAAAAgAAACRBbW91bnQgb2YgbmF0aXZlIHRva2VucyB0byB0cmFuc2Zlci4AAAAGYW1vdW50AAAAAAALAAAAL1JlY2VpdmVyIGFkZHJlc3MgZm9yIHRoZSBuYXRpdmUgdG9rZW4gdHJhbnNmZXIuAAAAAAhyZWNlaXZlcgAAABMAAAAAAAAAuFZlcmlmaWVzIGF1dGhvcml6YXRpb24gZm9yIHRoZSBleGVjdXRvciBjb250cmFjdC4KClRoZSBwdWJsaWMga2V5IG11c3QgY29ycmVzcG9uZCB0byBhIHJlZ2lzdGVyZWQgYWRtaW4gYW5kIG11c3QgaGF2ZSBzaWduZWQgdGhlIHNpZ25hdHVyZV9wYXlsb2FkLgpVc2VzIEVkMjU1MTkgc2lnbmF0dXJlIHZlcmlmaWNhdGlvbi4AAAAMX19jaGVja19hdXRoAAAAAwAAAAAAAAARc2lnbmF0dXJlX3BheWxvYWQAAAAAAAPuAAAAIAAAAAAAAAAJYXV0aF9kYXRhAAAAAAAH0AAAABFFeGVjdXRvclNpZ25hdHVyZQAAAAAAAAAAAAANYXV0aF9jb250ZXh0cwAAAAAAA+oAAAfQAAAAB0NvbnRleHQAAAAAAQAAA+kAAAACAAAAAwAAAAEAAACMU2lnbmF0dXJlIGRhdGEgZm9yIEN1c3RvbSBBY2NvdW50IGF1dGhvcml6YXRpb24uCkNvbnRhaW5zIHRoZSBhZG1pbidzIHB1YmxpYyBrZXkgYW5kIHRoZWlyIEVkMjU1MTkgc2lnbmF0dXJlIG92ZXIgdGhlIGF1dGhvcml6YXRpb24gcGF5bG9hZC4AAAAAAAAAEUV4ZWN1dG9yU2lnbmF0dXJlAAAAAAAAAgAAAE1BZG1pbidzIEVkMjU1MTkgcHVibGljIGtleSAoMzIgYnl0ZXMpIC0gbXVzdCBjb3JyZXNwb25kIHRvIGEgcmVnaXN0ZXJlZCBhZG1pbgAAAAAAAApwdWJsaWNfa2V5AAAAAAPuAAAAIAAAADdFZDI1NTE5IHNpZ25hdHVyZSAoNjQgYnl0ZXMpIG92ZXIgdGhlIHNpZ25hdHVyZV9wYXlsb2FkAAAAAAlzaWduYXR1cmUAAAAAAAPuAAAAQAAAAAAAAADkU2V0cyB0aGUgcGF1c2VkIHN0YXRlIG9mIHRoZSB3b3JrZXIuCgpXaGVuIHBhdXNlZCwgdGhlIHdvcmtlciB3aWxsIHJlamVjdCBuZXcgam9iIGFzc2lnbm1lbnRzIChlLmcuLCBhc3NpZ25fam9iLCBnZXRfZmVlKS4KRXhpc3Rpbmcgam9icyBpbiBwcm9ncmVzcyBhcmUgbm90IGFmZmVjdGVkLgoKIyBBcmd1bWVudHMKKiBgcGF1c2VkYCAtIGB0cnVlYCB0byBwYXVzZSwgYGZhbHNlYCB0byB1bnBhdXNlAAAACnNldF9wYXVzZWQAAAAAAAEAAAAAAAAABnBhdXNlZAAAAAAAAQAAAAAAAAAAAAAA/VNldHMgYWRtaW4gc3RhdHVzIGZvciBhbiBhZGRyZXNzLgoKQWRtaW5zIGNhbiBjb25maWd1cmUgd29ya2VyIHNldHRpbmdzIGxpa2UgZmVlIG11bHRpcGxpZXJzLCBkZXBvc2l0IGFkZHJlc3NlcywKYW5kIHN1cHBvcnRlZCBvcHRpb24gdHlwZXMuCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBUaGUgYWRkcmVzcyB0byBzZXQgYWRtaW4gc3RhdHVzIGZvcgoqIGBhY3RpdmVgIC0gYHRydWVgIHRvIGFkZCBhZG1pbiwgYGZhbHNlYCB0byByZW1vdmUAAAAAAAAJc2V0X2FkbWluAAAAAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAAAAATdTZXRzIHdoZXRoZXIgYSBtZXNzYWdlIGxpYnJhcnkgaXMgc3VwcG9ydGVkIGJ5IHRoaXMgd29ya2VyLgoKTWVzc2FnZSBsaWJyYXJpZXMgKGUuZy4sIFVMTjMwMikgY2FsbCB3b3JrZXJzIHRvIGFzc2lnbiBqb2JzLiBPbmx5IHN1cHBvcnRlZApsaWJyYXJpZXMgY2FuIGludGVyYWN0IHdpdGggdGhpcyB3b3JrZXIuCgojIEFyZ3VtZW50cwoqIGBtZXNzYWdlX2xpYmAgLSBUaGUgbWVzc2FnZSBsaWJyYXJ5IGNvbnRyYWN0IGFkZHJlc3MKKiBgc3VwcG9ydGVkYCAtIGB0cnVlYCB0byBhZGQgc3VwcG9ydCwgYGZhbHNlYCB0byByZW1vdmUgc3VwcG9ydAAAAAAZc2V0X3N1cHBvcnRlZF9tZXNzYWdlX2xpYgAAAAAAAAIAAAAAAAAAC21lc3NhZ2VfbGliAAAAABMAAAAAAAAACXN1cHBvcnRlZAAAAAAAAAEAAAAAAAAAAAAAAVhTZXRzIGFsbG93bGlzdCBzdGF0dXMgZm9yIGFuIE9BcHAgYWRkcmVzcy4KCldoZW4gdGhlIGFsbG93bGlzdCBpcyBlbXB0eSwgYWxsIE9BcHBzIGFyZSBhbGxvd2VkICh1bmxlc3Mgb24gZGVueWxpc3QpLgpXaGVuIHRoZSBhbGxvd2xpc3QgaXMgbm90IGVtcHR5LCBvbmx5IGFsbG93bGlzdGVkIE9BcHBzIGFyZSBhbGxvd2VkLgpEZW55bGlzdCBhbHdheXMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGFsbG93bGlzdC4KCiMgQXJndW1lbnRzCiogYG9hcHBgIC0gVGhlIE9BcHAgY29udHJhY3QgYWRkcmVzcwoqIGBhbGxvd2VkYCAtIGB0cnVlYCB0byBhZGQgdG8gYWxsb3dsaXN0LCBgZmFsc2VgIHRvIHJlbW92ZQAAAA1zZXRfYWxsb3dsaXN0AAAAAAAAAgAAAAAAAAAEb2FwcAAAABMAAAAAAAAAB2FsbG93ZWQAAAAAAQAAAAAAAAAAAAABCVNldHMgZGVueWxpc3Qgc3RhdHVzIGZvciBhbiBPQXBwIGFkZHJlc3MuCgpEZW55bGlzdGVkIE9BcHBzIGFyZSBibG9ja2VkIGZyb20gdXNpbmcgdGhpcyB3b3JrZXIsIGV2ZW4gaWYgdGhleSdyZSBvbgp0aGUgYWxsb3dsaXN0IChkZW55bGlzdCB0YWtlcyBwcmVjZWRlbmNlKS4KCiMgQXJndW1lbnRzCiogYG9hcHBgIC0gVGhlIE9BcHAgY29udHJhY3QgYWRkcmVzcwoqIGBkZW5pZWRgIC0gYHRydWVgIHRvIGFkZCB0byBkZW55bGlzdCwgYGZhbHNlYCB0byByZW1vdmUAAAAAAAAMc2V0X2RlbnlsaXN0AAAAAgAAAAAAAAAEb2FwcAAAABMAAAAAAAAABmRlbmllZAAAAAAAAQAAAAAAAAAAAAABO1NldHMgdGhlIGRlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzLgoKVGhlIG11bHRpcGxpZXIgaXMgYXBwbGllZCB0byBiYXNlIGZlZXMgZHVyaW5nIGZlZSBjYWxjdWxhdGlvbi4gVXNlZCB3aGVuCm5vIGRlc3RpbmF0aW9uLXNwZWNpZmljIG11bHRpcGxpZXIgaXMgY29uZmlndXJlZC4KCiMgQXJndW1lbnRzCiogYGFkbWluYCAtIEFkbWluIGFkZHJlc3MgKG11c3QgcHJvdmlkZSBhdXRob3JpemF0aW9uKQoqIGBtdWx0aXBsaWVyX2Jwc2AgLSBNdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAoMTAwMDAgPSAxeCwgMTIwMDAgPSAxLjJ4KQAAAAAac2V0X2RlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAObXVsdGlwbGllcl9icHMAAAAAAAQAAAAAAAAAAAAAAPFTZXRzIHRoZSBkZXBvc2l0IGFkZHJlc3Mgd2hlcmUgd29ya2VyIGZlZXMgYXJlIGNvbGxlY3RlZC4KCldoZW4gam9icyBhcmUgYXNzaWduZWQsIGZlZXMgYXJlIGRpcmVjdGVkIHRvIHRoaXMgYWRkcmVzcy4KCiMgQXJndW1lbnRzCiogYGFkbWluYCAtIEFkbWluIGFkZHJlc3MgKG11c3QgcHJvdmlkZSBhdXRob3JpemF0aW9uKQoqIGBkZXBvc2l0X2FkZHJlc3NgIC0gQWRkcmVzcyB0byByZWNlaXZlIGNvbGxlY3RlZCBmZWVzAAAAAAAAE3NldF9kZXBvc2l0X2FkZHJlc3MAAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAA9kZXBvc2l0X2FkZHJlc3MAAAAAEwAAAAAAAAAAAAABCVNldHMgc3VwcG9ydGVkIGV4ZWN1dG9yIG9wdGlvbiB0eXBlcyBmb3IgYSBkZXN0aW5hdGlvbiBlbmRwb2ludC4KCiMgQXJndW1lbnRzCiogYGFkbWluYCAtIEFkbWluIGFkZHJlc3MgKG11c3QgcHJvdmlkZSBhdXRob3JpemF0aW9uKQoqIGBlaWRgIC0gRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpCiogYG9wdGlvbl90eXBlc2AgLSBTdXBwb3J0ZWQgb3B0aW9uIHR5cGVzLiBFYWNoIGJ5dGUgcmVwcmVzZW50cyBhbiBvcHRpb24gdHlwZS4AAAAAAAAac2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXMAAAAAAAMAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAADZWlkAAAAAAQAAAAAAAAADG9wdGlvbl90eXBlcwAAAA4AAAAAAAAAAAAAARJTZXRzIHRoZSB3b3JrZXIgZmVlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcy4KClRoZSBmZWUgbGlicmFyeSBjYWxjdWxhdGVzIGZlZXMgYmFzZWQgb24gZXhlY3V0b3Igb3B0aW9ucyBhbmQgcHJpY2UgZmVlZCBkYXRhLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gQWRtaW4gYWRkcmVzcyAobXVzdCBwcm92aWRlIGF1dGhvcml6YXRpb24pCiogYHdvcmtlcl9mZWVfbGliYCAtIEZlZSBsaWJyYXJ5IGNvbnRyYWN0IGFkZHJlc3MgaW1wbGVtZW50aW5nIGBJRXhlY3V0b3JGZWVMaWJgAAAAAAASc2V0X3dvcmtlcl9mZWVfbGliAAAAAAACAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAADndvcmtlcl9mZWVfbGliAAAAAAATAAAAAAAAAAAAAAESU2V0cyB0aGUgcHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzLgoKVGhlIHByaWNlIGZlZWQgcHJvdmlkZXMgZ2FzIHByaWNlcyBhbmQgZXhjaGFuZ2UgcmF0ZXMgZm9yIGNyb3NzLWNoYWluCmZlZSBjYWxjdWxhdGlvbnMuCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBBZG1pbiBhZGRyZXNzIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgcHJpY2VfZmVlZGAgLSBQcmljZSBmZWVkIGNvbnRyYWN0IGFkZHJlc3MgaW1wbGVtZW50aW5nIGBJTGF5ZXJaZXJvUHJpY2VGZWVkYAAAAAAADnNldF9wcmljZV9mZWVkAAAAAAACAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAACnByaWNlX2ZlZWQAAAAAABMAAAAAAAAAAAAAACVSZXR1cm5zIHdoZXRoZXIgdGhlIHdvcmtlciBpcyBwYXVzZWQuAAAAAAAABnBhdXNlZAAAAAAAAAAAAAEAAAABAAAAAAAAAFVSZXR1cm5zIHdoZXRoZXIgYW4gYWRkcmVzcyBpcyBhbiBhZG1pbi4KCiMgQXJndW1lbnRzCiogYGFkbWluYCAtIFRoZSBhZGRyZXNzIHRvIGNoZWNrAAAAAAAACGlzX2FkbWluAAAAAQAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAQAAAAEAAAAAAAAAHFJldHVybnMgYWxsIGFkbWluIGFkZHJlc3Nlcy4AAAAGYWRtaW5zAAAAAAAAAAAAAQAAA+oAAAATAAAAAAAAAG9SZXR1cm5zIHdoZXRoZXIgYSBtZXNzYWdlIGxpYnJhcnkgaXMgc3VwcG9ydGVkLgoKIyBBcmd1bWVudHMKKiBgbWVzc2FnZV9saWJgIC0gTWVzc2FnZSBsaWJyYXJ5IGNvbnRyYWN0IGFkZHJlc3MAAAAAGGlzX3N1cHBvcnRlZF9tZXNzYWdlX2xpYgAAAAEAAAAAAAAAC21lc3NhZ2VfbGliAAAAABMAAAABAAAAAQAAAAAAAABzUmV0dXJucyBhbGwgc3VwcG9ydGVkIG1lc3NhZ2UgbGlicmFyeSBhZGRyZXNzZXMuCgojIFJldHVybnMKVmVjdG9yIG9mIHN1cHBvcnRlZCBtZXNzYWdlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzc2VzLgAAAAAMbWVzc2FnZV9saWJzAAAAAAAAAAEAAAPqAAAAEwAAAAAAAABaUmV0dXJucyB3aGV0aGVyIGFuIE9BcHAgaXMgb24gdGhlIGFsbG93bGlzdC4KCiMgQXJndW1lbnRzCiogYG9hcHBgIC0gT0FwcCBjb250cmFjdCBhZGRyZXNzAAAAAAAPaXNfb25fYWxsb3dsaXN0AAAAAAEAAAAAAAAABG9hcHAAAAATAAAAAQAAAAEAAAAAAAAAMVJldHVybnMgdGhlIG51bWJlciBvZiBhZGRyZXNzZXMgb24gdGhlIGFsbG93bGlzdC4AAAAAAAAOYWxsb3dsaXN0X3NpemUAAAAAAAAAAAABAAAABAAAAAAAAABZUmV0dXJucyB3aGV0aGVyIGFuIE9BcHAgaXMgb24gdGhlIGRlbnlsaXN0LgoKIyBBcmd1bWVudHMKKiBgb2FwcGAgLSBPQXBwIGNvbnRyYWN0IGFkZHJlc3MAAAAAAAAOaXNfb25fZGVueWxpc3QAAAAAAAEAAAAAAAAABG9hcHAAAAATAAAAAQAAAAEAAAAAAAAA+VJldHVybnMgd2hldGhlciBhbiBPQXBwIGhhcyBhY2Nlc3MgY29udHJvbCBsaXN0IChBQ0wpIHBlcm1pc3Npb24uCgpBQ0wgZXZhbHVhdGlvbiBvcmRlcjoKMS4gSWYgb24gZGVueWxpc3Qg4oaSIGRlbmllZAoyLiBJZiBhbGxvd2xpc3QgaXMgZW1wdHkgT1Igb24gYWxsb3dsaXN0IOKGkiBhbGxvd2VkCjMuIE90aGVyd2lzZSDihpIgZGVuaWVkCgojIEFyZ3VtZW50cwoqIGBvYXBwYCAtIE9BcHAgY29udHJhY3QgYWRkcmVzcyB0byBjaGVjawAAAAAAAAdoYXNfYWNsAAAAAAEAAAAAAAAABG9hcHAAAAATAAAAAQAAAAEAAAAAAAAAM1JldHVybnMgdGhlIGRlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzLgAAAAAWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAAAAAAAAEAAAAEAAAAAAAAADVSZXR1cm5zIHRoZSBkZXBvc2l0IGFkZHJlc3Mgd2hlcmUgZmVlcyBhcmUgY29sbGVjdGVkLgAAAAAAAA9kZXBvc2l0X2FkZHJlc3MAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAAB8UmV0dXJucyBzdXBwb3J0ZWQgb3B0aW9uIHR5cGVzIGZvciBhIGRlc3RpbmF0aW9uIGVuZHBvaW50LgoKIyBBcmd1bWVudHMKKiBgZWlkYCAtIERlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKQAAABpnZXRfc3VwcG9ydGVkX29wdGlvbl90eXBlcwAAAAAAAQAAAAAAAAADZWlkAAAAAAQAAAABAAAD6AAAAA4AAAAAAAAAMFJldHVybnMgdGhlIHdvcmtlciBmZWUgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzLgAAAA53b3JrZXJfZmVlX2xpYgAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAAAoUmV0dXJucyB0aGUgcHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzLgAAAApwcmljZV9mZWVkAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAERBc3NpZ25zIGEgam9iIHRvIHRoZSBleGVjdXRvciBhbmQgcmV0dXJucyBmZWUgcmVjaXBpZW50IGluZm9ybWF0aW9uLgAAAAphc3NpZ25fam9iAAAAAAAFAAAAAAAAAAhzZW5kX2xpYgAAABMAAAAAAAAABnNlbmRlcgAAAAAAEwAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAA1jYWxsZGF0YV9zaXplAAAAAAAABAAAAAAAAAAHb3B0aW9ucwAAAAAOAAAAAQAAB9AAAAAMRmVlUmVjaXBpZW50AAAAAAAAADdDYWxjdWxhdGVzIHRoZSBleGVjdXRpb24gZmVlIGZvciBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuAAAAAAdnZXRfZmVlAAAAAAUAAAAAAAAACHNlbmRfbGliAAAAEwAAAAAAAAAGc2VuZGVyAAAAAAATAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAAAAAAADWNhbGxkYXRhX3NpemUAAAAAAAAEAAAAAAAAAAdvcHRpb25zAAAAAA4AAAABAAAACwAAAAAAAABAU2V0cyBkZXN0aW5hdGlvbi1zcGVjaWZpYyBjb25maWd1cmF0aW9ucyBmb3IgbXVsdGlwbGUgZW5kcG9pbnRzLgAAAA5zZXRfZHN0X2NvbmZpZwAAAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAAZwYXJhbXMAAAAAA+oAAAfQAAAAEVNldERzdENvbmZpZ1BhcmFtAAAAAAAAAAAAAAAAAAA+UmV0dXJucyB0aGUgZGVzdGluYXRpb24gY29uZmlndXJhdGlvbiBmb3IgYSBzcGVjaWZpYyBlbmRwb2ludC4AAAAAAApkc3RfY29uZmlnAAAAAAABAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAABAAAD6AAAB9AAAAAJRHN0Q29uZmlnAAAAAAAAAAAAAJFOYXRpdmUgdG9rZW4gZHJvcHMuCgpUcmFuc2ZlcnMgbmF0aXZlIHRva2VucyB0byBlYWNoIHJlY2VpdmVyIHNwZWNpZmllZCBpbiB0aGUgcGFyYW1ldGVycyBhbmQKdHJhY2tzIHRoZSBzdWNjZXNzL2ZhaWx1cmUgc3RhdHVzIG9mIGVhY2ggdHJhbnNmZXIuAAAAAAAAC25hdGl2ZV9kcm9wAAAAAAUAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAAAAAAABG9hcHAAAAATAAAAAAAAABJuYXRpdmVfZHJvcF9wYXJhbXMAAAAAA+oAAAfQAAAAEE5hdGl2ZURyb3BQYXJhbXMAAAAAAAAAAAAAACpSZXR1cm5zIHRoZSBlbmRwb2ludCBhZGRyZXNzIGZyb20gc3RvcmFnZS4AAAAAAAhlbmRwb2ludAAAAAAAAAABAAAAEwAAAAAAAAJJSW5pdGlhbGl6ZXMgdGhlIGV4ZWN1dG9yIGNvbnRyYWN0LgoKU2V0cyB1cCBvd25lcnNoaXAsIHdvcmtlciBjb25maWd1cmF0aW9uLCBhbmQgZW5kcG9pbnQgYWRkcmVzcy4KCiMgQXJndW1lbnRzCiogYGVuZHBvaW50YCAtIExheWVyWmVybyBFbmRwb2ludCBWMiBjb250cmFjdCBhZGRyZXNzCiogYG93bmVyYCAtIENvbnRyYWN0IG93bmVyIGFkZHJlc3MKKiBgYWRtaW5zYCAtIEluaXRpYWwgYWRtaW4gYWRkcmVzc2VzIChtdXN0IG5vdCBiZSBlbXB0eSkKKiBgbWVzc2FnZV9saWJzYCAtIFN1cHBvcnRlZCBtZXNzYWdlIGxpYnJhcnkgYWRkcmVzc2VzIChlLmcuLCBVTE4zMDIpCiogYHByaWNlX2ZlZWRgIC0gUHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzIGZvciBmZWUgY2FsY3VsYXRpb25zCiogYGRlZmF1bHRfbXVsdGlwbGllcl9icHNgIC0gRGVmYXVsdCBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKDEwMDAwID0gMXgpCiogYHdvcmtlcl9mZWVfbGliYCAtIFdvcmtlciBmZWUgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzCiogYGRlcG9zaXRfYWRkcmVzc2AgLSBBZGRyZXNzIHRvIHJlY2VpdmUgZmVlIHBheW1lbnRzAAAAAAAADV9fY29uc3RydWN0b3IAAAAAAAAIAAAAAAAAAAhlbmRwb2ludAAAABMAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAAGYWRtaW5zAAAAAAPqAAAAEwAAAAAAAAAMbWVzc2FnZV9saWJzAAAD6gAAABMAAAAAAAAACnByaWNlX2ZlZWQAAAAAABMAAAAAAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAQAAAAAAAAADndvcmtlcl9mZWVfbGliAAAAAAATAAAAAAAAAA9kZXBvc2l0X2FkZHJlc3MAAAAAEwAAAAAAAAAAAAAAsldpdGhkcmF3cyBhIHRva2VuIGZyb20gdGhlIGNvbnRyYWN0IHRvIGEgc3BlY2lmaWVkIGFkZHJlc3MuCgojIEFyZ3VtZW50cwoqIGB0b2tlbmAgLSBUaGUgdG9rZW4gY29udHJhY3QgYWRkcmVzcwoqIGB0b2AgLSBUaGUgcmVjaXBpZW50IGFkZHJlc3MKKiBgYW1vdW50YCAtIFRoZSBhbW91bnQgdG8gd2l0aGRyYXcAAAAAAA53aXRoZHJhd190b2tlbgAAAAAABAAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAAV0b2tlbgAAAAAAABMAAAAAAAAAAnRvAAAAAAATAAAAAAAAAAZhbW91bnQAAAAAAAsAAAAAAAAAAAAAAGxVcGdyYWRlcyB0aGUgY29udHJhY3QgdG8gbmV3IFdBU00gYnl0ZWNvZGUuClNldHMgYSBtaWdyYXRpb24gZmxhZyB0aGF0IG11c3QgYmUgY2xlYXJlZCBieSBjYWxsaW5nIGBtaWdyYXRlYC4AAAAHdXBncmFkZQAAAAABAAAAAAAAAA1uZXdfd2FzbV9oYXNoAAAAAAAD7gAAACAAAAAAAAAAAAAAAIdSdW5zIG1pZ3JhdGlvbiBsb2dpYyBhZnRlciBhbiB1cGdyYWRlLgpQYXJzZXMgWERSLWVuY29kZWQgYG1pZ3JhdGlvbl9kYXRhYCBhbmQgY2FsbHMgYF9fbWlncmF0ZWAuIENsZWFycyB0aGUgbWlncmF0aW9uIGZsYWcgb24gc3VjY2Vzcy4AAAAAB21pZ3JhdGUAAAAAAQAAAAAAAAAObWlncmF0aW9uX2RhdGEAAAAAAA4AAAAAAAAAAAAAAE9QZXJtYW5lbnRseSBmcmVlemVzIHRoZSBjb250cmFjdCwgcHJldmVudGluZyBhbnkgZnV0dXJlIHVwZ3JhZGVzLiBJcnJldmVyc2libGUuAAAAAAZmcmVlemUAAAAAAAAAAAAAAAAAAAAAADtSZXR1cm5zIHdoZXRoZXIgdGhlIGNvbnRyYWN0IGlzIGZyb3plbiAodXBncmFkZXMgZGlzYWJsZWQpLgAAAAAJaXNfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAKYXV0aG9yaXplcgAAAAAAAAAAAAEAAAATAAAAAAAAAD5SZXR1cm5zIHRoZSBjdXJyZW50IG93bmVyIGFkZHJlc3MsIG9yIE5vbmUgaWYgbm8gb3duZXIgaXMgc2V0LgAAAAAABW93bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAABZUmV0dXJucyB0aGUgcGVuZGluZyBvd25lciBhZGRyZXNzIGZvciAyLXN0ZXAgdHJhbnNmZXIsIG9yIE5vbmUgaWYgbm8gdHJhbnNmZXIgaXMgcGVuZGluZy4AAAAAAAANcGVuZGluZ19vd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAABK1RyYW5zZmVycyBvd25lcnNoaXAgaW1tZWRpYXRlbHkgdG8gYSBuZXcgYWRkcmVzcy4KClVzZSB3aXRoIGNhdXRpb24gLSBpZiB5b3UgdHJhbnNmZXIgdG8gYSB3cm9uZyBhZGRyZXNzLCBvd25lcnNoaXAgaXMgbG9zdCBmb3JldmVyLgpDb25zaWRlciB1c2luZyBgcHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXJgIGluc3RlYWQuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzAAAAABJ0cmFuc2Zlcl9vd25lcnNoaXAAAAAAAAEAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAlxQcm9wb3NlcyBhbiBvd25lcnNoaXAgdHJhbnNmZXIgdG8gYSBuZXcgYWRkcmVzcy4KClRoZSBuZXcgb3duZXIgbXVzdCBjYWxsIGBhY2NlcHRfb3duZXJzaGlwKClgIHdpdGhpbiBgdHRsYCBsZWRnZXJzCnRvIGNvbXBsZXRlIHRoZSB0cmFuc2Zlci4gVGhlIHBlbmRpbmcgdHJhbnNmZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGV4cGlyZSBhZnRlci4KCiMgQXJndW1lbnRzCi0gYG5ld19vd25lcmAgLSBUaGUgcHJvcG9zZWQgbmV3IG93bmVyCi0gYHR0bGAgLSBOdW1iZXIgb2YgbGVkZ2VycyB0aGUgbmV3IG93bmVyIGhhcyB0byBhY2NlcHQuClVzZSBgMGAgdG8gY2FuY2VsIGEgcGVuZGluZyB0cmFuc2ZlciAobmV3X293bmVyIG11c3QgbWF0Y2ggcGVuZGluZykuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgd2hlbiBjYW5jZWxsaW5nIGFuZCBubyBwZW5kaW5nIHRyYW5zZmVyIGV4aXN0cwotIGBJbnZhbGlkVHRsYCBpZiB0dGwgZXhjZWVkcyBtYXggVFRMCi0gYEludmFsaWRQZW5kaW5nT3duZXJgIHdoZW4gY2FuY2VsbGluZyB3aXRoIHdyb25nIG5ld19vd25lciBhZGRyZXNzAAAAGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAAAAAAACAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAN0dGwAAAAABAAAAAAAAAAAAAAAuUFjY2VwdHMgYSBwZW5kaW5nIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIuCgpNdXN0IGJlIGNhbGxlZCBieSB0aGUgcGVuZGluZyBvd25lciBiZWZvcmUgdGhlIFRUTCBleHBpcmVzLgoKIyBQYW5pY3MKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIGlmIHRoZXJlIGlzIG5vIHBlbmRpbmcgdHJhbnNmZXIgKG9yIGl0IGV4cGlyZWQpAAAAAAAAEGFjY2VwdF9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAACkUGVybWFuZW50bHkgcmVub3VuY2VzIG93bmVyc2hpcC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MgKGNhbmNlbCBpdCBmaXJzdCkAAAAScmVub3VuY2Vfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAAAAClRXh0ZW5kcyB0aGUgaW5zdGFuY2UgVFRMLgoKIyBBcmd1bWVudHMKCiogYHRocmVzaG9sZGAgLSBUaGUgdGhyZXNob2xkIHRvIGV4dGVuZCB0aGUgVFRMIChpZiBjdXJyZW50IFRUTCBpcyBiZWxvdyB0aGlzLCBleHRlbmQpLgoqIGBleHRlbmRfdG9gIC0gVGhlIFRUTCB0byBleHRlbmQgdG8uAAAAAAAAE2V4dGVuZF9pbnN0YW5jZV90dGwAAAAAAgAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAJZXh0ZW5kX3RvAAAAAAAABAAAAAAAAAAAAAABj1NldHMgVFRMIGNvbmZpZ3MgZm9yIGluc3RhbmNlIGFuZCBwZXJzaXN0ZW50IHN0b3JhZ2UuCgotIGBOb25lYCB2YWx1ZXMgcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGNvbmZpZyAoZGlzYWJsZXMgYXV0by1leHRlbnNpb24gZm9yIHRoYXQgdHlwZSkKLSBWYWxpZGF0ZXMgdGhhdCBgdGhyZXNob2xkIDw9IGV4dGVuZF90byA8PSBNQVhfVFRMYAoKIyBBcmd1bWVudHMKLSBgaW5zdGFuY2VgIC0gVFRMIGNvbmZpZyBmb3IgaW5zdGFuY2Ugc3RvcmFnZQotIGBwZXJzaXN0ZW50YCAtIFRUTCBjb25maWcgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZQoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnRnJvemVuYCBpZiBjb25maWdzIGFyZSBmcm96ZW4KLSBgSW52YWxpZFR0bENvbmZpZ2AgaWYgdmFsaWRhdGlvbiBmYWlscwAAAAAPc2V0X3R0bF9jb25maWdzAAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAADhUGVybWFuZW50bHkgZnJlZXplcyBUVEwgY29uZmlncywgcHJldmVudGluZyBhbnkgZnV0dXJlIG1vZGlmaWNhdGlvbnMuCgpUaGlzIGlzIGlycmV2ZXJzaWJsZSBhbmQgcHJvdmlkZXMgaW1tdXRhYmlsaXR5IGd1YXJhbnRlZXMgdG8gdXNlcnMuCkVtaXRzIGBUdGxDb25maWdzRnJvemVuYCBldmVudC4KCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0FscmVhZHlGcm96ZW5gIGlmIGFscmVhZHkgZnJvemVuAAAAAAAAEmZyZWV6ZV90dGxfY29uZmlncwAAAAAAAAAAAAAAAAAAAAAAJ1JldHVybnMgd2hldGhlciBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAgAAAAAAAAAAAAAAD0V4ZWN1dG9yU3RvcmFnZQAAAAACAAAAAQAAAAAAAAAJRHN0Q29uZmlnAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAhFbmRwb2ludAAAAAUAAAAAAAAAAAAAAApQYWNrZXRTZW50AAAAAAABAAAAC3BhY2tldF9zZW50AAAAAAMAAAAAAAAADmVuY29kZWRfcGFja2V0AAAAAAAOAAAAAAAAAAAAAAAHb3B0aW9ucwAAAAAOAAAAAAAAAAAAAAAMc2VuZF9saWJyYXJ5AAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAADlBhY2tldFZlcmlmaWVkAAAAAAABAAAAD3BhY2tldF92ZXJpZmllZAAAAAADAAAAAAAAAAZvcmlnaW4AAAAAB9AAAAAGT3JpZ2luAAAAAAABAAAAAAAAAAhyZWNlaXZlcgAAABMAAAABAAAAAAAAAAxwYXlsb2FkX2hhc2gAAAPuAAAAIAAAAAAAAAACAAAABQAAAAAAAAAAAAAAD1BhY2tldERlbGl2ZXJlZAAAAAABAAAAEHBhY2tldF9kZWxpdmVyZWQAAAAC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b2ludEVycm9yAAAAAAAAGQAAAC9MaWJyYXJ5IGlzIGFscmVhZHkgcmVnaXN0ZXJlZCB3aXRoIHRoZSBlbmRwb2ludAAAAAARQWxyZWFkeVJlZ2lzdGVyZWQAAAAAAAABAAAANkNvbXBvc2UgbWVzc2FnZSBhbHJlYWR5IGV4aXN0cyBmb3IgdGhpcyBHVUlEIGFuZCBpbmRleAAAAAAADUNvbXBvc2VFeGlzdHMAAAAAAAACAAAANkNvbXBvc2UgbWVzc2FnZSBub3QgZm91bmQgZm9yIHRoZSBnaXZlbiBHVUlEIGFuZCBpbmRleAAAAAAAD0NvbXBvc2VOb3RGb3VuZAAAAAADAAAAOkRlZmF1bHQgcmVjZWl2ZSBsaWJyYXJ5IGlzIG5vdCBzZXQgZm9yIHRoZSBzb3VyY2UgZW5kcG9pbnQAAAAAABxEZWZhdWx0UmVjZWl2ZUxpYlVuYXZhaWxhYmxlAAAABAAAADxEZWZhdWx0IHNlbmQgbGlicmFyeSBpcyBub3Qgc2V0IGZvciB0aGUgZGVzdGluYXRpb24gZW5kcG9pbnQAAAAZRGVmYXVsdFNlbmRMaWJVbmF2YWlsYWJsZQAAAAAAAAUAAAAvU3VwcGxpZWQgbmF0aXZlIHRva2VuIGZlZSBpcyBsZXNzIHRoYW4gcmVxdWlyZWQAAAAAFUluc3VmZmljaWVudE5hdGl2ZUZlZQAAAAAAAAYAAAAsU3VwcGxpZWQgWlJPIHRva2VuIGZlZSBpcyBsZXNzIHRoYW4gcmVxdWlyZWQAAAASSW5zdWZmaWNpZW50WnJvRmVlAAAAAAAHAAAAK1RpbWVvdXQgZXhwaXJ5IGlzIGludmFsaWQgKGFscmVhZHkgZXhwaXJlZCkAAAAADUludmFsaWRFeHBpcnkAAAAAAAAIAAAAIEZlZSBhbW91bnQgaXMgaW52YWxpZCAobmVnYXRpdmUpAAAAEEludmFsaWRGZWVBbW91bnQAAAAJAAAAK0NvbXBvc2UgaW5kZXggZXhjZWVkcyBtYXhpbXVtIGFsbG93ZWQgdmFsdWUAAAAADEludmFsaWRJbmRleAAAAAoAAAAsTm9uY2UgaXMgaW52YWxpZCBmb3IgdGhlIHJlcXVlc3RlZCBvcGVyYXRpb24AAAAMSW52YWxpZE5vbmNlAAAACwAAADBQYXlsb2FkIGhhc2ggaXMgaW52YWxpZCAoZW1wdHkgaGFzaCBub3QgYWxsb3dlZCkAAAASSW52YWxpZFBheWxvYWRIYXNoAAAAAAAMAAAAQVJlY2VpdmUgbGlicmFyeSBpcyBub3QgdmFsaWQgZm9yIHRoZSByZWNlaXZlciBhbmQgc291cmNlIGVuZHBvaW50AAAAAAAAFUludmFsaWRSZWNlaXZlTGlicmFyeQAAAAAAAA0AAAAxT3BlcmF0aW9uIHJlcXVpcmVzIGEgbm9uLWRlZmF1bHQgKGN1c3RvbSkgbGlicmFyeQAAAAAAABFPbmx5Tm9uRGVmYXVsdExpYgAAAAAAAA4AAAAnTGlicmFyeSBtdXN0IHN1cHBvcnQgcmVjZWl2aW5nIG1lc3NhZ2VzAAAAAA5Pbmx5UmVjZWl2ZUxpYgAAAAAADwAAACxMaWJyYXJ5IG11c3QgYmUgcmVnaXN0ZXJlZCB3aXRoIHRoZSBlbmRwb2ludAAAABFPbmx5UmVnaXN0ZXJlZExpYgAAAAAAABAAAAAlTGlicmFyeSBtdXN0IHN1cHBvcnQgc2VuZGluZyBtZXNzYWdlcwAAAAAAAAtPbmx5U2VuZExpYgAAAAARAAAAOU1lc3NhZ2luZyBwYXRoIGNhbm5vdCBiZSBpbml0aWFsaXplZCBmb3IgdGhlIGdpdmVuIG9yaWdpbgAAAAAAABRQYXRoTm90SW5pdGlhbGl6YWJsZQAAABIAAAAvTWVzc2FnZSBjYW5ub3QgYmUgdmVyaWZpZWQgZm9yIHRoZSBnaXZlbiBvcmlnaW4AAAAAEVBhdGhOb3RWZXJpZmlhYmxlAAAAAAAAEwAAACtQYXlsb2FkIGhhc2ggZG9lcyBub3QgbWF0Y2ggdGhlIHN0b3JlZCBoYXNoAAAAABNQYXlsb2FkSGFzaE5vdEZvdW5kAAAAABQAAAAnTmV3IHZhbHVlIGlzIHRoZSBzYW1lIGFzIGV4aXN0aW5nIHZhbHVlAAAAAAlTYW1lVmFsdWUAAAAAAAAVAAAAL0NhbGxlciBpcyBub3QgYXV0aG9yaXplZCAobm90IE9BcHAgb3IgZGVsZWdhdGUpAAAAAAxVbmF1dGhvcml6ZWQAAAAWAAAAK0VuZHBvaW50IElEIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGxpYnJhcnkAAAAADlVuc3VwcG9ydGVkRWlkAAAAAAAXAAAAOVpSTyBmZWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybyB3aGVuIHBheV9pbl96cm8gaXMgdHJ1ZQAAAAAAAApaZXJvWnJvRmVlAAAAAAAYAAAAHFpSTyB0b2tlbiBhZGRyZXNzIGlzIG5vdCBzZXQAAAAOWnJvVW5hdmFpbGFibGUAAAAAABkAAAABAAAALVBhcmFtZXRlcnMgZm9yIHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAAAAPTWVzc2FnaW5nUGFyYW1zAAAAAAUAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAHFRoZSBtZXNzYWdlIHBheWxvYWQgdG8gc2VuZC4AAAAHbWVzc2FnZQAAAAAOAAAAIUVuY29kZWQgZXhlY3V0b3IgYW5kIERWTiBvcHRpb25zLgAAAAAAAAdvcHRpb25zAAAAAA4AAAA5V2hldGhlciB0byBwYXkgZmVlcyBpbiBaUk8gdG9rZW4gaW5zdGVhZCBvZiBuYXRpdmUgdG9rZW4uAAAAAAAACnBheV9pbl96cm8AAAAAAAEAAAA1UmVjZWl2ZXIgYWRkcmVzcyBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAAEAAABNU291cmNlIG1lc3NhZ2UgaW5mb3JtYXRpb24gaWRlbnRpZnlpbmcgd2hlcmUgYSBjcm9zcy1jaGFpbiBtZXNzYWdlIGNhbWUgZnJvbS4AAAAAAAAAAAAABk9yaWdpbgAAAAAAAwAAABdOb25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAAFbm9uY2UAAAAAAAAGAAAALlNlbmRlciBhZGRyZXNzIG9uIHRoZSBzb3VyY2UgY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAZzZW5kZXIAAAAAA+4AAAAgAAAAJlNvdXJjZSBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAAChGZWUgc3RydWN0dXJlIGZvciBjcm9zcy1jaGFpbiBtZXNzYWdpbmcuAAAAAAAAAAxNZXNzYWdpbmdGZWUAAAACAAAAH0ZlZSBwYWlkIGluIG5hdGl2ZSB0b2tlbiAoWExNKS4AAAAACm5hdGl2ZV9mZWUAAAAAAAsAAAAoRmVlIHBhaWQgaW4gWlJPIHRva2VuIChMYXllclplcm8gdG9rZW4pLgAAAAd6cm9fZmVlAAAAAAsAAAABAAAAQlJlY2VpcHQgcmV0dXJuZWQgYWZ0ZXIgc3VjY2Vzc2Z1bGx5IHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAABBNZXNzYWdpbmdSZWNlaXB0AAAAAwAAAClUaGUgZmVlcyBjaGFyZ2VkIGZvciBzZW5kaW5nIHRoZSBtZXNzYWdlLgAAAAAAAANmZWUAAAAH0AAAAAxNZXNzYWdpbmdGZWUAAAArR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBtZXNzYWdlLgAAAAAEZ3VpZAAAA+4AAAAgAAAAJFRoZSBvdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAACAAAAOFR5cGUgb2YgbWVzc2FnZSBsaWJyYXJ5IGluZGljYXRpbmcgc3VwcG9ydGVkIG9wZXJhdGlvbnMuAAAAAAAAAA5NZXNzYWdlTGliVHlwZQAAAAAAAwAAAAAAAAAfU3VwcG9ydHMgb25seSBzZW5kaW5nIG1lc3NhZ2VzLgAAAAAEU2VuZAAAAAAAAAAhU3VwcG9ydHMgb25seSByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAAB1JlY2VpdmUAAAAAAAAAAC1TdXBwb3J0cyBib3RoIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAOU2VuZEFuZFJlY2VpdmUAAAAAAAEAAAC3VmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgYSBtZXNzYWdlIGxpYnJhcnkuCgpOb3RlOiBgbWlub3JgIGFuZCBgZW5kcG9pbnRfdmVyc2lvbmAgdXNlIGB1MzJgIGluc3RlYWQgb2YgYHU4YCBiZWNhdXNlIFN0ZWxsYXIgZG9lcyBub3QKc3VwcG9ydCBgdThgIHR5cGVzIGluIGNvbnRyYWN0IGludGVyZmFjZSBmdW5jdGlvbnMuAAAAAAAAAAARTWVzc2FnZUxpYlZlcnNpb24AAAAAAAADAAAAM0VuZHBvaW50IHZlcnNpb24gKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAQZW5kcG9pbnRfdmVyc2lvbgAAAAQAAAAVTWFqb3IgdmVyc2lvbiBudW1iZXIuAAAAAAAABW1ham9yAAAAAAAABgAAADdNaW5vciB2ZXJzaW9uIG51bWJlciAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAAAVtaW5vcgAAAAAAAAQAAAABAAAANlRpbWVvdXQgY29uZmlndXJhdGlvbiBmb3IgcmVjZWl2ZSBsaWJyYXJ5IHRyYW5zaXRpb25zLgAAAAAAAAAAAAdUaW1lb3V0AAAAAAIAAAAzVW5peCB0aW1lc3RhbXAgaW4gc2Vjb25kcyB3aGVuIHRoZSB0aW1lb3V0IGV4cGlyZXMuAAAAAAZleHBpcnkAAAAAAAYAAABDVGhlIG9sZCBsaWJyYXJ5IGFkZHJlc3MgdGhhdCByZW1haW5zIHZhbGlkIGR1cmluZyB0aGUgZ3JhY2UgcGVyaW9kLgAAAAADbGliAAAAABMAAAABAAAANVBhcmFtZXRlcnMgZm9yIHNldHRpbmcgbWVzc2FnZSBsaWJyYXJ5IGNvbmZpZ3VyYXRpb24uAAAAAAAAAAAAAA5TZXRDb25maWdQYXJhbQAAAAAAAwAAAB9YRFItZW5jb2RlZCBjb25maWd1cmF0aW9uIGRhdGEuAAAAAAZjb25maWcAAAAAAA4AAAAwVGhlIHR5cGUgb2YgY29uZmlndXJhdGlvbiAoZS5nLiwgZXhlY3V0b3IsIFVMTikuAAAAC2NvbmZpZ190eXBlAAAAAAQAAAAnVGhlIGVuZHBvaW50IElEIHRoaXMgY29uZmlnIGFwcGxpZXMgdG8uAAAAAANlaWQAAAAABAAAAAEAAAAxUmVzb2x2ZWQgbGlicmFyeSBpbmZvcm1hdGlvbiB3aXRoIGRlZmF1bHQgc3RhdHVzLgAAAAAAAAAAAAAPUmVzb2x2ZWRMaWJyYXJ5AAAAAAIAAABEV2hldGhlciB0aGlzIGlzIHRoZSBkZWZhdWx0IGxpYnJhcnkgKHRydWUpIG9yIE9BcHAtc3BlY2lmaWMgKGZhbHNlKS4AAAAKaXNfZGVmYXVsdAAAAAAAAQAAAB1UaGUgcmVzb2x2ZWQgbGlicmFyeSBhZGRyZXNzLgAAAAAAAANsaWIAAAAAEwAAAAEAAABIT3V0Ym91bmQgcGFja2V0IGNvbnRhaW5pbmcgYWxsIGluZm9ybWF0aW9uIGZvciBjcm9zcy1jaGFpbiB0cmFuc21pc3Npb24uAAAAAAAAAA5PdXRib3VuZFBhY2tldAAAAAAABwAAABhEZXN0aW5hdGlvbiBlbmRwb2ludCBJRC4AAAAHZHN0X2VpZAAAAAAEAAAALEdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIG1lc3NhZ2UuAAAABGd1aWQAAAPuAAAAIAAAABRUaGUgbWVzc2FnZSBwYXlsb2FkLgAAAAdtZXNzYWdlAAAAAA4AAAAgT3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAMVJlY2VpdmVyIGFkZHJlc3Mgb24gZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAB9TZW5kZXIgYWRkcmVzcyBvbiBzb3VyY2UgY2hhaW4uAAAAAAZzZW5kZXIAAAAAABMAAAATU291cmNlIGVuZHBvaW50IElELgAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAACtBIGZlZSByZWNpcGllbnQgd2l0aCB0aGUgYW1vdW50IHRvIGJlIHBhaWQuAAAAAAAAAAAMRmVlUmVjaXBpZW50AAAAAgAAABVBbW91bnQgb2YgZmVlIHRvIHBheS4AAAAAAAAGYW1vdW50AAAAAAALAAAAH1RoZSBhZGRyZXNzIHRvIHNlbmQgdGhlIGZlZSB0by4AAAAAAnRvAAAAAAATAAAAAQAAADxSZXN1bHQgb2Ygc2VuZCBvcGVyYXRpb24gY29udGFpbmluZyBmZWVzIGFuZCBlbmNvZGVkIHBhY2tldC4AAAAAAAAADUZlZXNBbmRQYWNrZXQAAAAAAAADAAAAKlRoZSBlbmNvZGVkIHBhY2tldCByZWFkeSBmb3IgdHJhbnNtaXNzaW9uLgAAAAAADmVuY29kZWRfcGFja2V0AAAAAAAOAAAAP0xpc3Qgb2YgbmF0aXZlIHRva2VuIGZlZSByZWNpcGllbnRzIChleGVjdXRvciwgRFZOcywgdHJlYXN1cnkpLgAAAAAVbmF0aXZlX2ZlZV9yZWNpcGllbnRzAAAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAALExpc3Qgb2YgWlJPIHRva2VuIGZlZSByZWNpcGllbnRzICh0cmVhc3VyeSkuAAAAEnpyb19mZWVfcmVjaXBpZW50cwAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAAAQAAAOFQYXJhbWV0ZXJzIGZvciBEVk4gZmVlIGNhbGN1bGF0aW9uLgoKQ29udGFpbnMgYWxsIGlucHV0cyBuZWVkZWQgYnkgdGhlIGZlZSBsaWJyYXJ5IHRvIGNhbGN1bGF0ZSB2ZXJpZmljYXRpb24gZmVlcwpmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnZXMuIEluY2x1ZGVzIG1lc3NhZ2UgcGFyYW1ldGVycywgY29tbW9uIGNvbmZpZ3VyYXRpb24sCmFuZCBkZXN0aW5hdGlvbi1zcGVjaWZpYyBzZXR0aW5ncy4AAAAAAAAAAAAADER2bkZlZVBhcmFtcwAAAAoAAAAnTnVtYmVyIG9mIGJsb2NrIGNvbmZpcm1hdGlvbnMgcmVxdWlyZWQuAAAAAA1jb25maXJtYXRpb25zAAAAAAAABgAAAExEZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAodXNlZCBpZiBubyBkc3Qtc3BlY2lmaWMgbXVsdGlwbGllcikuAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAQAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAI01pbmltdW0gZmVlIG1hcmdpbiBpbiBVU0QgKHNjYWxlZCkuAAAAABBmbG9vcl9tYXJnaW5fdXNkAAAACgAAARA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpEZXN0aW5hdGlvbi1TcGVjaWZpYyBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkdhcyBlc3RpbWF0ZSBmb3IgdmVyaWZpY2F0aW9uIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAANnYXMAAAAACgAAAEZEZXN0aW5hdGlvbi1zcGVjaWZpYyBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKDAgPSB1c2UgZGVmYXVsdCkuAAAAAAAObXVsdGlwbGllcl9icHMAAAAAAAQAAAALRFZOIG9wdGlvbnMAAAAAB29wdGlvbnMAAAAADgAAARA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDb21tb24gQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpQcmljZSBmZWVkIGNvbnRyYWN0IGFkZHJlc3MgZm9yIGdhcyBwcmljZSBhbmQgZXhjaGFuZ2UgcmF0ZSBkYXRhLgAAAApwcmljZV9mZWVkAAAAAAATAAAAJ051bWJlciBvZiByZXF1aXJlZCBzaWduYXR1cmVzIChxdW9ydW0pLgAAAAAGcXVvcnVtAAAAAAAEAAAA5T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ck1lc3NhZ2UgUGFyYW1ldGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgT0FwcCBzZW5kZXIgYWRkcmVzcy4AAAAAAAAGc2VuZGVyAAAAAAATAAAAAQAAAONQYXJhbWV0ZXJzIGZvciBleGVjdXRvciBmZWUgY2FsY3VsYXRpb24uCgpDb250YWlucyBhbGwgaW5wdXRzIG5lZWRlZCBieSB0aGUgZmVlIGxpYnJhcnkgdG8gY2FsY3VsYXRlIGV4ZWN1dGlvbiBmZWVzCmZvciBjcm9zcy1jaGFpbiBtZXNzYWdlcy4gSW5jbHVkZXMgbWVzc2FnZSBwYXJhbWV0ZXJzLCBjb21tb24gY29uZmlndXJhdGlvbiwKYW5kIGRlc3RpbmF0aW9uLXNwZWNpZmljIHNldHRpbmdzLgAAAAAAAAAACUZlZVBhcmFtcwAAAAAAAAsAAAAmU2l6ZSBvZiB0aGUgbWVzc2FnZSBjYWxsZGF0YSBpbiBieXRlcy4AAAAAAA1jYWxsZGF0YV9zaXplAAAAAAAABAAAAExEZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAodXNlZCBpZiBubyBkc3Qtc3BlY2lmaWMgbXVsdGlwbGllcikuAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAQAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAI01pbmltdW0gZmVlIG1hcmdpbiBpbiBVU0QgKHNjYWxlZCkuAAAAABBmbG9vcl9tYXJnaW5fdXNkAAAACgAAADZCYXNlIGdhcyBmb3IgZWFjaCBsekNvbXBvc2UgY2FsbCBvbiBkZXN0aW5hdGlvbiBjaGFpbi4AAAAAABNsel9jb21wb3NlX2Jhc2VfZ2FzAAAAAAYAAAETPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KRGVzdGluYXRpb24tU3BlY2lmaWMgQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpCYXNlIGdhcyBmb3IgbHpSZWNlaXZlIGV4ZWN1dGlvbiBvbiBkZXN0aW5hdGlvbiBjaGFpbi4AAAAAE2x6X3JlY2VpdmVfYmFzZV9nYXMAAAAABgAAAEZEZXN0aW5hdGlvbi1zcGVjaWZpYyBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKDAgPSB1c2UgZGVmYXVsdCkuAAAAAAAObXVsdGlwbGllcl9icHMAAAAAAAQAAAAsTWF4aW11bSBuYXRpdmUgdG9rZW4gdmFsdWUgdGhhdCBjYW4gYmUgc2VudC4AAAAKbmF0aXZlX2NhcAAAAAAACgAAAEZFbmNvZGVkIGV4ZWN1dG9yIG9wdGlvbnMgKGx6UmVjZWl2ZSBnYXMsIGx6Q29tcG9zZSwgbmF0aXZlRHJvcCwgZXRjLikuAAAAAAAHb3B0aW9ucwAAAAAOAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNvbW1vbiBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcyBmb3IgZ2FzIHByaWNlIGFuZCBleGNoYW5nZSByYXRlIGRhdGEuAAAACnByaWNlX2ZlZWQAAAAAABMAAADlPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KTWVzc2FnZSBQYXJhbWV0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBPQXBwIHNlbmRlciBhZGRyZXNzLgAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAAhEdhcyBwcmljZSBpbmZvcm1hdGlvbiBmb3IgYSBkZXN0aW5hdGlvbiBlbmRwb2ludC4KCkNvbnRhaW5zIHRoZSBleGNoYW5nZSByYXRlIGFuZCBnYXMgY29zdHMgbmVlZGVkIGZvciBjcm9zcy1jaGFpbiBmZWUgY2FsY3VsYXRpb25zLgAAAAAAAAAFUHJpY2UAAAAAAAADAAAAN0dhcyBjb3N0IHBlciBieXRlIG9mIGNhbGxkYXRhIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi4AAAAADGdhc19wZXJfYnl0ZQAAAAQAAABCR2FzIHByaWNlIGluIHRoZSBzbWFsbGVzdCB1bml0ICh3ZWkgZm9yIEVWTSwgc3Ryb29wcyBmb3IgU3RlbGxhcikuAAAAAAARZ2FzX3ByaWNlX2luX3VuaXQAAAAAAAAGAAAAqVByaWNlIHJhdGlvID0gKHJlbW90ZSBuYXRpdmUgdG9rZW4gcHJpY2UgLyBsb2NhbCBuYXRpdmUgdG9rZW4gcHJpY2UpICogUFJJQ0VfUkFUSU9fREVOT01JTkFUT1IuClVzZWQgdG8gY29udmVydCBkZXN0aW5hdGlvbiBjaGFpbiBnYXMgY29zdHMgdG8gc291cmNlIGNoYWluIG5hdGl2ZSB0b2tlbi4AAAAAAAALcHJpY2VfcmF0aW8AAAAACgAAAAEAAACARmVlIGVzdGltYXRpb24gcmVzdWx0IHdpdGggZGV0YWlsZWQgYnJlYWtkb3duLgoKQ29udGFpbnMgdGhlIGNhbGN1bGF0ZWQgZmVlIGFuZCBhbGwgaW50ZXJtZWRpYXRlIHZhbHVlcyB1c2VkIGluIHRoZSBjYWxjdWxhdGlvbi4AAAAAAAAAC0ZlZUVzdGltYXRlAAAAAAQAAAAwU291cmNlIGNoYWluIG5hdGl2ZSB0b2tlbiBwcmljZSBpbiBVU0QgKHNjYWxlZCkuAAAAEG5hdGl2ZV9wcmljZV91c2QAAAAKAAAAJVByaWNlIHJhdGlvIHVzZWQgZm9yIHRoZSBjYWxjdWxhdGlvbi4AAAAAAAALcHJpY2VfcmF0aW8AAAAACgAAADJEZW5vbWluYXRvciBmb3IgdGhlIHByaWNlIHJhdGlvICh0eXBpY2FsbHkgMTBeMjApLgAAAAAAF3ByaWNlX3JhdGlvX2Rlbm9taW5hdG9yAAAAAAoAAAAxVG90YWwgZ2FzIGZlZSBpbiBzb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuIHVuaXRzLgAAAAAAAA10b3RhbF9nYXNfZmVlAAAAAAAACwAAAAQAAAAdUGFja2V0Q29kZWNWMUVycm9yOiAxMTAwLTExMDkAAAAAAAAAAAAAElBhY2tldENvZGVjVjFFcnJvcgAAAAAAAgAAAAAAAAATSW52YWxpZFBhY2tldEhlYWRlcgAAAARMAAAAAAAAABRJbnZhbGlkUGFja2V0VmVyc2lvbgAABE0AAAAEAAAAHVdvcmtlck9wdGlvbnNFcnJvcjogMTExMC0xMTE5AAAAAAAAAAAAABJXb3JrZXJPcHRpb25zRXJyb3IAAAAAAAkAAAAAAAAAEkludmFsaWRCeXRlc0xlbmd0aAAAAAAEVgAAAAAAAAAZSW52YWxpZExlZ2FjeU9wdGlvbnNUeXBlMQAAAAAABFcAAAAAAAAAGUludmFsaWRMZWdhY3lPcHRpb25zVHlwZTIAAAAAAARYAAAAAAAAABFJbnZhbGlkT3B0aW9uVHlwZQAAAAAABFkAAAAAAAAADkludmFsaWRPcHRpb25zAAAAAARaAAAAAAAAAA9JbnZhbGlkV29ya2VySWQAAAAEWwAAAAAAAAAdTGVnYWN5T3B0aW9uc1R5cGUxR2FzT3ZlcmZsb3cAAAAAAARcAAAAAAAAACBMZWdhY3lPcHRpb25zVHlwZTJBbW91bnRPdmVyZmxvdwAABF0AAAAAAAAAHUxlZ2FjeU9wdGlvbnNUeXBlMkdhc092ZXJmbG93AAAAAAAEXgAAAAQAAAAcQnVmZmVyUmVhZGVyRXJyb3I6IDEwMDAtMTAwOQAAAAAAAAARQnVmZmVyUmVhZGVyRXJyb3IAAAAAAAACAAAAAAAAAA1JbnZhbGlkTGVuZ3RoAAAAAAAD6AAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD6QAAAAQAAAAcQnVmZmVyV3JpdGVyRXJyb3I6IDEwMTAtMTAxOQAAAAAAAAARQnVmZmVyV3JpdGVyRXJyb3IAAAAAAAABAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPyAAAABAAAAB9UdGxDb25maWd1cmFibGVFcnJvcjogMTAyMC0xMDI5AAAAAAAAAAAUVHRsQ29uZmlndXJhYmxlRXJyb3IAAAADAAAAAAAAABBJbnZhbGlkVHRsQ29uZmlnAAAD/AAAAAAAAAAPVHRsQ29uZmlnRnJvemVuAAAAA/0AAAAAAAAAFlR0bENvbmZpZ0FscmVhZHlGcm96ZW4AAAAAA/4AAAAEAAAAF093bmFibGVFcnJvcjogMTAzMC0xMDM5AAAAAAAAAAAMT3duYWJsZUVycm9yAAAABwAAAAAAAAARSW52YWxpZEF1dGhvcml6ZXIAAAAAAAQGAAAAAAAAABNJbnZhbGlkUGVuZGluZ093bmVyAAAABAcAAAAAAAAACkludmFsaWRUdGwAAAAABAgAAAAAAAAAEU5vUGVuZGluZ1RyYW5zZmVyAAAAAAAECQAAAAAAAAAPT3duZXJBbHJlYWR5U2V0AAAABAoAAAAAAAAAC093bmVyTm90U2V0AAAABAsAAAAAAAAAElRyYW5zZmVySW5Qcm9ncmVzcwAAAAAEDAAAAAQAAAAYQnl0ZXNFeHRFcnJvcjogMTA0MC0xMDQ5AAAAAAAAAA1CeXRlc0V4dEVycm9yAAAAAAAAAQAAAAAAAAAOTGVuZ3RoTWlzbWF0Y2gAAAAABBAAAAAEAAAAG1VwZ3JhZGVhYmxlRXJyb3I6IDEwNTAtMTA1OQAAAAAAAAAAEFVwZ3JhZGVhYmxlRXJyb3IAAAADAAAAAAAAABRJbnZhbGlkTWlncmF0aW9uRGF0YQAABBoAAAAAAAAAE01pZ3JhdGlvbk5vdEFsbG93ZWQAAAAEGwAAAAAAAAAOVXBncmFkZXNGcm96ZW4AAAAABBwAAAAEAAAAGE11bHRpU2lnRXJyb3I6IDEwNjAtMTA2OQAAAAAAAAANTXVsdGlTaWdFcnJvcgAAAAAAAAkAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAEJAAAAAAAAAARSW52YWxpZEF1dGhvcml6ZXIAAAAAAAQlAAAAAAAAAA1JbnZhbGlkU2lnbmVyAAAAAAAEJgAAAAAAAAAOU2lnbmF0dXJlRXJyb3IAAAAABCcAAAAAAAAAE1NpZ25lckFscmVhZHlFeGlzdHMAAAAEKAAAAAAAAAAOU2lnbmVyTm90Rm91bmQAAAAABCkAAAAAAAAAHVRvdGFsU2lnbmVyc0xlc3NUaGFuVGhyZXNob2xkAAAAAAAEKgAAAAAAAAAPVW5zb3J0ZWRTaWduZXJzAAAABCsAAAAAAAAADVplcm9UaHJlc2hvbGQAAAAAAAQsAAAABQAAADBFdmVudCBlbWl0dGVkIHdoZW4gYSBzaWduZXIgaXMgYWRkZWQgb3IgcmVtb3ZlZC4AAAAAAAAACVNpZ25lclNldAAAAAAAAAEAAAAKc2lnbmVyX3NldAAAAAAAAgAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAACAAAABQAAADZFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNpZ25hdHVyZSB0aHJlc2hvbGQgaXMgY2hhbmdlZC4AAAAAAAAAAAAMVGhyZXNob2xkU2V0AAAAAQAAAA10aHJlc2hvbGRfc2V0AAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAD011bHRpU2lnU3RvcmFnZQAAAAACAAAAAAAAAAAAAAAHU2lnbmVycwAAAAAAAAAAAAAAAAlUaHJlc2hvbGQAAAAAAAAFAAAAV0V2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgdHJhbnNmZXJyZWQgKGJvdGggc2luZ2xlLXN0ZXAgYW5kIHR3by1zdGVwIGNvbXBsZXRpb24pLgAAAAAAAAAAFE93bmVyc2hpcFRyYW5zZmVycmVkAAAAAQAAABVvd25lcnNoaXBfdHJhbnNmZXJyZWQAAAAAAAACAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAACAAAABQAAADtFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIHByb3Bvc2VkLgAAAAAAAAAAFU93bmVyc2hpcFRyYW5zZmVycmluZwAAAAAAAAEAAAAWb3duZXJzaGlwX3RyYW5zZmVycmluZwAAAAAAAwAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAAN0dGwAAAAABAAAAAAAAAACAAAABQAAADxFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIGNhbmNlbGxlZC4AAAAAAAAAGk93bmVyc2hpcFRyYW5zZmVyQ2FuY2VsbGVkAAAAAAABAAAAHG93bmVyc2hpcF90cmFuc2Zlcl9jYW5jZWxsZWQAAAACAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAAAAAAABdjYW5jZWxsZWRfcGVuZGluZ19vd25lcgAAAAATAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgcmVub3VuY2VkLgAAAAAAAAAAABJPd25lcnNoaXBSZW5vdW5jZWQAAAAAAAEAAAATb3duZXJzaGlwX3Jlbm91bmNlZAAAAAABAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAOT3duYWJsZVN0b3JhZ2UAAAAAAAIAAAAAAAAAAAAAAAVPd25lcgAAAAAAAAAAAAAAAAAADFBlbmRpbmdPd25lcgAAAAEAAABJVFRMIGNvbmZpZ3VyYXRpb246IHRocmVzaG9sZCAod2hlbiB0byBleHRlbmQpIGFuZCBleHRlbmRfdG8gKHRhcmdldCBUVEwpLgAAAAAAAAAAAAAJVHRsQ29uZmlnAAAAAAAAAgAAAChUYXJnZXQgVFRMIGFmdGVyIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAACWV4dGVuZF90bwAAAAAAAAQAAAAzVFRMIHRocmVzaG9sZCB0aGF0IHRyaWdnZXJzIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAABQAAACdFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIHNldC4AAAAAAAAAAA1UdGxDb25maWdzU2V0AAAAAAAAAQAAAA90dGxfY29uZmlnc19zZXQAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBj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";
12
12
  /**
13
13
  * Pre-computed WASM hash (SHA-256)
14
14
  * Use this when the WASM is already uploaded on-chain
15
15
  */
16
- export declare const WASM_HASH = "68df81efe2d090ace4a1802098c00dcdacaa4c9e4e21c329536c60d715da8bef";
16
+ export declare const WASM_HASH = "e5a4eee90ddc18340e6246821de2fd98e5bf50163fcce06bdcbcbf53f2b8fcd4";
17
17
  /**
18
18
  * Get the WASM bytecode as a Buffer
19
19
  * Use this to upload the WASM to the network
@@ -110,78 +110,153 @@ export type ExecutorStorage = {
110
110
  values: void;
111
111
  };
112
112
  export declare const EndpointError: {
113
+ /**
114
+ * Library is already registered with the endpoint
115
+ */
113
116
  1: {
114
117
  message: string;
115
118
  };
119
+ /**
120
+ * Compose message already exists for this GUID and index
121
+ */
116
122
  2: {
117
123
  message: string;
118
124
  };
125
+ /**
126
+ * Compose message not found for the given GUID and index
127
+ */
119
128
  3: {
120
129
  message: string;
121
130
  };
131
+ /**
132
+ * Default receive library is not set for the source endpoint
133
+ */
122
134
  4: {
123
135
  message: string;
124
136
  };
137
+ /**
138
+ * Default send library is not set for the destination endpoint
139
+ */
125
140
  5: {
126
141
  message: string;
127
142
  };
143
+ /**
144
+ * Supplied native token fee is less than required
145
+ */
128
146
  6: {
129
147
  message: string;
130
148
  };
149
+ /**
150
+ * Supplied ZRO token fee is less than required
151
+ */
131
152
  7: {
132
153
  message: string;
133
154
  };
155
+ /**
156
+ * Timeout expiry is invalid (already expired)
157
+ */
134
158
  8: {
135
159
  message: string;
136
160
  };
161
+ /**
162
+ * Fee amount is invalid (negative)
163
+ */
137
164
  9: {
138
165
  message: string;
139
166
  };
167
+ /**
168
+ * Compose index exceeds maximum allowed value
169
+ */
140
170
  10: {
141
171
  message: string;
142
172
  };
173
+ /**
174
+ * Nonce is invalid for the requested operation
175
+ */
143
176
  11: {
144
177
  message: string;
145
178
  };
179
+ /**
180
+ * Payload hash is invalid (empty hash not allowed)
181
+ */
146
182
  12: {
147
183
  message: string;
148
184
  };
185
+ /**
186
+ * Receive library is not valid for the receiver and source endpoint
187
+ */
149
188
  13: {
150
189
  message: string;
151
190
  };
191
+ /**
192
+ * Operation requires a non-default (custom) library
193
+ */
152
194
  14: {
153
195
  message: string;
154
196
  };
197
+ /**
198
+ * Library must support receiving messages
199
+ */
155
200
  15: {
156
201
  message: string;
157
202
  };
203
+ /**
204
+ * Library must be registered with the endpoint
205
+ */
158
206
  16: {
159
207
  message: string;
160
208
  };
209
+ /**
210
+ * Library must support sending messages
211
+ */
161
212
  17: {
162
213
  message: string;
163
214
  };
215
+ /**
216
+ * Messaging path cannot be initialized for the given origin
217
+ */
164
218
  18: {
165
219
  message: string;
166
220
  };
221
+ /**
222
+ * Message cannot be verified for the given origin
223
+ */
167
224
  19: {
168
225
  message: string;
169
226
  };
227
+ /**
228
+ * Payload hash does not match the stored hash
229
+ */
170
230
  20: {
171
231
  message: string;
172
232
  };
233
+ /**
234
+ * New value is the same as existing value
235
+ */
173
236
  21: {
174
237
  message: string;
175
238
  };
239
+ /**
240
+ * Caller is not authorized (not OApp or delegate)
241
+ */
176
242
  22: {
177
243
  message: string;
178
244
  };
245
+ /**
246
+ * Endpoint ID is not supported by the library
247
+ */
179
248
  23: {
180
249
  message: string;
181
250
  };
251
+ /**
252
+ * ZRO fee must be greater than zero when pay_in_zro is true
253
+ */
182
254
  24: {
183
255
  message: string;
184
256
  };
257
+ /**
258
+ * ZRO token address is not set
259
+ */
185
260
  25: {
186
261
  message: string;
187
262
  };
@@ -296,11 +371,11 @@ export interface MessageLibVersion {
296
371
  */
297
372
  export interface Timeout {
298
373
  /**
299
- * Unix timestamp when the timeout expires.
374
+ * Unix timestamp in seconds when the timeout expires.
300
375
  */
301
376
  expiry: u64;
302
377
  /**
303
- * The new library address to transition to.
378
+ * The old library address that remains valid during the grace period.
304
379
  */
305
380
  lib: string;
306
381
  }
@@ -658,6 +733,9 @@ export declare const OwnableError: {
658
733
  1035: {
659
734
  message: string;
660
735
  };
736
+ 1036: {
737
+ message: string;
738
+ };
661
739
  };
662
740
  /**
663
741
  * BytesExtError: 1040-1049
@@ -682,9 +760,9 @@ export declare const UpgradeableError: {
682
760
  };
683
761
  };
684
762
  /**
685
- * MultisigError: 1060-1069
763
+ * MultiSigError: 1060-1069
686
764
  */
687
- export declare const MultisigError: {
765
+ export declare const MultiSigError: {
688
766
  1060: {
689
767
  message: string;
690
768
  };
@@ -709,8 +787,11 @@ export declare const MultisigError: {
709
787
  1067: {
710
788
  message: string;
711
789
  };
790
+ 1068: {
791
+ message: string;
792
+ };
712
793
  };
713
- export type MultisigStorage = {
794
+ export type MultiSigStorage = {
714
795
  tag: "Signers";
715
796
  values: void;
716
797
  } | {
@@ -854,20 +935,7 @@ export interface Client {
854
935
  */
855
936
  set_paused: ({ paused }: {
856
937
  paused: boolean;
857
- }, txnOptions?: {
858
- /**
859
- * The fee to pay for the transaction. Default: BASE_FEE
860
- */
861
- fee?: number;
862
- /**
863
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
864
- */
865
- timeoutInSeconds?: number;
866
- /**
867
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
868
- */
869
- simulate?: boolean;
870
- }) => Promise<AssembledTransaction<null>>;
938
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
871
939
  /**
872
940
  * Construct and simulate a set_admin transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
873
941
  * Sets admin status for an address.
@@ -882,20 +950,7 @@ export interface Client {
882
950
  set_admin: ({ admin, active }: {
883
951
  admin: string;
884
952
  active: boolean;
885
- }, txnOptions?: {
886
- /**
887
- * The fee to pay for the transaction. Default: BASE_FEE
888
- */
889
- fee?: number;
890
- /**
891
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
892
- */
893
- timeoutInSeconds?: number;
894
- /**
895
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
896
- */
897
- simulate?: boolean;
898
- }) => Promise<AssembledTransaction<null>>;
953
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
899
954
  /**
900
955
  * Construct and simulate a set_supported_message_lib transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
901
956
  * Sets whether a message library is supported by this worker.
@@ -910,20 +965,7 @@ export interface Client {
910
965
  set_supported_message_lib: ({ message_lib, supported }: {
911
966
  message_lib: string;
912
967
  supported: boolean;
913
- }, txnOptions?: {
914
- /**
915
- * The fee to pay for the transaction. Default: BASE_FEE
916
- */
917
- fee?: number;
918
- /**
919
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
920
- */
921
- timeoutInSeconds?: number;
922
- /**
923
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
924
- */
925
- simulate?: boolean;
926
- }) => Promise<AssembledTransaction<null>>;
968
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
927
969
  /**
928
970
  * Construct and simulate a set_allowlist transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
929
971
  * Sets allowlist status for an OApp address.
@@ -939,20 +981,7 @@ export interface Client {
939
981
  set_allowlist: ({ oapp, allowed }: {
940
982
  oapp: string;
941
983
  allowed: boolean;
942
- }, txnOptions?: {
943
- /**
944
- * The fee to pay for the transaction. Default: BASE_FEE
945
- */
946
- fee?: number;
947
- /**
948
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
949
- */
950
- timeoutInSeconds?: number;
951
- /**
952
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
953
- */
954
- simulate?: boolean;
955
- }) => Promise<AssembledTransaction<null>>;
984
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
956
985
  /**
957
986
  * Construct and simulate a set_denylist transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
958
987
  * Sets denylist status for an OApp address.
@@ -967,20 +996,7 @@ export interface Client {
967
996
  set_denylist: ({ oapp, denied }: {
968
997
  oapp: string;
969
998
  denied: boolean;
970
- }, txnOptions?: {
971
- /**
972
- * The fee to pay for the transaction. Default: BASE_FEE
973
- */
974
- fee?: number;
975
- /**
976
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
977
- */
978
- timeoutInSeconds?: number;
979
- /**
980
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
981
- */
982
- simulate?: boolean;
983
- }) => Promise<AssembledTransaction<null>>;
999
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
984
1000
  /**
985
1001
  * Construct and simulate a set_default_multiplier_bps transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
986
1002
  * Sets the default fee multiplier in basis points.
@@ -995,20 +1011,7 @@ export interface Client {
995
1011
  set_default_multiplier_bps: ({ admin, multiplier_bps }: {
996
1012
  admin: string;
997
1013
  multiplier_bps: u32;
998
- }, txnOptions?: {
999
- /**
1000
- * The fee to pay for the transaction. Default: BASE_FEE
1001
- */
1002
- fee?: number;
1003
- /**
1004
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1005
- */
1006
- timeoutInSeconds?: number;
1007
- /**
1008
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1009
- */
1010
- simulate?: boolean;
1011
- }) => Promise<AssembledTransaction<null>>;
1014
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1012
1015
  /**
1013
1016
  * Construct and simulate a set_deposit_address transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1014
1017
  * Sets the deposit address where worker fees are collected.
@@ -1022,20 +1025,7 @@ export interface Client {
1022
1025
  set_deposit_address: ({ admin, deposit_address }: {
1023
1026
  admin: string;
1024
1027
  deposit_address: string;
1025
- }, txnOptions?: {
1026
- /**
1027
- * The fee to pay for the transaction. Default: BASE_FEE
1028
- */
1029
- fee?: number;
1030
- /**
1031
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1032
- */
1033
- timeoutInSeconds?: number;
1034
- /**
1035
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1036
- */
1037
- simulate?: boolean;
1038
- }) => Promise<AssembledTransaction<null>>;
1028
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1039
1029
  /**
1040
1030
  * Construct and simulate a set_supported_option_types transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1041
1031
  * Sets supported executor option types for a destination endpoint.
@@ -1049,20 +1039,7 @@ export interface Client {
1049
1039
  admin: string;
1050
1040
  eid: u32;
1051
1041
  option_types: Buffer;
1052
- }, txnOptions?: {
1053
- /**
1054
- * The fee to pay for the transaction. Default: BASE_FEE
1055
- */
1056
- fee?: number;
1057
- /**
1058
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1059
- */
1060
- timeoutInSeconds?: number;
1061
- /**
1062
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1063
- */
1064
- simulate?: boolean;
1065
- }) => Promise<AssembledTransaction<null>>;
1042
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1066
1043
  /**
1067
1044
  * Construct and simulate a set_worker_fee_lib transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1068
1045
  * Sets the worker fee library contract address.
@@ -1076,20 +1053,7 @@ export interface Client {
1076
1053
  set_worker_fee_lib: ({ admin, worker_fee_lib }: {
1077
1054
  admin: string;
1078
1055
  worker_fee_lib: string;
1079
- }, txnOptions?: {
1080
- /**
1081
- * The fee to pay for the transaction. Default: BASE_FEE
1082
- */
1083
- fee?: number;
1084
- /**
1085
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1086
- */
1087
- timeoutInSeconds?: number;
1088
- /**
1089
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1090
- */
1091
- simulate?: boolean;
1092
- }) => Promise<AssembledTransaction<null>>;
1056
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1093
1057
  /**
1094
1058
  * Construct and simulate a set_price_feed transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1095
1059
  * Sets the price feed contract address.
@@ -1104,38 +1068,12 @@ export interface Client {
1104
1068
  set_price_feed: ({ admin, price_feed }: {
1105
1069
  admin: string;
1106
1070
  price_feed: string;
1107
- }, txnOptions?: {
1108
- /**
1109
- * The fee to pay for the transaction. Default: BASE_FEE
1110
- */
1111
- fee?: number;
1112
- /**
1113
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1114
- */
1115
- timeoutInSeconds?: number;
1116
- /**
1117
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1118
- */
1119
- simulate?: boolean;
1120
- }) => Promise<AssembledTransaction<null>>;
1071
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1121
1072
  /**
1122
1073
  * Construct and simulate a paused transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1123
1074
  * Returns whether the worker is paused.
1124
1075
  */
1125
- paused: (txnOptions?: {
1126
- /**
1127
- * The fee to pay for the transaction. Default: BASE_FEE
1128
- */
1129
- fee?: number;
1130
- /**
1131
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1132
- */
1133
- timeoutInSeconds?: number;
1134
- /**
1135
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1136
- */
1137
- simulate?: boolean;
1138
- }) => Promise<AssembledTransaction<boolean>>;
1076
+ paused: (options?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
1139
1077
  /**
1140
1078
  * Construct and simulate a is_admin transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1141
1079
  * Returns whether an address is an admin.
@@ -1145,38 +1083,12 @@ export interface Client {
1145
1083
  */
1146
1084
  is_admin: ({ admin }: {
1147
1085
  admin: string;
1148
- }, txnOptions?: {
1149
- /**
1150
- * The fee to pay for the transaction. Default: BASE_FEE
1151
- */
1152
- fee?: number;
1153
- /**
1154
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1155
- */
1156
- timeoutInSeconds?: number;
1157
- /**
1158
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1159
- */
1160
- simulate?: boolean;
1161
- }) => Promise<AssembledTransaction<boolean>>;
1086
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
1162
1087
  /**
1163
1088
  * Construct and simulate a admins transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1164
1089
  * Returns all admin addresses.
1165
1090
  */
1166
- admins: (txnOptions?: {
1167
- /**
1168
- * The fee to pay for the transaction. Default: BASE_FEE
1169
- */
1170
- fee?: number;
1171
- /**
1172
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1173
- */
1174
- timeoutInSeconds?: number;
1175
- /**
1176
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1177
- */
1178
- simulate?: boolean;
1179
- }) => Promise<AssembledTransaction<Array<string>>>;
1091
+ admins: (options?: MethodOptions) => Promise<AssembledTransaction<Array<string>>>;
1180
1092
  /**
1181
1093
  * Construct and simulate a is_supported_message_lib transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1182
1094
  * Returns whether a message library is supported.
@@ -1186,20 +1098,7 @@ export interface Client {
1186
1098
  */
1187
1099
  is_supported_message_lib: ({ message_lib }: {
1188
1100
  message_lib: string;
1189
- }, txnOptions?: {
1190
- /**
1191
- * The fee to pay for the transaction. Default: BASE_FEE
1192
- */
1193
- fee?: number;
1194
- /**
1195
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1196
- */
1197
- timeoutInSeconds?: number;
1198
- /**
1199
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1200
- */
1201
- simulate?: boolean;
1202
- }) => Promise<AssembledTransaction<boolean>>;
1101
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
1203
1102
  /**
1204
1103
  * Construct and simulate a message_libs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1205
1104
  * Returns all supported message library addresses.
@@ -1207,20 +1106,7 @@ export interface Client {
1207
1106
  * # Returns
1208
1107
  * Vector of supported message library contract addresses.
1209
1108
  */
1210
- message_libs: (txnOptions?: {
1211
- /**
1212
- * The fee to pay for the transaction. Default: BASE_FEE
1213
- */
1214
- fee?: number;
1215
- /**
1216
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1217
- */
1218
- timeoutInSeconds?: number;
1219
- /**
1220
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1221
- */
1222
- simulate?: boolean;
1223
- }) => Promise<AssembledTransaction<Array<string>>>;
1109
+ message_libs: (options?: MethodOptions) => Promise<AssembledTransaction<Array<string>>>;
1224
1110
  /**
1225
1111
  * Construct and simulate a is_on_allowlist transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1226
1112
  * Returns whether an OApp is on the allowlist.
@@ -1230,38 +1116,12 @@ export interface Client {
1230
1116
  */
1231
1117
  is_on_allowlist: ({ oapp }: {
1232
1118
  oapp: string;
1233
- }, txnOptions?: {
1234
- /**
1235
- * The fee to pay for the transaction. Default: BASE_FEE
1236
- */
1237
- fee?: number;
1238
- /**
1239
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1240
- */
1241
- timeoutInSeconds?: number;
1242
- /**
1243
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1244
- */
1245
- simulate?: boolean;
1246
- }) => Promise<AssembledTransaction<boolean>>;
1119
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
1247
1120
  /**
1248
1121
  * Construct and simulate a allowlist_size transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1249
1122
  * Returns the number of addresses on the allowlist.
1250
1123
  */
1251
- allowlist_size: (txnOptions?: {
1252
- /**
1253
- * The fee to pay for the transaction. Default: BASE_FEE
1254
- */
1255
- fee?: number;
1256
- /**
1257
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1258
- */
1259
- timeoutInSeconds?: number;
1260
- /**
1261
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1262
- */
1263
- simulate?: boolean;
1264
- }) => Promise<AssembledTransaction<u32>>;
1124
+ allowlist_size: (options?: MethodOptions) => Promise<AssembledTransaction<u32>>;
1265
1125
  /**
1266
1126
  * Construct and simulate a is_on_denylist transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1267
1127
  * Returns whether an OApp is on the denylist.
@@ -1271,20 +1131,7 @@ export interface Client {
1271
1131
  */
1272
1132
  is_on_denylist: ({ oapp }: {
1273
1133
  oapp: string;
1274
- }, txnOptions?: {
1275
- /**
1276
- * The fee to pay for the transaction. Default: BASE_FEE
1277
- */
1278
- fee?: number;
1279
- /**
1280
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1281
- */
1282
- timeoutInSeconds?: number;
1283
- /**
1284
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1285
- */
1286
- simulate?: boolean;
1287
- }) => Promise<AssembledTransaction<boolean>>;
1134
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
1288
1135
  /**
1289
1136
  * Construct and simulate a has_acl transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1290
1137
  * Returns whether an OApp has access control list (ACL) permission.
@@ -1299,56 +1146,17 @@ export interface Client {
1299
1146
  */
1300
1147
  has_acl: ({ oapp }: {
1301
1148
  oapp: string;
1302
- }, txnOptions?: {
1303
- /**
1304
- * The fee to pay for the transaction. Default: BASE_FEE
1305
- */
1306
- fee?: number;
1307
- /**
1308
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1309
- */
1310
- timeoutInSeconds?: number;
1311
- /**
1312
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1313
- */
1314
- simulate?: boolean;
1315
- }) => Promise<AssembledTransaction<boolean>>;
1149
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
1316
1150
  /**
1317
1151
  * Construct and simulate a default_multiplier_bps transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1318
1152
  * Returns the default fee multiplier in basis points.
1319
1153
  */
1320
- default_multiplier_bps: (txnOptions?: {
1321
- /**
1322
- * The fee to pay for the transaction. Default: BASE_FEE
1323
- */
1324
- fee?: number;
1325
- /**
1326
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1327
- */
1328
- timeoutInSeconds?: number;
1329
- /**
1330
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1331
- */
1332
- simulate?: boolean;
1333
- }) => Promise<AssembledTransaction<u32>>;
1154
+ default_multiplier_bps: (options?: MethodOptions) => Promise<AssembledTransaction<u32>>;
1334
1155
  /**
1335
1156
  * Construct and simulate a deposit_address transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1336
1157
  * Returns the deposit address where fees are collected.
1337
1158
  */
1338
- deposit_address: (txnOptions?: {
1339
- /**
1340
- * The fee to pay for the transaction. Default: BASE_FEE
1341
- */
1342
- fee?: number;
1343
- /**
1344
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1345
- */
1346
- timeoutInSeconds?: number;
1347
- /**
1348
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1349
- */
1350
- simulate?: boolean;
1351
- }) => Promise<AssembledTransaction<Option<string>>>;
1159
+ deposit_address: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
1352
1160
  /**
1353
1161
  * Construct and simulate a get_supported_option_types transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1354
1162
  * Returns supported option types for a destination endpoint.
@@ -1358,56 +1166,17 @@ export interface Client {
1358
1166
  */
1359
1167
  get_supported_option_types: ({ eid }: {
1360
1168
  eid: u32;
1361
- }, txnOptions?: {
1362
- /**
1363
- * The fee to pay for the transaction. Default: BASE_FEE
1364
- */
1365
- fee?: number;
1366
- /**
1367
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1368
- */
1369
- timeoutInSeconds?: number;
1370
- /**
1371
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1372
- */
1373
- simulate?: boolean;
1374
- }) => Promise<AssembledTransaction<Option<Buffer>>>;
1169
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Option<Buffer>>>;
1375
1170
  /**
1376
1171
  * Construct and simulate a worker_fee_lib transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1377
1172
  * Returns the worker fee library contract address.
1378
1173
  */
1379
- worker_fee_lib: (txnOptions?: {
1380
- /**
1381
- * The fee to pay for the transaction. Default: BASE_FEE
1382
- */
1383
- fee?: number;
1384
- /**
1385
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1386
- */
1387
- timeoutInSeconds?: number;
1388
- /**
1389
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1390
- */
1391
- simulate?: boolean;
1392
- }) => Promise<AssembledTransaction<Option<string>>>;
1174
+ worker_fee_lib: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
1393
1175
  /**
1394
1176
  * Construct and simulate a price_feed transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1395
1177
  * Returns the price feed contract address.
1396
1178
  */
1397
- price_feed: (txnOptions?: {
1398
- /**
1399
- * The fee to pay for the transaction. Default: BASE_FEE
1400
- */
1401
- fee?: number;
1402
- /**
1403
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1404
- */
1405
- timeoutInSeconds?: number;
1406
- /**
1407
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1408
- */
1409
- simulate?: boolean;
1410
- }) => Promise<AssembledTransaction<Option<string>>>;
1179
+ price_feed: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
1411
1180
  /**
1412
1181
  * Construct and simulate a assign_job transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1413
1182
  * Assigns a job to the executor and returns fee recipient information.
@@ -1418,20 +1187,7 @@ export interface Client {
1418
1187
  dst_eid: u32;
1419
1188
  calldata_size: u32;
1420
1189
  options: Buffer;
1421
- }, txnOptions?: {
1422
- /**
1423
- * The fee to pay for the transaction. Default: BASE_FEE
1424
- */
1425
- fee?: number;
1426
- /**
1427
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1428
- */
1429
- timeoutInSeconds?: number;
1430
- /**
1431
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1432
- */
1433
- simulate?: boolean;
1434
- }) => Promise<AssembledTransaction<FeeRecipient>>;
1190
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<FeeRecipient>>;
1435
1191
  /**
1436
1192
  * Construct and simulate a get_fee transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1437
1193
  * Calculates the execution fee for a cross-chain message.
@@ -1442,20 +1198,7 @@ export interface Client {
1442
1198
  dst_eid: u32;
1443
1199
  calldata_size: u32;
1444
1200
  options: Buffer;
1445
- }, txnOptions?: {
1446
- /**
1447
- * The fee to pay for the transaction. Default: BASE_FEE
1448
- */
1449
- fee?: number;
1450
- /**
1451
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1452
- */
1453
- timeoutInSeconds?: number;
1454
- /**
1455
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1456
- */
1457
- simulate?: boolean;
1458
- }) => Promise<AssembledTransaction<i128>>;
1201
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<i128>>;
1459
1202
  /**
1460
1203
  * Construct and simulate a set_dst_config transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1461
1204
  * Sets destination-specific configurations for multiple endpoints.
@@ -1463,40 +1206,14 @@ export interface Client {
1463
1206
  set_dst_config: ({ admin, params }: {
1464
1207
  admin: string;
1465
1208
  params: Array<SetDstConfigParam>;
1466
- }, txnOptions?: {
1467
- /**
1468
- * The fee to pay for the transaction. Default: BASE_FEE
1469
- */
1470
- fee?: number;
1471
- /**
1472
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1473
- */
1474
- timeoutInSeconds?: number;
1475
- /**
1476
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1477
- */
1478
- simulate?: boolean;
1479
- }) => Promise<AssembledTransaction<null>>;
1209
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1480
1210
  /**
1481
1211
  * Construct and simulate a dst_config transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1482
1212
  * Returns the destination configuration for a specific endpoint.
1483
1213
  */
1484
1214
  dst_config: ({ dst_eid }: {
1485
1215
  dst_eid: u32;
1486
- }, txnOptions?: {
1487
- /**
1488
- * The fee to pay for the transaction. Default: BASE_FEE
1489
- */
1490
- fee?: number;
1491
- /**
1492
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1493
- */
1494
- timeoutInSeconds?: number;
1495
- /**
1496
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1497
- */
1498
- simulate?: boolean;
1499
- }) => Promise<AssembledTransaction<Option<DstConfig>>>;
1216
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Option<DstConfig>>>;
1500
1217
  /**
1501
1218
  * Construct and simulate a native_drop transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1502
1219
  * Native token drops.
@@ -1510,38 +1227,12 @@ export interface Client {
1510
1227
  dst_eid: u32;
1511
1228
  oapp: string;
1512
1229
  native_drop_params: Array<NativeDropParams>;
1513
- }, txnOptions?: {
1514
- /**
1515
- * The fee to pay for the transaction. Default: BASE_FEE
1516
- */
1517
- fee?: number;
1518
- /**
1519
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1520
- */
1521
- timeoutInSeconds?: number;
1522
- /**
1523
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1524
- */
1525
- simulate?: boolean;
1526
- }) => Promise<AssembledTransaction<null>>;
1230
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1527
1231
  /**
1528
1232
  * Construct and simulate a endpoint transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1529
1233
  * Returns the endpoint address from storage.
1530
1234
  */
1531
- endpoint: (txnOptions?: {
1532
- /**
1533
- * The fee to pay for the transaction. Default: BASE_FEE
1534
- */
1535
- fee?: number;
1536
- /**
1537
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1538
- */
1539
- timeoutInSeconds?: number;
1540
- /**
1541
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1542
- */
1543
- simulate?: boolean;
1544
- }) => Promise<AssembledTransaction<string>>;
1235
+ endpoint: (options?: MethodOptions) => Promise<AssembledTransaction<string>>;
1545
1236
  /**
1546
1237
  * Construct and simulate a withdraw_token transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1547
1238
  * Withdraws a token from the contract to a specified address.
@@ -1556,153 +1247,47 @@ export interface Client {
1556
1247
  token: string;
1557
1248
  to: string;
1558
1249
  amount: i128;
1559
- }, txnOptions?: {
1560
- /**
1561
- * The fee to pay for the transaction. Default: BASE_FEE
1562
- */
1563
- fee?: number;
1564
- /**
1565
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1566
- */
1567
- timeoutInSeconds?: number;
1568
- /**
1569
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1570
- */
1571
- simulate?: boolean;
1572
- }) => Promise<AssembledTransaction<null>>;
1250
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1573
1251
  /**
1574
1252
  * Construct and simulate a upgrade transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1575
- * The type of data required for migration.
1576
1253
  * Upgrades the contract to new WASM bytecode.
1577
1254
  * Sets a migration flag that must be cleared by calling `migrate`.
1578
1255
  */
1579
1256
  upgrade: ({ new_wasm_hash }: {
1580
1257
  new_wasm_hash: Buffer;
1581
- }, txnOptions?: {
1582
- /**
1583
- * The fee to pay for the transaction. Default: BASE_FEE
1584
- */
1585
- fee?: number;
1586
- /**
1587
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1588
- */
1589
- timeoutInSeconds?: number;
1590
- /**
1591
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1592
- */
1593
- simulate?: boolean;
1594
- }) => Promise<AssembledTransaction<null>>;
1258
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1595
1259
  /**
1596
1260
  * Construct and simulate a migrate transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1597
1261
  * Runs migration logic after an upgrade.
1598
- * Can only be called when the migration flag is set by a previous `upgrade` call.
1262
+ * Parses XDR-encoded `migration_data` and calls `__migrate`. Clears the migration flag on success.
1599
1263
  */
1600
1264
  migrate: ({ migration_data }: {
1601
1265
  migration_data: Buffer;
1602
- }, txnOptions?: {
1603
- /**
1604
- * The fee to pay for the transaction. Default: BASE_FEE
1605
- */
1606
- fee?: number;
1607
- /**
1608
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1609
- */
1610
- timeoutInSeconds?: number;
1611
- /**
1612
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1613
- */
1614
- simulate?: boolean;
1615
- }) => Promise<AssembledTransaction<null>>;
1266
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1616
1267
  /**
1617
1268
  * Construct and simulate a freeze transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1618
- * Permanently freezes the contract, preventing any future upgrades.
1619
- * This action is irreversible.
1620
- */
1621
- freeze: (txnOptions?: {
1622
- /**
1623
- * The fee to pay for the transaction. Default: BASE_FEE
1624
- */
1625
- fee?: number;
1626
- /**
1627
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1628
- */
1629
- timeoutInSeconds?: number;
1630
- /**
1631
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1632
- */
1633
- simulate?: boolean;
1634
- }) => Promise<AssembledTransaction<null>>;
1269
+ * Permanently freezes the contract, preventing any future upgrades. Irreversible.
1270
+ */
1271
+ freeze: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
1635
1272
  /**
1636
1273
  * Construct and simulate a is_frozen transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1637
1274
  * Returns whether the contract is frozen (upgrades disabled).
1638
1275
  */
1639
- is_frozen: (txnOptions?: {
1640
- /**
1641
- * The fee to pay for the transaction. Default: BASE_FEE
1642
- */
1643
- fee?: number;
1644
- /**
1645
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1646
- */
1647
- timeoutInSeconds?: number;
1648
- /**
1649
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1650
- */
1651
- simulate?: boolean;
1652
- }) => Promise<AssembledTransaction<boolean>>;
1276
+ is_frozen: (options?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
1653
1277
  /**
1654
1278
  * Construct and simulate a authorizer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1655
1279
  */
1656
- authorizer: (txnOptions?: {
1657
- /**
1658
- * The fee to pay for the transaction. Default: BASE_FEE
1659
- */
1660
- fee?: number;
1661
- /**
1662
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1663
- */
1664
- timeoutInSeconds?: number;
1665
- /**
1666
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1667
- */
1668
- simulate?: boolean;
1669
- }) => Promise<AssembledTransaction<string>>;
1280
+ authorizer: (options?: MethodOptions) => Promise<AssembledTransaction<string>>;
1670
1281
  /**
1671
1282
  * Construct and simulate a owner transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1672
1283
  * Returns the current owner address, or None if no owner is set.
1673
1284
  */
1674
- owner: (txnOptions?: {
1675
- /**
1676
- * The fee to pay for the transaction. Default: BASE_FEE
1677
- */
1678
- fee?: number;
1679
- /**
1680
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1681
- */
1682
- timeoutInSeconds?: number;
1683
- /**
1684
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1685
- */
1686
- simulate?: boolean;
1687
- }) => Promise<AssembledTransaction<Option<string>>>;
1285
+ owner: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
1688
1286
  /**
1689
1287
  * Construct and simulate a pending_owner transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1690
1288
  * Returns the pending owner address for 2-step transfer, or None if no transfer is pending.
1691
1289
  */
1692
- pending_owner: (txnOptions?: {
1693
- /**
1694
- * The fee to pay for the transaction. Default: BASE_FEE
1695
- */
1696
- fee?: number;
1697
- /**
1698
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1699
- */
1700
- timeoutInSeconds?: number;
1701
- /**
1702
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1703
- */
1704
- simulate?: boolean;
1705
- }) => Promise<AssembledTransaction<Option<string>>>;
1290
+ pending_owner: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
1706
1291
  /**
1707
1292
  * Construct and simulate a transfer_ownership transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1708
1293
  * Transfers ownership immediately to a new address.
@@ -1716,20 +1301,7 @@ export interface Client {
1716
1301
  */
1717
1302
  transfer_ownership: ({ new_owner }: {
1718
1303
  new_owner: string;
1719
- }, txnOptions?: {
1720
- /**
1721
- * The fee to pay for the transaction. Default: BASE_FEE
1722
- */
1723
- fee?: number;
1724
- /**
1725
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1726
- */
1727
- timeoutInSeconds?: number;
1728
- /**
1729
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1730
- */
1731
- simulate?: boolean;
1732
- }) => Promise<AssembledTransaction<null>>;
1304
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1733
1305
  /**
1734
1306
  * Construct and simulate a propose_ownership_transfer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1735
1307
  * Proposes an ownership transfer to a new address.
@@ -1751,20 +1323,7 @@ export interface Client {
1751
1323
  propose_ownership_transfer: ({ new_owner, ttl }: {
1752
1324
  new_owner: string;
1753
1325
  ttl: u32;
1754
- }, txnOptions?: {
1755
- /**
1756
- * The fee to pay for the transaction. Default: BASE_FEE
1757
- */
1758
- fee?: number;
1759
- /**
1760
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1761
- */
1762
- timeoutInSeconds?: number;
1763
- /**
1764
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1765
- */
1766
- simulate?: boolean;
1767
- }) => Promise<AssembledTransaction<null>>;
1326
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1768
1327
  /**
1769
1328
  * Construct and simulate a accept_ownership transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1770
1329
  * Accepts a pending 2-step ownership transfer.
@@ -1774,20 +1333,7 @@ export interface Client {
1774
1333
  * # Panics
1775
1334
  * - `NoPendingTransfer` if there is no pending transfer (or it expired)
1776
1335
  */
1777
- accept_ownership: (txnOptions?: {
1778
- /**
1779
- * The fee to pay for the transaction. Default: BASE_FEE
1780
- */
1781
- fee?: number;
1782
- /**
1783
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1784
- */
1785
- timeoutInSeconds?: number;
1786
- /**
1787
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1788
- */
1789
- simulate?: boolean;
1790
- }) => Promise<AssembledTransaction<null>>;
1336
+ accept_ownership: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
1791
1337
  /**
1792
1338
  * Construct and simulate a renounce_ownership transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1793
1339
  * Permanently renounces ownership.
@@ -1796,20 +1342,7 @@ export interface Client {
1796
1342
  * - `OwnerNotSet` if no owner is currently set
1797
1343
  * - `TransferInProgress` if a 2-step transfer is in progress (cancel it first)
1798
1344
  */
1799
- renounce_ownership: (txnOptions?: {
1800
- /**
1801
- * The fee to pay for the transaction. Default: BASE_FEE
1802
- */
1803
- fee?: number;
1804
- /**
1805
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1806
- */
1807
- timeoutInSeconds?: number;
1808
- /**
1809
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1810
- */
1811
- simulate?: boolean;
1812
- }) => Promise<AssembledTransaction<null>>;
1345
+ renounce_ownership: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
1813
1346
  /**
1814
1347
  * Construct and simulate a extend_instance_ttl transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1815
1348
  * Extends the instance TTL.
@@ -1822,20 +1355,7 @@ export interface Client {
1822
1355
  extend_instance_ttl: ({ threshold, extend_to }: {
1823
1356
  threshold: u32;
1824
1357
  extend_to: u32;
1825
- }, txnOptions?: {
1826
- /**
1827
- * The fee to pay for the transaction. Default: BASE_FEE
1828
- */
1829
- fee?: number;
1830
- /**
1831
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1832
- */
1833
- timeoutInSeconds?: number;
1834
- /**
1835
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1836
- */
1837
- simulate?: boolean;
1838
- }) => Promise<AssembledTransaction<null>>;
1358
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1839
1359
  /**
1840
1360
  * Construct and simulate a set_ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1841
1361
  * Sets TTL configs for instance and persistent storage.
@@ -1854,38 +1374,12 @@ export interface Client {
1854
1374
  set_ttl_configs: ({ instance, persistent }: {
1855
1375
  instance: Option<TtlConfig>;
1856
1376
  persistent: Option<TtlConfig>;
1857
- }, txnOptions?: {
1858
- /**
1859
- * The fee to pay for the transaction. Default: BASE_FEE
1860
- */
1861
- fee?: number;
1862
- /**
1863
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1864
- */
1865
- timeoutInSeconds?: number;
1866
- /**
1867
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1868
- */
1869
- simulate?: boolean;
1870
- }) => Promise<AssembledTransaction<null>>;
1377
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1871
1378
  /**
1872
1379
  * Construct and simulate a ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1873
1380
  * Returns the current TTL configs as (instance_config, persistent_config).
1874
1381
  */
1875
- ttl_configs: (txnOptions?: {
1876
- /**
1877
- * The fee to pay for the transaction. Default: BASE_FEE
1878
- */
1879
- fee?: number;
1880
- /**
1881
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1882
- */
1883
- timeoutInSeconds?: number;
1884
- /**
1885
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1886
- */
1887
- simulate?: boolean;
1888
- }) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
1382
+ ttl_configs: (options?: MethodOptions) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
1889
1383
  /**
1890
1384
  * Construct and simulate a freeze_ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1891
1385
  * Permanently freezes TTL configs, preventing any future modifications.
@@ -1896,38 +1390,12 @@ export interface Client {
1896
1390
  * # Panics
1897
1391
  * - `TtlConfigAlreadyFrozen` if already frozen
1898
1392
  */
1899
- freeze_ttl_configs: (txnOptions?: {
1900
- /**
1901
- * The fee to pay for the transaction. Default: BASE_FEE
1902
- */
1903
- fee?: number;
1904
- /**
1905
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1906
- */
1907
- timeoutInSeconds?: number;
1908
- /**
1909
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1910
- */
1911
- simulate?: boolean;
1912
- }) => Promise<AssembledTransaction<null>>;
1393
+ freeze_ttl_configs: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
1913
1394
  /**
1914
1395
  * Construct and simulate a is_ttl_configs_frozen transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1915
1396
  * Returns whether TTL configs are frozen.
1916
1397
  */
1917
- is_ttl_configs_frozen: (txnOptions?: {
1918
- /**
1919
- * The fee to pay for the transaction. Default: BASE_FEE
1920
- */
1921
- fee?: number;
1922
- /**
1923
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1924
- */
1925
- timeoutInSeconds?: number;
1926
- /**
1927
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1928
- */
1929
- simulate?: boolean;
1930
- }) => Promise<AssembledTransaction<boolean>>;
1398
+ is_ttl_configs_frozen: (options?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
1931
1399
  }
1932
1400
  export declare class Client extends ContractClient {
1933
1401
  readonly options: ContractClientOptions;