@layerzerolabs/protocol-stellar-v2 0.2.15 → 0.2.19

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 (262) hide show
  1. package/.turbo/turbo-build.log +365 -297
  2. package/.turbo/turbo-lint.log +142 -110
  3. package/.turbo/turbo-test.log +1273 -1222
  4. package/Cargo.lock +20 -5
  5. package/Cargo.toml +4 -1
  6. package/contracts/ERROR_SPEC.md +44 -0
  7. package/contracts/common-macros/src/auth.rs +113 -0
  8. package/contracts/common-macros/src/contract_ttl.rs +84 -0
  9. package/contracts/common-macros/src/lib.rs +181 -30
  10. package/contracts/common-macros/src/lz_contract.rs +83 -0
  11. package/contracts/common-macros/src/tests/{ownable.rs → auth.rs} +48 -15
  12. package/contracts/common-macros/src/tests/contract_ttl.rs +662 -0
  13. package/contracts/common-macros/src/tests/mod.rs +2 -2
  14. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_multisig_code.snap +20 -0
  15. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_ownable_code.snap +24 -0
  16. package/contracts/common-macros/src/tests/snapshots/{common_macros__tests__ownable__snapshot_only_owner_preserves_function_signature.snap → common_macros__tests__auth__snapshot_only_auth_preserves_function_signature.snap} +4 -4
  17. package/contracts/common-macros/src/tests/snapshots/{common_macros__tests__contract_impl__snapshot_generated_contract_impl_code.snap → common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap} +3 -3
  18. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contracttrait_code.snap +69 -0
  19. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_configurable__snapshot_generated_ttl_configurable_code.snap +7 -21
  20. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__upgradeable__snapshot_generated_upgradeable_code.snap +2 -2
  21. package/contracts/common-macros/src/ttl_configurable.rs +19 -34
  22. package/contracts/common-macros/src/ttl_extendable.rs +36 -0
  23. package/contracts/common-macros/src/upgradeable.rs +5 -5
  24. package/contracts/common-macros/src/utils.rs +9 -0
  25. package/contracts/endpoint-v2/src/constants.rs +4 -4
  26. package/contracts/endpoint-v2/src/endpoint_v2.rs +38 -40
  27. package/contracts/endpoint-v2/src/errors.rs +4 -3
  28. package/contracts/endpoint-v2/src/events.rs +1 -1
  29. package/contracts/endpoint-v2/src/message_lib_manager.rs +18 -5
  30. package/contracts/endpoint-v2/src/messaging_channel.rs +11 -1
  31. package/contracts/endpoint-v2/src/messaging_composer.rs +11 -1
  32. package/contracts/endpoint-v2/src/storage.rs +1 -1
  33. package/contracts/endpoint-v2/src/tests/endpoint_v2/pay_messaging_fees.rs +3 -3
  34. package/contracts/endpoint-v2/src/tests/endpoint_v2/quote.rs +1 -1
  35. package/contracts/endpoint-v2/src/tests/endpoint_v2/require_oapp_auth.rs +2 -2
  36. package/contracts/endpoint-v2/src/tests/endpoint_v2/send.rs +3 -3
  37. package/contracts/endpoint-v2/src/tests/endpoint_v2/set_zro.rs +4 -4
  38. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_receive_lib_for_eid.rs +3 -3
  39. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_registered.rs +1 -1
  40. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_send_lib_for_eid.rs +3 -3
  41. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_supported_eid.rs +1 -1
  42. package/contracts/endpoint-v2/src/tests/messaging_channel/clear_payload.rs +4 -4
  43. package/contracts/endpoint-v2/src/tests/messaging_channel/inbound.rs +1 -1
  44. package/contracts/layerzero-views/src/layerzero_view.rs +3 -6
  45. package/contracts/macro-integration-tests/tests/runtime/ownable/mod.rs +2 -2
  46. package/contracts/macro-integration-tests/tests/runtime/ownable/{only_owner_guard.rs → only_auth_guard.rs} +1 -1
  47. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/configuration.rs +1 -1
  48. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/freeze.rs +1 -1
  49. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/mod.rs +0 -1
  50. package/contracts/macro-integration-tests/tests/ui/ownable/fail/{only_owner_missing_env.rs → only_auth_missing_env.rs} +3 -3
  51. package/contracts/macro-integration-tests/tests/ui/ownable/fail/{only_owner_missing_env.stderr → only_auth_missing_env.stderr} +4 -4
  52. package/contracts/macro-integration-tests/tests/ui/ownable/pass/namespacing_and_imports.rs +2 -3
  53. package/contracts/macro-integration-tests/tests/ui/ownable/pass/{only_owner_env_param_variants.rs → only_auth_env_param_variants.rs} +9 -9
  54. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/minimal_contract.rs +6 -6
  55. package/contracts/message-libs/message-lib-common/src/errors.rs +7 -2
  56. package/contracts/message-libs/message-lib-common/src/tests/packet_codec_v1/decode_packet_header.rs +3 -3
  57. package/contracts/message-libs/message-lib-common/src/tests/worker_options/append_lz_receive_option.rs +1 -2
  58. package/contracts/message-libs/message-lib-common/src/tests/worker_options/append_native_drop_option.rs +1 -2
  59. package/contracts/message-libs/message-lib-common/src/tests/worker_options/convert_legacy_options.rs +9 -9
  60. package/contracts/message-libs/message-lib-common/src/tests/worker_options/extract_type_3_options.rs +1 -1
  61. package/contracts/message-libs/message-lib-common/src/tests/worker_options/left_pad_to_bytes32.rs +1 -1
  62. package/contracts/message-libs/message-lib-common/src/tests/worker_options/split_worker_options.rs +2 -2
  63. package/contracts/message-libs/simple-message-lib/src/simple_message_lib.rs +7 -9
  64. package/contracts/message-libs/treasury/src/errors.rs +2 -2
  65. package/contracts/message-libs/treasury/src/events.rs +1 -1
  66. package/contracts/message-libs/treasury/src/interfaces/zro_fee_lib.rs +2 -2
  67. package/contracts/message-libs/treasury/src/storage.rs +1 -1
  68. package/contracts/message-libs/treasury/src/tests/treasury_tests.rs +1 -1
  69. package/contracts/message-libs/treasury/src/treasury.rs +14 -16
  70. package/contracts/message-libs/uln-302/src/receive_uln.rs +13 -2
  71. package/contracts/message-libs/uln-302/src/send_uln.rs +24 -4
  72. package/contracts/message-libs/uln-302/src/uln302.rs +6 -24
  73. package/contracts/oapps/counter/Cargo.toml +14 -1
  74. package/contracts/oapps/counter/integration_tests/mod.rs +4 -1
  75. package/contracts/oapps/counter/integration_tests/{setup.rs → setup_sml.rs} +48 -80
  76. package/contracts/oapps/counter/integration_tests/setup_uln.rs +997 -0
  77. package/contracts/oapps/counter/integration_tests/signing.rs +62 -0
  78. package/contracts/oapps/counter/integration_tests/test_with_sml.rs +24 -55
  79. package/contracts/oapps/counter/integration_tests/test_with_uln.rs +314 -0
  80. package/contracts/oapps/counter/integration_tests/utils.rs +196 -53
  81. package/contracts/oapps/counter/src/counter.rs +67 -43
  82. package/contracts/oapps/counter/src/tests/mod.rs +0 -13
  83. package/contracts/oapps/counter/src/tests/test_counter.rs +5 -7
  84. package/contracts/oapps/oapp/src/errors.rs +5 -1
  85. package/contracts/oapps/oapp/src/macro_tests/test_macros.rs +93 -78
  86. package/contracts/oapps/oapp/src/oapp_core.rs +36 -21
  87. package/contracts/oapps/oapp/src/oapp_options_type3.rs +48 -12
  88. package/contracts/oapps/oapp/src/oapp_receiver.rs +106 -41
  89. package/contracts/oapps/oapp/src/oapp_sender.rs +26 -34
  90. package/contracts/oapps/oapp/src/tests/test_oapp_core.rs +9 -8
  91. package/contracts/oapps/oapp/src/tests/test_oapp_options_type3.rs +25 -17
  92. package/contracts/oapps/oapp/src/tests/test_oapp_receiver.rs +7 -7
  93. package/contracts/oapps/oapp/src/tests/test_oapp_sender.rs +14 -15
  94. package/contracts/oapps/oapp-macros/src/generators.rs +128 -0
  95. package/contracts/oapps/oapp-macros/src/lib.rs +113 -56
  96. package/contracts/oapps/oft/Cargo.toml +10 -7
  97. package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/test_oft_fee.rs +3 -4
  98. package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/test_pausable.rs +2 -3
  99. package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/test_rate_limiter.rs +1 -1
  100. package/contracts/oapps/oft/integration-tests/mod.rs +1 -1
  101. package/contracts/oapps/oft/integration-tests/setup.rs +29 -110
  102. package/contracts/oapps/oft/integration-tests/utils.rs +254 -21
  103. package/contracts/oapps/oft/src/extensions/oft_fee.rs +13 -14
  104. package/contracts/oapps/oft/src/extensions/pausable.rs +4 -4
  105. package/contracts/oapps/oft/src/extensions/rate_limiter.rs +5 -5
  106. package/contracts/oapps/oft/src/lib.rs +11 -13
  107. package/contracts/oapps/oft/src/oft.rs +147 -225
  108. package/contracts/oapps/oft/src/oft_types/lock_unlock.rs +9 -13
  109. package/contracts/oapps/oft/src/oft_types/mint_burn.rs +31 -14
  110. package/contracts/oapps/oft/src/oft_types/mod.rs +13 -0
  111. package/contracts/oapps/{oft-std → oft-core}/Cargo.toml +6 -4
  112. package/contracts/oapps/{oft-std → oft-core}/integration-tests/mod.rs +1 -1
  113. package/contracts/oapps/{oft-std → oft-core}/integration-tests/setup.rs +129 -30
  114. package/contracts/oapps/{oft → oft-core}/integration-tests/test_with_sml.rs +3 -3
  115. package/contracts/oapps/oft-core/integration-tests/utils.rs +201 -0
  116. package/contracts/oapps/oft-core/src/errors.rs +13 -0
  117. package/contracts/oapps/oft-core/src/lib.rs +18 -0
  118. package/contracts/oapps/oft-core/src/oft_core.rs +439 -0
  119. package/contracts/oapps/{oft → oft-core}/src/storage.rs +2 -0
  120. package/contracts/oapps/{oft → oft-core}/src/tests/mod.rs +0 -2
  121. package/contracts/oapps/{oft → oft-core}/src/tests/test_decimals.rs +2 -2
  122. package/contracts/oapps/{oft → oft-core}/src/tests/test_lz_receive.rs +7 -7
  123. package/contracts/oapps/{oft → oft-core}/src/tests/test_oft_msg_codec.rs +4 -5
  124. package/contracts/oapps/{oft → oft-core}/src/tests/test_resolve_address.rs +3 -3
  125. package/contracts/oapps/{oft → oft-core}/src/tests/test_utils.rs +78 -37
  126. package/contracts/oapps/oft-core/src/types.rs +58 -0
  127. package/contracts/oapps/{oft → oft-core}/src/utils.rs +1 -1
  128. package/contracts/upgrader/src/lib.rs +4 -4
  129. package/contracts/utils/src/auth.rs +44 -0
  130. package/contracts/utils/src/errors.rs +31 -5
  131. package/contracts/utils/src/lib.rs +3 -0
  132. package/contracts/utils/src/multisig.rs +211 -0
  133. package/contracts/utils/src/ownable.rs +137 -13
  134. package/contracts/utils/src/tests/buffer_reader.rs +6 -6
  135. package/contracts/utils/src/tests/buffer_writer.rs +6 -6
  136. package/contracts/utils/src/tests/bytes_ext.rs +2 -4
  137. package/contracts/utils/src/tests/mod.rs +1 -0
  138. package/contracts/utils/src/tests/multisig.rs +731 -0
  139. package/contracts/utils/src/tests/option_ext.rs +2 -5
  140. package/contracts/utils/src/tests/ownable.rs +456 -7
  141. package/contracts/utils/src/tests/ttl_configurable.rs +27 -16
  142. package/contracts/utils/src/tests/upgradeable.rs +4 -2
  143. package/contracts/utils/src/ttl_configurable.rs +23 -8
  144. package/contracts/utils/src/ttl_extendable.rs +27 -0
  145. package/contracts/utils/src/upgradeable.rs +2 -0
  146. package/contracts/workers/dvn/Cargo.toml +1 -1
  147. package/contracts/workers/dvn/src/auth.rs +7 -7
  148. package/contracts/workers/dvn/src/dvn.rs +10 -38
  149. package/contracts/workers/dvn/src/errors.rs +0 -7
  150. package/contracts/workers/dvn/src/events.rs +1 -14
  151. package/contracts/workers/dvn/src/interfaces/dvn.rs +2 -2
  152. package/contracts/workers/dvn/src/interfaces/mod.rs +0 -2
  153. package/contracts/workers/dvn/src/storage.rs +3 -13
  154. package/contracts/workers/dvn/src/tests/auth.rs +4 -4
  155. package/contracts/workers/dvn/src/tests/dvn.rs +1 -2
  156. package/contracts/workers/dvn/src/tests/multisig/set_signer.rs +7 -8
  157. package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +11 -8
  158. package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +11 -12
  159. package/contracts/workers/dvn/src/tests/setup.rs +5 -5
  160. package/contracts/workers/dvn-fee-lib/Cargo.toml +1 -1
  161. package/contracts/workers/dvn-fee-lib/src/dvn_fee_lib.rs +3 -6
  162. package/contracts/workers/executor/src/auth.rs +80 -16
  163. package/contracts/workers/executor/src/executor.rs +5 -31
  164. package/contracts/workers/executor/src/storage.rs +2 -9
  165. package/contracts/workers/executor-fee-lib/Cargo.toml +1 -1
  166. package/contracts/workers/executor-fee-lib/src/executor_fee_lib.rs +3 -6
  167. package/contracts/workers/executor-helper/Cargo.toml +1 -1
  168. package/contracts/workers/executor-helper/src/executor_helper.rs +53 -73
  169. package/contracts/workers/price-feed/Cargo.toml +1 -1
  170. package/contracts/workers/price-feed/src/price_feed.rs +7 -10
  171. package/contracts/workers/worker/src/errors.rs +4 -0
  172. package/contracts/workers/worker/src/tests/worker.rs +7 -6
  173. package/contracts/workers/worker/src/worker.rs +20 -16
  174. package/package.json +7 -5
  175. package/sdk/.turbo/turbo-build.log +1 -0
  176. package/sdk/.turbo/turbo-test.log +1019 -0
  177. package/sdk/dist/generated/bml.d.ts +95 -8
  178. package/sdk/dist/generated/bml.js +95 -36
  179. package/sdk/dist/generated/counter.d.ts +289 -44
  180. package/sdk/dist/generated/counter.js +119 -49
  181. package/sdk/dist/generated/dvn.d.ts +312 -229
  182. package/sdk/dist/generated/dvn.js +144 -83
  183. package/sdk/dist/generated/dvn_fee_lib.d.ts +258 -63
  184. package/sdk/dist/generated/dvn_fee_lib.js +95 -26
  185. package/sdk/dist/generated/endpoint.d.ts +219 -24
  186. package/sdk/dist/generated/endpoint.js +108 -41
  187. package/sdk/dist/generated/executor.d.ts +239 -87
  188. package/sdk/dist/generated/executor.js +135 -63
  189. package/sdk/dist/generated/executor_fee_lib.d.ts +278 -74
  190. package/sdk/dist/generated/executor_fee_lib.js +135 -59
  191. package/sdk/dist/generated/executor_helper.d.ts +163 -21
  192. package/sdk/dist/generated/executor_helper.js +124 -52
  193. package/sdk/dist/generated/oft.d.ts +1842 -0
  194. package/sdk/dist/generated/oft.js +345 -0
  195. package/sdk/dist/generated/price_feed.d.ts +258 -63
  196. package/sdk/dist/generated/price_feed.js +95 -26
  197. package/sdk/dist/generated/sml.d.ts +235 -34
  198. package/sdk/dist/generated/sml.js +126 -53
  199. package/sdk/dist/generated/treasury.d.ts +1016 -0
  200. package/sdk/dist/generated/treasury.js +248 -0
  201. package/sdk/dist/generated/uln302.d.ts +235 -34
  202. package/sdk/dist/generated/uln302.js +126 -53
  203. package/sdk/dist/generated/upgrader.d.ts +17 -2
  204. package/sdk/dist/generated/upgrader.js +19 -1
  205. package/sdk/dist/index.d.ts +2 -1
  206. package/sdk/dist/index.js +2 -1
  207. package/sdk/package.json +6 -3
  208. package/sdk/src/index.ts +2 -1
  209. package/sdk/test/counter-sml.test.ts +376 -0
  210. package/sdk/test/counter-uln.test.ts +493 -0
  211. package/sdk/test/{oft.test.ts → oft-sml.test.ts} +196 -321
  212. package/sdk/test/suites/constants.ts +22 -2
  213. package/sdk/test/suites/globalSetup.ts +450 -0
  214. package/sdk/test/suites/localnet.ts +23 -6
  215. package/sdk/test/upgrader.test.ts +7 -16
  216. package/sdk/test/utils.ts +558 -85
  217. package/sdk/turbo.json +8 -0
  218. package/sdk/vitest.config.ts +21 -0
  219. package/tools/ts-bindings-gen/Cargo.toml +2 -0
  220. package/tools/ts-bindings-gen/src/main.rs +52 -4
  221. package/contracts/common-macros/src/contract_impl.rs +0 -52
  222. package/contracts/common-macros/src/ownable.rs +0 -41
  223. package/contracts/common-macros/src/tests/contract_impl.rs +0 -386
  224. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ownable__snapshot_generated_ownable_code.snap +0 -12
  225. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/extend_instance_ttl.rs +0 -50
  226. package/contracts/oapps/oapp-macros/src/oapp_core.rs +0 -41
  227. package/contracts/oapps/oapp-macros/src/oapp_full.rs +0 -21
  228. package/contracts/oapps/oapp-macros/src/oapp_options_type3.rs +0 -31
  229. package/contracts/oapps/oapp-macros/src/oapp_receiver.rs +0 -48
  230. package/contracts/oapps/oapp-macros/src/oapp_sender.rs +0 -21
  231. package/contracts/oapps/oapp-macros/src/util.rs +0 -107
  232. package/contracts/oapps/oft/src/constants.rs +0 -5
  233. package/contracts/oapps/oft/src/default_oft_impl.rs +0 -152
  234. package/contracts/oapps/oft/src/errors.rs +0 -8
  235. package/contracts/oapps/oft/src/interfaces/mint_burn_token.rs +0 -23
  236. package/contracts/oapps/oft/src/interfaces/mod.rs +0 -3
  237. package/contracts/oapps/oft/src/tests/extensions/mod.rs +0 -11
  238. package/contracts/oapps/oft/src/tests/extensions/setup.rs +0 -903
  239. package/contracts/oapps/oft/src/tests/extensions/test_oft_fee.rs +0 -749
  240. package/contracts/oapps/oft/src/tests/extensions/test_pausable.rs +0 -432
  241. package/contracts/oapps/oft/src/tests/extensions/test_rate_limiter.rs +0 -1078
  242. package/contracts/oapps/oft/src/types.rs +0 -38
  243. package/contracts/oapps/oft-std/integration-tests/utils.rs +0 -427
  244. package/contracts/oapps/oft-std/src/lib.rs +0 -16
  245. package/contracts/oapps/oft-std/src/oft.rs +0 -156
  246. package/contracts/workers/dvn/src/interfaces/multisig.rs +0 -56
  247. package/contracts/workers/dvn/src/multisig.rs +0 -157
  248. package/sdk/dist/generated/oft_std.d.ts +0 -1544
  249. package/sdk/dist/generated/oft_std.js +0 -271
  250. package/sdk/test/index.test.ts +0 -375
  251. /package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/mod.rs +0 -0
  252. /package/contracts/oapps/{oft → oft-core}/src/codec/mod.rs +0 -0
  253. /package/contracts/oapps/{oft → oft-core}/src/codec/oft_compose_msg_codec.rs +0 -0
  254. /package/contracts/oapps/{oft → oft-core}/src/codec/oft_msg_codec.rs +0 -0
  255. /package/contracts/oapps/{oft → oft-core}/src/events.rs +0 -0
  256. /package/contracts/oapps/{oft → oft-core}/src/tests/test_oft_compose_msg_codec.rs +0 -0
  257. /package/contracts/oapps/{oft → oft-core}/src/tests/test_oft_version.rs +0 -0
  258. /package/contracts/oapps/{oft → oft-core}/src/tests/test_quote_oft.rs +0 -0
  259. /package/contracts/oapps/{oft → oft-core}/src/tests/test_quote_send.rs +0 -0
  260. /package/contracts/oapps/{oft → oft-core}/src/tests/test_send.rs +0 -0
  261. /package/contracts/oapps/{oft → oft-core}/src/tests/test_token.rs +0 -0
  262. /package/sdk/test/suites/{testUpgradeable.ts → dummyContractClient.ts} +0 -0
@@ -5,6 +5,21 @@ export * from '@stellar/stellar-sdk';
5
5
  export * as contract from '@stellar/stellar-sdk/contract';
6
6
  export * as rpc from '@stellar/stellar-sdk/rpc';
7
7
  export type MigrationData = void;
8
+ /**
9
+ * Embedded WASM bytecode (base64-encoded)
10
+ * Size: 56667 bytes (55.34 KB)
11
+ */
12
+ export declare const WASM_BASE64 = "AGFzbQEAAAABzgEhYAJ+fgF+YAF+AX5gA35+fgF+YAABfmAEfn5+fgF+YAN/f38AYAF/AX5gA35+fgBgA39+fgBgAABgAAF/YAF/AGACf38AYAJ+fgF/YAJ+fgBgA35+fwBgAn9+AGABfgBgAn5/AGAEf39/fwF+YAF+AX9gAn9/AX5gAX8Bf2AFfn9/f38AYAN+f38BfmACf38Bf2ADf35+AX5gA39/fgBgB35+fn5+fn4BfmAFf35/fn4AYAR+fn9/AX5gCX5+fn5+fn5+fgF+YAN/f38BfwKhAjABbAExAAABYQEwAAEBdgEzAAEBdgExAAABYgE4AAEBYgE2AAABYgFmAAIBYwEyAAIBYwExAAEBdgFkAAABdgEyAAABdgE2AAABeAExAAABdgFfAAMBeAE0AAMBaQEwAAEBdgE4AAEBeAE3AAMBeAEwAAABYgFlAAABYgEwAAEBYwEwAAIBbAFfAAIBbAEyAAABaQFfAAEBZAFfAAIBaQE4AAEBaQE3AAEBYgE0AAMBYgFfAAEBbAE2AAEBeAEzAAMBeAE4AAMBYgEzAAABbQFhAAQBdgFnAAABYgFtAAIBaQE2AAABYgFqAAABYgEyAAQBbQE5AAIBbAEwAAABbAE4AAABeAE1AAEBbAE3AAQBaQEzAAABaQE1AAEBaQE0AAEDogGgAQUGBwgJCgsMBg0DAw4KDwMQDQwNEQkKBRAIEgMQEAsFARMRFBIDFQMMEgwKDBQWAwMUChQKBhQMEBcQDAgCEBAMGBkKEBAQFhUaARsAAAsLAAALABECABEAEREBAwMBAwEBAQMDAwMBAxwdCBwMFQABAwIeHwwMBgwRCwIAAQsBAwMAEAYDDAMDAAAQERIBAwMBAwACCQUQEAUMBQwQICAEBQFwAQEBBQMBABEGIQR/AUGAgMAAC38AQcyCwAALfwBB+IrAAAt/AEGAi8AACweNBzUGbWVtb3J5AgAMX19jaGVja19hdXRoAG0Kc2V0X3BhdXNlZAB6GXNldF9zdXBwb3J0ZWRfbWVzc2FnZV9saWIAfA1zZXRfYWxsb3dsaXN0AH0Mc2V0X2RlbnlsaXN0AIABGnNldF9kZWZhdWx0X211bHRpcGxpZXJfYnBzAIEBE3NldF9kZXBvc2l0X2FkZHJlc3MAgwEac2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXMAhQESc2V0X3dvcmtlcl9mZWVfbGliAIYBDnNldF9wcmljZV9mZWVkAIgBCGlzX2FkbWluAIsBBmFkbWlucwCMAQZwYXVzZWQAjQEYaXNfc3VwcG9ydGVkX21lc3NhZ2VfbGliAI4BDG1lc3NhZ2VfbGlicwCPAQ9pc19vbl9hbGxvd2xpc3QAkAEOaXNfb25fZGVueWxpc3QAkQEHaGFzX2FjbACSAQ5hbGxvd2xpc3Rfc2l6ZQCTARZkZWZhdWx0X211bHRpcGxpZXJfYnBzAJQBD2RlcG9zaXRfYWRkcmVzcwCVAQpwcmljZV9mZWVkAJYBGmdldF9zdXBwb3J0ZWRfb3B0aW9uX3R5cGVzAJcBDndvcmtlcl9mZWVfbGliAJgBB2dldF9mZWUAmQEKYXNzaWduX2pvYgCcAQ5zZXRfZHN0X2NvbmZpZwCfAQpkc3RfY29uZmlnAKABA3ZpZAChAQ5oYXNoX2NhbGxfZGF0YQCiAQ1fX2NvbnN0cnVjdG9yAKQBCXNldF9hZG1pbgCrARNxdW9ydW1fY2hhbmdlX2FkbWluAKwBB3VwZ3JhZGUArQEHbWlncmF0ZQCvAQphdXRob3JpemVyALEBD3NldF90dGxfY29uZmlncwCyAQt0dGxfY29uZmlncwC1ARJmcmVlemVfdHRsX2NvbmZpZ3MAtwEVaXNfdHRsX2NvbmZpZ3NfZnJvemVuALgBE2V4dGVuZF9pbnN0YW5jZV90dGwAuQEKc2V0X3NpZ25lcgC6AQ1zZXRfdGhyZXNob2xkAL4BC2dldF9zaWduZXJzAL8BDXRvdGFsX3NpZ25lcnMAwAEJaXNfc2lnbmVyAMEBCXRocmVzaG9sZADCARF2ZXJpZnlfc2lnbmF0dXJlcwDDARN2ZXJpZnlfbl9zaWduYXR1cmVzAMQBAV8DAQpfX2RhdGFfZW5kAwILX19oZWFwX2Jhc2UDAwqsswGgASIAIAAQsYCAgAAgAa1CIIZCBIQgAq1CIIZCBIQQsoCAgAAL0QECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkACQAJAIAAoAgAOAwABAgALIAFBmILAgABBAxDHgICAACABKAIADQMgASABKQMIEMiAgIAADAILIAFBm4LAgABBCRDHgICAACABKAIADQIgASABKQMIIAA1AgRCIIZCBIQQyYCAgAAMAQsgAUGkgsCAAEEIEMeAgIAAIAEoAgANASABIAEpAwggACkDCBDJgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACCxEAIABCASABIAIQrICAgAAaCzcBAX5CACEDAkACQCABQgJRDQAgAadBAXENASAAIAI3AwhCASEDCyAAIAM3AwAPCxC0gICAAAALCQAQxYGAgAAAC4sBAgJ/AX4jgICAgABBEGsiACSAgICAACAAQQRqELaAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBC3gICAAAtBACEBAkBBABC4gICAACICQgIQuYCAgABFDQBBASEBAkACQCACQgIQgICAgACnQf8BcQ4CAQIACwALQQAhAQsgAEEQaiSAgICAACABCwwAIABBARDKgYCAAAsbACAArUIghkIEhCABrUIghkIEhBCqgICAABoLwgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkACQAJAIABB/wFxDgMAAQIACyABQZKFwIAAQQYQx4CAgAAgASgCAA0DIAEgASkDCBDIgICAAAwCCyABQZiFwIAAQQgQx4CAgAAgASgCAA0CIAEgASkDCBDIgICAAAwBCyABQaCFwIAAQQoQx4CAgAAgASgCAA0BIAEgASkDCBDIgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACCw8AIAAgARCpgICAAEIBUQsVAQF+ELuAgIAAIgAQgYCAgAAaIAALVAIBfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahC2gICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQt4CAgAALEJGAgIAAIQEgAEEQaiSAgICAACABC1gBAX8jgICAgABBEGsiAiSAgICAACACQQRqELaAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBC3gICAAAsgACABEL2AgIAAEL6AgIAAIAJBEGokgICAgAALRgIBfwF+QQAhAAJAAkBBARCngYCAACIBQgIQuYCAgABFDQAgAUICEICAgIAAIgFC/wGDQgRSDQEgAUIgiKchAAsgAA8LAAuSBQQBfwV+An8BfiOAgICAAEEwayIDJICAgIAAIANBIGoQtoCAgAACQCADKAIgQQFHDQAgAygCJCADKAIoELeAgIAACwJAAkACQAJAAkACQCACRQ0AIAIgARCCgICAAEIgiKdLDQEQv4CAgAAhBCABEIKAgIAAQiCIIQVCACEGQQAhAgJAA0AgBiAFUQ0FAkAgASAGQiCGQgSEEIOAgIAAIgdC/wGDQsgAUg0AIAcQhICAgAAhCCAGQv////8PUQ0CIAhCgICAgHCDQoCAgICQCFINAiAHEISAgIAAQv////+PCFgNBSAHQoSAgICACBCFgICAACEIIAdCBEKEgICAgAgQhoCAgAAiBxCEgICAAEKAgICAcINCgICAgIAIUg0CIANBIGogACAHIAhCIIinIglBZWoiCiAJIApB/wFxQQRJG61C/wGDQiCGQgSEEIeAgIAAQoSAgIAQQoSAgICQCBCGgICAABCIgICAAEKEgICAwAFChICAgIAEEIaAgIAAEMCAgIAAIAMoAiBBAUYNAiADKQMoIQcCQCACQQFxRQ0AIAcgCxDBgICAAEEYdEEYdUEATA0ICyAEEIKAgIAAIQggA0EANgIIIAMgBDcDACADIAhCIIg+AgwDQCADQSBqIAMQwoCAgAAgA0EQaiADKQMgIAMpAygQs4CAgAAgAygCEEEBRw0JIAMpAxggBxDDgICAAEUNAAsgBkIBfCEGQQEhAiAHIQsMAQsLIAZC/////w9SGgsQtICAgAAAC0KDgICAsIUBEMSAgIAAAAtCg4CAgOCEARDEgICAAAALEMWAgIAAAAsgA0EwaiSAgICAAA8LQoOAgICghQEQxICAgAAAC0KDgICAgIUBEMSAgIAAAAuNAQQBfwF+AX8BfiOAgICAAEEQayIAJICAgIAAAkACQEEAEKeBgIAAIgFCARC5gICAACICRQ0AIAFCARCAgICAACIDQv8Bg0LLAFINASAAQQRqEM6AgIAAIAAoAgRFDQAgACgCCCAAKAIMEKiBgIAACxCNgICAACEBIABBEGokgICAgAAgAyABIAIbDwsACzYBAX5CASECAkAgARCEgICAAEKAgICAcINCgICAgMACUg0AIAAgATcDCEIAIQILIAAgAjcDAAsXACAAIAEQkoCAgAAiAUIAVSABQgBTawuRAQICfwF+I4CAgIAAQRBrIgIkgICAgAACQAJAIAEoAggiAyABKAIMSQ0AIABCAjcDAAwBCyACIAEpAwAgA61CIIZCBIQQg4CAgAAQu4GAgAACQCADQQFqIgNFDQAgAikDACEEIAAgAikDCDcDCCAAIAQ3AwAgASADNgIIDAELELSAgIAAAAsgAkEQaiSAgICAAAsRACAAIAEQwYCAgABB/wFxRQsLACAAEKuAgIAAGgsJABC0gICAAAALUgECfyOAgICAAEEQayIAJICAgIAAIABBBGoQtoCAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELeAgIAACxC9gICAACEBIABBEGokgICAgAAgAQtRAgF/AX4jgICAgABBEGsiAySAgICAACADIAEgAhDGgYCAAEIBIQQCQCADKAIADQAgACADKQMINwMIQgAhBAsgACAENwMAIANBEGokgICAgAALRAEBfyOAgICAAEEQayICJICAgIAAIAIgATcDCCACQQhqQQEQnoGAgAAhASAAQgA3AwAgACABNwMIIAJBEGokgICAgAALSAEBfyOAgICAAEEQayIDJICAgIAAIAMgAjcDCCADIAE3AwAgA0ECEJ6BgIAAIQIgAEIANwMAIAAgAjcDCCADQRBqJICAgIAAC/YCAwF/AX4BfyOAgICAAEEwayICJICAgIAAEMuAgIAAIQMCQAJAAkACQAJAAkAgAQ0AIAMQgoCAgABC/////x9YDQEgAkEIaiADIAAQiYCAgAAQzICAgAAgAigCCCIEQQJGDQIgBEEBcUUNAyACKAIMIgQgAxCCgICAAEIgiKdPDQUgAyAErUIghkIEhBCKgICAACEDDAULIAMgABCJgICAAEICUQ0DQoOAgICAlgEQxICAgAAAC0KDgICAwJYBEMSAgIAAAAsQtICAgAAAC0KDgICAkJYBEMSAgIAAAAsgAyAAEIuAgIAAIQMLIAJBCjYCICACQSBqIAMQzYCAgAAgAkEUahDOgICAAAJAIAIoAhRBAUcNACACQSBqIAIoAhggAigCHBDPgICAAAtCjuauueqM5NU4ENCAgIAAIQMgAiAANwMoIAIgAa03AyAgA0HAhcCAAEECIAJBIGpBAhDRgICAABCMgICAABogAkEwaiSAgICAAAusAQIBfwN+I4CAgIAAQTBrIgAkgICAgAAgAEEQahC2gICAAAJAIAAoAhBBAUcNACAAKAIUIAAoAhgQt4CAgAALIABBCjYCECAAIABBEGoQ2oCAgAACQCAAKQMAIgFQDQAgAEEkahDOgICAACAAKAIkQQFHDQAgAEEQaiAAKAIoIAAoAiwQz4CAgAALIAApAwghAhCNgICAACEDIABBMGokgICAgAAgAiADIAGnGws9AQJ/AkACQCABQgJSDQBBACECDAELQQFBAiABQv8Bg0IEURshAiABQiCIpyEDCyAAIAM2AgQgACACNgIACxUAIAAQ5YCAgAAgAUIBEJaAgIAAGgsMACAAQQIQyoGAgAALIgAgABDlgICAACABrUIghkIEhCACrUIghkIEhBCygICAAAtjAwF/AX4BfyOAgICAAEEQayIBJICAgIAAIAEgADcDAEICIQJBASEDAkADQCADRQ0BIANBf2ohAyAAIQIMAAsLIAEgAjcDCCABQQhqQQEQnoGAgAAhACABQRBqJICAgIAAIAALLgACQCABIANGDQAACyAArUIghkIEhCACrUIghkIEhCABrUIghkIEhBCogICAAAsnACAAEIGAgIAAGgJAIAAQ04CAgAANAEKDgICA8JcBEMSAgIAAAAsLXQEBfyOAgICAAEEQayIBJICAgIAAIAFBBGoQtoCAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELeAgIAACxDLgICAACAAEImAgIAAIQAgAUEQaiSAgICAACAAQgJSC9ECAwF/An4BfyOAgICAAEEwayICJICAgIAAENWAgIAAIgMgABCJgICAACEEAkACQAJAAkACQCABDQAgAkEIaiAEEMyAgIAAIAIoAggiBUECRg0BIAVBAXFFDQIgAigCDCIFIAMQgoCAgABCIIinTw0EIAMgBa1CIIZCBIQQioCAgAAhAwwECyAEQgJRDQJCg4CAgOCWARDEgICAAAALELSAgIAAAAtCg4CAgPCWARDEgICAAAALIAMgABCLgICAACEDCyACQQY2AiAgAkEgaiADEM2AgIAAIAJBFGoQzoCAgAACQCACKAIUQQFHDQAgAkEgaiACKAIYIAIoAhwQz4CAgAALQdCFwIAAQRkQ1oCAgAAQ0ICAgAAhAyACIAGtNwMoIAIgADcDICADQYCGwIAAQQIgAkEgakECENGAgIAAEIyAgIAAGiACQTBqJICAgIAAC6wBAgF/A34jgICAgABBMGsiACSAgICAACAAQRBqELaAgIAAAkAgACgCEEEBRw0AIAAoAhQgACgCGBC3gICAAAsgAEEGNgIQIAAgAEEQahDagICAAAJAIAApAwAiAVANACAAQSRqEM6AgIAAIAAoAiRBAUcNACAAQRBqIAAoAiggACgCLBDPgICAAAsgACkDCCECEI2AgIAAIQMgAEEwaiSAgICAACACIAMgAacbC0UCAX8BfiOAgICAAEEQayICJICAgIAAIAIgACABEMaBgIAAAkAgAigCAEEBRw0AAAsgAikDCCEDIAJBEGokgICAgAAgAwt1AgF/AX4jgICAgABBIGsiACSAgICAACAAQRBqELaAgIAAAkAgACgCEEEBRw0AIAAoAhQgACgCGBC3gICAAAsgAEECNgIQIAAgAEEQahDYgICAACAAKQMIIQEgACkDAEG9CRDZgICAACAAQSBqJICAgIAAIAELTQECfkIAIQICQAJAIAEQ5YCAgAAiA0ICELmAgIAARQ0AIANCAhCAgICAACICQv8Bg0LNAFINASAAIAI3AwhCASECCyAAIAI3AwAPCwALKQACQCAAp0EBcUUNAA8LIAFB0HZqrUIghkKDgICAgJYBfBDEgICAAAALTQECfkIAIQICQAJAIAEQ5YCAgAAiA0IBELmAgIAARQ0AIANCARCAgICAACICQv8Bg0LLAFINASAAIAI3AwhCASECCyAAIAI3AwAPCwALdwEDfyOAgICAAEEgayIAJICAgIAAIABBEGoQtoCAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYELeAgIAACyAAQQk2AhAgAEEIaiAAQRBqENyAgIAAIAAoAgghASAAKAIMIQIgAEEgaiSAgICAACACQQAgAUEBcRsLWgIBfgF/AkACQAJAIAEQ5YCAgAAiAkICELmAgIAADQBBACEBDAELIAJCAhCAgICAACICQv8Bg0IEUg0BIAJCIIinIQNBASEBCyAAIAM2AgQgACABNgIADwsAC4wBAQJ/I4CAgIAAQSBrIgEkgICAgAAgARC2gICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQt4CAgAALIAFBCDYCACABIAA3AwgCQCABEN6AgIAAIgJFDQAgAUEUahDOgICAACABKAIUQQFHDQAgASABKAIYIAEoAhwQz4CAgAALIAFBIGokgICAgAAgAgsSACAAEOWAgIAAQgEQuYCAgAALdQIBfwF+I4CAgIAAQSBrIgAkgICAgAAgAEEQahC2gICAAAJAIAAoAhBBAUcNACAAKAIUIAAoAhgQt4CAgAALIABBAzYCECAAIABBEGoQ2ICAgAAgACkDCCEBIAApAwBBwQkQ2YCAgAAgAEEgaiSAgICAACABC3UCAX8BfiOAgICAAEEgayIAJICAgIAAIABBEGoQtoCAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYELeAgIAACyAAQQE2AhAgACAAQRBqENiAgIAAIAApAwghASAAKQMAQbUJENmAgIAAIABBIGokgICAgAAgAQuMAQECfyOAgICAAEEgayIBJICAgIAAIAEQtoCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELeAgIAACyABQQc2AgAgASAANwMIAkAgARDegICAACICRQ0AIAFBFGoQzoCAgAAgASgCFEEBRw0AIAEgASgCGCABKAIcEM+AgIAACyABQSBqJICAgIAAIAILdwEDfyOAgICAAEEgayIAJICAgIAAIABBEGoQtoCAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYELeAgIAACyAAQQQ2AhAgAEEIaiAAQRBqENyAgIAAIAAoAgghASAAKAIMIQIgAEEgaiSAgICAACACQQAgAUEBcRsLXQEBfyOAgICAAEEQayIBJICAgIAAIAFBBGoQtoCAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELeAgIAACxDVgICAACAAEImAgIAAIQAgAUEQaiSAgICAACAAQgJSC48BAgJ/AX4jgICAgABBEGsiACSAgICAACAAELaAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBC3gICAAAtBACEBIABBADYCAAJAIAAQ5YCAgAAiAkICELmAgIAARQ0AQQEhAQJAAkAgAkICEICAgIAAp0H/AXEOAgECAAsAC0EAIQELIABBEGokgICAgAAgAQumBAIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAOCwABAgMEBQYHCAkKAAsgAUH4icCAAEEGEMeAgIAAIAEoAgANCyABIAEpAwgQyICAgAAMCgsgAUH+icCAAEEOEMeAgIAAIAEoAgANCiABIAEpAwgQyICAgAAMCQsgAUGMisCAAEEJEMeAgIAAIAEoAgANCSABIAEpAwgQyICAgAAMCAsgAUGVisCAAEEMEMeAgIAAIAEoAgANCCABIAEpAwgQyICA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yABSDQAgARCEgICAAEKAgICAcINCgICAgIAEUg0AIAAgATcDCEIAIQILIAAgAjcDAAtdAgF/AX4CQAJAIAGnQf8BcSICQcAARg0AAkAgAkEGRg0AQgEhA0KDkICAgAEhAQwCCyABQgiIIQFCACEDDAELQgAhAyABEI+AgIAAIQELIAAgAzcDACAAIAE3AwgLSgIBfgF/QgIhAgJAIAEoAggiAyABKAIMTw0AIAAgASkDACADrUIghkIEhBCDgICAADcDCCABIANBAWo2AghCACECCyAAIAI3AwALHAAgACABrUIghkIEhCACrUIghkIEhBCkgICAAAsZAAJAIAEgAEkNACABIABrDwsQtICAgAAAC4wBAgF/AX4jgICAgABBEGsiACSAgICAACAAELaAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBC3gICAAAsgAEEANgIAAkACQCAAELGAgIAAIgFCAhC5gICAAEUNACABQgIQgICAgAAiAUL/AYNCBFENAQALEMWAgIAAAAsgAEEQaiSAgICAACABQiCIpwvTAQICfwN+I4CAgIAAQSBrIgIkgICAgABBACEDAkADQCADQRhGDQEgAkEIaiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUHwgsCAAEEDIAJBCGpBAxDpgICAACACKQMIIgFC/wGDQssAUg0AIAIpAxAiBUL/AYNCzQBSDQACQCACKQMYIganQf8BcSIDQcoARg0AIANBDkcNAQsgACABNwMYIAAgBjcDECAAIAU3AwhCACEECyAAIAQ3AwAgAkEgaiSAgICAAAu+AQICfwF+I4CAgIAAQSBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUGYg8CAAEECIAJBAhDpgICAACACQRBqIAIpAwAQx4GAgAAgAigCEA0AIAIpAxghASACQRBqIAIpAwgQ7oCAgAAgAigCEA0AIAAgAikDGDcDECAAIAE3AwhCACEECyAAIAQ3AwAgAkEgaiSAgICAAAvgAQICfwJ+I4CAgIAAQTBrIgIkgICAgABBACEDAkADQCADQRhGDQEgAkEIaiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUG4g8CAAEEDIAJBCGpBAxDpgICAACACKQMIIgFC/wGDQssAUg0AIAJBIGogAikDEBDHgYCAACACKAIgDQAgAikDKCEFIAJBIGogAikDGBDugICAACACKAIgDQAgAikDKCEEIAAgATcDGCAAIAQ3AxAgACAFNwMIQgAhBAsgACAENwMAIAJBMGokgICAgAALlgECAX4CfyAAKQMAIQEDQAJAIAFQRQ0AQYCAxAAPCwJAAkAgAUIwiKdBP3EiAkEBRw0AQd8AIQIMAQsCQAJAAkAgAkF/akELTw0AQS4hAwwBCwJAIAJBdGpBGk8NAEE1IQMMAQsgAkElTQ0BQTshAwsgAiADaiECDAELIAAgAUIGhiIBNwMADAELCyAAIAFCBoY3AwAgAgsaACAArUIghkIEhCABrUIghkIEhBChgICAAAujAgIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAxC2gICAAAJAIAMoAgBBAUcNACADKAIEIAMoAggQt4CAgAALEJyAgIAAIQQgAyAAQRh0IABBgP4DcUEIdHIgAEEIdkGA/gNxIABBGHZycjYCACAEIAQQhICAgABCgICAgHCDQgSEIANBBBCjgYCAACEEIAMgAUI4hiABQoD+A4NCKIaEIAFCgID8B4NCGIYgAUKAgID4D4NCCIaEhCABQgiIQoCAgPgPgyABQhiIQoCA/AeDhCABQiiIQoD+A4MgAUI4iISEhDcDACAEIAQQhICAgABCgICAgHCDQgSEIANBCBCjgYCAACACEJ2AgIAAEJOAgIAAEIiAgIAAIQEgA0EQaiSAgICAACABC50CAgJ/AX4jgICAgABBEGsiASSAgICAAAJAAkBBASAAp0H/AXEiAkEAR0EBdCACQQFGGyICQQJGDQAgARC2gICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQt4CAgAALELqAgIAAIQAQ5ICAgAAgAnNBAXFFDQEgAUEANgIAIAEgAkICEPuAgIAAAkACQCACQQFxDQBCjtKq3O6sz/UAENCAgIAAIQMgASAANwMAIANB9IbAgABBASABQQEQ0YCAgAAQjICAgAAaDAELQo7SqtzurAMQ0ICAgAAhAyABIAA3AwAgA0HkhsCAAEEBIAFBARDRgICAABCMgICAABoLIAFBEGokgICAgABCAg8LAAtCg4CAgMCXARDEgICAAAALGgAgABDlgICAACABrUL/AYMgAhCWgICAABoLjQEBAn8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AQQEgAadB/wFxIgNBAEdBAXQgA0EBRhsiA0ECRg0AIAJBBGoQtoCAgAACQCACKAIEQQFHDQAgAigCCCACKAIMELeAgIAACxC6gICAABogACADQQFxENSAgIAAIAJBEGokgICAgABCAg8LAAujAwEDfyOAgICAAEEgayICJICAgIAAAkACQAJAAkAgAEL/AYNCzQBSDQBBASABp0H/AXEiA0EAR0EBdCADQQFGGyIDQQJGDQAgAkEQahC2gICAAAJAIAIoAhBBAUcNACACKAIUIAIoAhgQt4CAgAALELqAgIAAGiAAEOGAgIAAIQQCQAJAIANBAXENACAERQ0DIAJBBzYCECACIAA3AxggAkEQahDlgICAAEIBEJeAgIAAGhDbgICAACIERQ0FIARBf2ohBAwBCyAEDQMgAkEHNgIQIAIgADcDGCACQRBqEP6AgIAAIAJBBGoQzoCAgAACQCACKAIEQQFHDQAgAkEQaiACKAIIIAIoAgwQz4CAgAALENuAgIAAQQFqIgRFDQQLIAQQ/4CAgABBkIbAgABBDRDWgICAABDQgICAACEBIAIgADcDGCACIAOtNwMQIAFBqIbAgABBAiACQRBqQQIQ0YCAgAAQjICAgAAaIAJBIGokgICAgABCAg8LAAtCg4CAgKCXARDEgICAAAALQoOAgICglgEQxICAgAAACxC0gICAAAALDgAgAEEBQgEQ+4CAgAALMQEBfyOAgICAAEEQayIBJICAgIAAIAFBCTYCACABIAAQzIGAgAAgAUEQaiSAgICAAAvuAgEDfyOAgICAAEEgayICJICAgIAAAkACQAJAIABC/wGDQs0AUg0AQQEgAadB/wFxIgNBAEdBAXQgA0EBRhsiA0ECRg0AIAJBEGoQtoCAgAACQCACKAIQQQFHDQAgAigCFCACKAIYELeAgIAACxC6gICAABogABDdgICAACEEAkACQCADQQFxDQAgBEUNAyACQQg2AhAgAiAANwMYIAJBEGoQ5YCAgABCARCXgICAABoMAQsgBA0DIAJBCDYCECACIAA3AxggAkEQahD+gICAACACQQRqEM6AgIAAIAIoAgRBAUcNACACQRBqIAIoAgggAigCDBDPgICAAAtBuIbAgABBDBDWgICAABDQgICAACEBIAIgADcDGCACIAOtNwMQIAFBzIbAgABBAiACQRBqQQIQ0YCAgAAQjICAgAAaIAJBIGokgICAgABCAg8LAAtCg4CAgLCXARDEgICAAAALQoOAgICwlgEQxICAgAAAC3oBAX8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgAkEEahC2gICAAAJAIAIoAgRBAUcNACACKAIIIAIoAgwQt4CAgAALIAAQ0oCAgAAgAUIgiKcQgoGAgAAgAkEQaiSAgICAAEICDwsAC3ICAX8BfiOAgICAAEEQayIBJICAgIAAIAFBBDYCACABIAAQzIGAgABB/IbAgABBGhDWgICAABDQgICAACECIAEgAK1CIIZCBIQ3AwAgAkGkh8CAAEEBIAFBARDRgICAABCMgICAABogAUEQaiSAgICAAAusAQEBfyOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCzQBSDQAgAhC2gICAAAJAIAIoAgBBAUcNACACKAIEIAIoAggQt4CAgAALIAAQ0oCAgAAgARCEgYCAAEGsh8CAAEETENaAgIAAENCAgIAAIQAgAiABNwMAIABB0IfAgABBASACQQEQ0YCAgAAQjICAgAAaIAJBEGokgICAgABCAg8LAAsxAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEBNgIAIAEgABDNgYCAACABQRBqJICAgIAAC5cCAQF/I4CAgIAAQSBrIgMkgICAgAACQCAAQv8Bg0LNAFINACABQv8Bg0IEUg0AIAJC/wGDQsgAUg0AIANBEGoQtoCAgAACQCADKAIQQQFHDQAgAygCFCADKAIYELeAgIAACyAAENKAgIAAIANBBTYCECADIAFCIIg+AhQgA0EQahDlgICAACACQgEQloCAgAAaIANBBGoQzoCAgAACQCADKAIEQQFHDQAgA0EQaiADKAIIIAMoAgwQz4CAgAALQfiHwIAAQRoQ1oCAgAAQ0ICAgAAhACADIAI3AxggAyABQoSAgIBwgzcDECAAQaiIwIAAQQIgA0EQakECENGAgIAAEIyAgIAAGiADQSBqJICAgIAAQgIPCwALrAEBAX8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQs0AUg0AIAIQtoCAgAACQCACKAIAQQFHDQAgAigCBCACKAIIELeAgIAACyAAENKAgIAAIAEQh4GAgABBuIjAgABBEhDWgICAABDQgICAACEAIAIgATcDACAAQdSIwIAAQQEgAkEBENGAgIAAEIyAgIAAGiACQRBqJICAgIAAQgIPCwALMQEBfyOAgICAAEEQayIBJICAgIAAIAFBAzYCACABIAAQzYGAgAAgAUEQaiSAgICAAAt/AQF/I4CAgIAAQRBrIgIkgICAgAACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACQQRqELaAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBC3gICAAAsgABDSgICAACABEImBgIAAIAEQioGAgAAgAkEQaiSAgICAAEICDwsACzEBAX8jgICAgABBEGsiASSAgICAACABQQI2AgAgASAAEM2BgIAAIAFBEGokgICAgAALXQIBfwF+I4CAgIAAQRBrIgEkgICAgABB2IfAgABBDhDWgICAABDQgICAACECIAEgADcDCCACQfCHwIAAQQEgAUEIakEBENGAgIAAEIyAgIAAGiABQRBqJICAgIAACxsAAkAgAEL/AYNCzQBRDQAACyAAENOAgIAArQsIABDLgICAAAsJABDkgICAAK0LGwACQCAAQv8Bg0LNAFENAAALIAAQ44CAgACtCwgAENWAgIAACxsAAkAgAEL/AYNCzQBRDQAACyAAEOGAgIAArQsbAAJAIABC/wGDQs0AUQ0AAAsgABDdgICAAK0LGwACQCAAQv8Bg0LNAFENAAALIAAQ5oCAgACtCw8AENuAgIAArUIghkIEhAsPABDigICAAK1CIIZCBIQLCAAQ4ICAgAALCAAQ14CAgAALyAECAn8BfiOAgICAAEEgayIBJICAgIAAAkAgAEL/AYNCBFINACAAQiCIpyECIAEQtoCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELeAgIAACyABQQU2AgAgASACNgIEQgIhAAJAIAEQ5YCAgAAiA0IBELmAgIAARQ0AIANCARCAgICAACIAQv8Bg0LIAFINASABQRRqEM6AgIAAIAEoAhRBAUcNACABIAEoAhggASgCHBDPgICAAAsgAUEgaiSAgICAACAADwsACwgAEN+AgIAAC80BAQF/I4CAgIAAQSBrIgckgICAgAACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACQv8Bg0IEUg0AIANC/wGDQsgAUg0AIAdBEGogBBDugICAACAHKAIQQQFGDQAgB0EQaiAFEO+AgIAAIAcoAhBBAUYNACAGQv8Bg0LIAFINACAHIAEgAkIgiKcgBykDGCAGEJqBgIAAIAdBEGogBykDACAHKQMIEJuBgIAAIAcoAhBBAUYNACAHKQMYIQEgB0EgaiSAgICAACABDwsAC6YFBAF/Bn4CfwJ+I4CAgIAAQeAAayIFJICAgIAAIAUQtoCAgAACQCAFKAIAQQFHDQAgBSgCBCAFKAIIELeAgIAACwJAEOSAgIAADQACQCABEOaAgIAARQ0AIAUgAhCdgYCAAAJAAkAgBSgCAEEBcUUNACAFKQMoIQYgBSkDICEHIAUpAxghCCAFKQMQIQkgBTUCMCEKENeAgIAAIQsQ4oCAgAAhDBDGgICAACENEN+AgIAAIQ4QkYCAgAAhDwJAAkAgA0L//////////wBWDQAgA0IIhkIGhCEDDAELIAMQmICAgAAhAwsgBUHQAGogByAGEOyAgIAAIAUoAlANASAFKQNYIQYgBUHQAGogCSAIEOyAgIAAIAUoAlBBAUYNASAFKQNYIQcgBSABNwNIIAUgCzcDOCAFIAQ3AzAgBSAHNwMgIAUgBjcDGCAFIAKtQiCGQgSENwMQIAUgDK1CIIZCBIQ3AwggBSADNwMAIAUgCkIghkIEhDcDKCAFIA2tQiCGQgSENwNAIAVBqInAgABBCiAFQQoQ0YCAgAA3A1ggBSAPNwNQQQAhAgNAAkAgAkEQRw0AQQAhAgJAA0AgAkEQRg0BIAUgAmogBUHQAGogAmopAwA3AwAgAkEIaiECDAALCwJAAkAgDkKO1Oq1kNeyASAFQQIQnoGAgAAQmYCAgAAiA6dB/wFxIgJBxQBGDQACQCACQQtHDQAgA0I/hyEBIANCCIchAwwCCxC0gICAAAALIAMQmoCAgAAhASADEJuAgIAAIQMLIAAgAzcDACAAIAE3AwggBUHgAGokgICAgAAPCyAFIAJqQgI3AwAgAkEIaiECDAALC0KDgICAIBDEgICAAAsAC0KDgICAkJcBEMSAgIAAAAtCg4CAgKCYARDEgICAAAALWwACQAJAIAFCgICAgICAgMAAfEL//////////wBWDQAgASABhSACIAFCP4eFhEIAUg0AIAFCCIZCC4QhAQwBCyACIAEQpYCAgAAhAQsgAEIANwMAIAAgATcDCAvHAgEBfyOAgICAAEHAAGsiBySAgICAAAJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACQv8Bg0IEUg0AIANC/wGDQsgAUg0AIAcgBBDugICAACAHKAIAQQFGDQAgByAFEO+AgIAAIAcoAgBBAUYNACAGQv8Bg0LIAFINACAHKQMIIQMgBxC2gICAAAJAIAcoAgBBAUcNACAHKAIEIAcoAggQt4CAgAALIAAQgYCAgAAaIAAQ44CAgABFDQEgByABIAJCIIinIAMgBhCagYCAABDggICAACEAIAdBMGogBykDACAHKQMIEJuBgIAAIAcoAjBBAUcNAgsAC0KDgICAgJgBEMSAgIAAAAsgBykDOCEBIAcgADcDKCAHIAE3AyBBtILAgABBAiAHQSBqQQIQ0YCAgAAhACAHQcAAaiSAgICAACAAC/QBAgF/AX4jgICAgABB0ABrIgIkgICAgAAgAkEQahC2gICAAAJAIAIoAhBBAUcNACACKAIUIAIoAhgQt4CAgAALIAJBATYCACACIAE2AgQCQAJAAkAgAhCxgICAACIDQgEQuYCAgABFDQAgAkEQaiADQgEQgICAgAAQ6ICAgAAgAigCEEEBcUUNAQALIABCADcDCCAAQgA3AwAMAQsgAEEQaiACQRBqQRBqQTAQz4GAgAAaIABCADcDCCAAQgE3AwAgAkEQahDOgICAACACKAIQQQFHDQAgAiACKAIUIAIoAhgQsICAgAALIAJB0ABqJICAgIAACxoAIACtQiCGQgSEIAGtQiCGQgSEEKOAgIAAC/YEBQF/AX4BfwF+An8jgICAgABB4AFrIgIkgICAgAACQAJAIABC/wGDQs0AUg0AIAFC/wGDQssAUg0AIAJB8ABqELaAgIAAAkAgAigCcEEBRw0AIAIoAnQgAigCeBC3gICAAAsgABDSgICAACABEIKAgIAAQiCIIQMgAkHwAGpBEGohBEIAIQACQANAIAAgA1ENASABIABCIIZCBIQQg4CAgAAhBUEAIQYCQANAIAZBEEYNASACQeAAaiAGakICNwMAIAZBCGohBgwACwsCQAJAIAVC/wGDQswAUg0A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CyACIAAQi4CAgAAQvIGAgAAgAEEBEL2BgIAAIAFBMGokgICAgAALuAECAX8CfiOAgICAAEEQayIBJICAgIAAAkACQCAARQ0AIAAQv4CAgAAQgoCAgABCIIinSw0BQQEQp4GAgAAgAK1CIIZCBIQiAkICEJaAgIAAGkGAhMCAAEENENaAgIAAENCAgIAAIQMgASACNwMIIANBmITAgABBASABQQhqQQEQ0YCAgAAQjICAgAAaIAFBEGokgICAgAAPC0KDgICAsIUBEMSAgIAAAAtCg4CAgJCFARDEgICAAAALmgEBAn8jgICAgABBEGsiAySAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQs0AUg0AQQEgAqdB/wFxIgRBAEdBAXQgBEEBRhsiBEECRg0AIANBBGoQtoCAgAACQCADKAIEQQFHDQAgAygCCCADKAIMELeAgIAACyAAENKAgIAAIAEgBEEBcRDKgICAACADQRBqJICAgIAAQgIPCwALjQEBAn8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AQQEgAadB/wFxIgNBAEdBAXQgA0EBRhsiA0ECRg0AIAJBBGoQtoCAgAACQCACKAIEQQFHDQAgAigCCCACKAIMELeAgIAACxC6gICAABogACADQQFxEMqAgIAAIAJBEGokgICAgABCAg8LAAt/AQF/I4CAgIAAQRBrIgEkgICAgAAgASAAEO6AgIAAAkAgASgCAEEBRg0AIAEpAwghABC6gICAABogARC2gICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQt4CAgAALQQEQroGAgAAgABCegICAABogAUEQaiSAgICAAEICDwsACxgAELCBgIAAIACtQv8Bg0ICEJaAgIAAGgulAQEBfyOAgICAAEEQayIBJICAgIAAAkAgAEL/AYNCAlINABC6gICAABogAUEEahC2gICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQt4CAgAALAkACQBCwgYCAACIAQgIQuYCAgABFDQAgAEICEICAgIAAp0H/AXEOAgABAgtCg4CAgKCDARDEgICAAAALQQAQroGAgAAgAUEQaiSAgICAAEICDwsAC2ACAX8BfiOAgICAAEEQayIAJICAgIAAIABBqoXAgABBCRDHgICAAAJAAkAgACgCAA0AIAAgACkDCBDIgICAACAAKAIAQQFHDQELAAsgACkDCCEBIABBEGokgICAgAAgAQsIABC7gICAAAuHBQEFfyOAgICAAEHQAGsiAiSAgICAACACQShqIAAQs4GAgAACQAJAIAIoAihBAkYNACACQQhqQQhqIAJBKGpBCGoiAygCADYCACACIAIpAig3AwggAkEoaiABELOBgIAAIAIoAihBAkYNACACQRhqQQhqIAMoAgA2AgAgAiACKQIoNwMYIAJBKGoQtoCAgAACQCACKAIoQQFHDQAgAigCLCACKAIwELeAgIAACxC6gICAABoCQAJAAkAQtYCAgAANABCfgICAACEAEKCAgIAAQiCIIgEgAEIgiCIAVA0EIAGnIACnayIDQYD7gAMgA0GA+4ADSRshBCACIAJBGGo2AiwgAiACQQhqNgIoQQAhAwNAIANBCEYNAwJAIAJBKGogA2ooAgAiBSgCAEEBcUUNACAFKAIIIgYgBEsNAyAFKAIEIAZLDQMLIANBBGohAwwACwtCg4CAgND/ABDEgICAAAALQoOAgIDA/wAQxICAgAAACwJAAkAgAigCCEEBRw0AIAIoAgwgAigCEBClgYCAAAwBC0EBELiAgIAAQgIQl4CAgAAaCwJAAkAgAigCGEEBRw0AIAIoAhwgAigCIBCmgYCAAAwBC0ECELiAgIAAQgIQl4CAgAAaCyACQShqQQhqIAJBCGpBCGooAgA2AgAgAkE8aiACQRhqQQhqKAIANgIAIAIgAikDCDcDKCACIAIpAxg3AjRBzITAgABBDxDWgICAABDQgICAACEAIAJBKGoQtIGAgAAhASACIAJBNGoQtIGAgAA3A0ggAiABNwNAIABB8ITAgABBAiACQcAAakECENGAgIAAEIyAgIAAGiACQdAAaiSAgICAAEICDwsACxC0gICAAAALaAEBfyOAgICAAEEQayICJICAgIAAAkACQCABQgJRDQAgAkEEaiABEMiBgIAAAkAgAigCBEUNACAAQQI2AgAMAgsgACACKQIINwIEIABBATYCAAwBCyAAQQA2AgALIAJBEGokgICAgAALQwIBfwF+I4CAgIAAQRBrIgEkgICAgAAgASAAELaBgIAAAkAgASgCAEEBRw0AAAsgASkDCCECIAFBEGokgICAgAAgAgvCAQICfwF+I4CAgIAAQcAAayIAJICAgIAAIABBCGoQtoCAgAACQCAAKAIIQQFHDQAgACgCDCAAKAIQELeAgIAACyAAQQhqELaAgIAAIABBFGoiARDOgICAACAAQTBqIABBCGoQtoGAgAACQAJAIAAoAjANACAAKQM4IQIgAEEwaiABELaBgIAAIAAoAjBBAUcNAQsACyAAIAApAzg3AyggACACNwMgIABBIGpBAhCegYCAACECIABBwABqJICAgIAAIAILMAACQCABKAIAQQFHDQAgACABKAIEIAEoAggQyYGAgAAPCyAAQgA3AwAgAEICNwMIC6sBAQF/I4CAgIAAQSBrIgAkgICAgAAgAEEMahC2gICAAAJAIAAoAgxBAUcNACAAKAIQIAAoAhQQt4CAgAALELqAgIAAGgJAELWAgIAARQ0AQoOAgIDg/wAQxICAgAAAC0EAELiAgIAAQgFCAhCWgICAABpBgIXAgABBEhDWgICAABDQgICAAEEEQQAgAEEYakEAENGAgIAAEIyAgIAAGiAAQSBqJICAgIAAQgILCQAQtYCAgACtCzEAAkAgAEL/AYNCBFINACABQv8Bg0IEUg0AIABCIIinIAFCIIinELeAgIAAQgIPCwAL3AICAn8BfiOAgICAAEEgayICJICAgIAAIAJBEGogABC7gYCAAAJAAkACQAJAIAIoAhBBAUYNAEEBIAGnQf8BcSIDQQBHQQF0IANBAUYbIgNBAkYNACACKQMYIQAgAkEQahC2gICAAAJAIAIoAhBBAUcNACACKAIUIAIoAhgQt4CAgAALELqAgIAAGgJAAkAgA0EBcQ0AIAJBCGoQv4CAgAAiASAAEImAgIAAEMyAgIAAIAIoAggiA0ECRg0DIANFDQQCQCACKAIMIgMgARCCgICAAEIgiKdPDQAgASADrUIghkIEhBCKgICAACEBCyABEIKAgIAAIQQQvYCAgAAgBEIgiKdLDQUgARC8gYCAACAAQQAQvYGAgAAMAQsgABCpgYCAAAsgAkEgaiSAgICAAEICDwsACxC0gICAAAALQoOAgICAhQEQxICAgAAAC0KDgICAkIUBEMSAgIAAAAsjAAJAIAFC/wGDQsgAUQ0AIABCATcDAA8LIAAgARDAgICAAAtbAQF/I4CAgIAAQRBrIgEkgICAgABBABCngYCAACAAQgEQloCAgAAaIAFBBGoQzoCAgAACQCABKAIEQQFHDQAgASgCCCABKAIMEKiBgIAACyABQRBqJICAgIAAC9ABAwF/AX4BfyOAgICAAEEgayICJICAgIAAQeyDwIAAQQoQ1oCAgAAhAyACIAA3AwggAiADNwMAQQAhBANAAkAgBEEQRw0AQQAhBAJAA0AgBEEQRg0BIAJBEGogBGogAiAEaikDADcDACAEQQhqIQQMAAsLIAJBEGpBAhCegYCAACEAIAIgAa1C/wGDNwMQIABB+IPAgABBASACQRBqQQEQ0YCAgAAQjICAgAAaIAJBIGokgICAgAAPCyACQRBqIARqQgI3AwAgBEEIaiEEDAALC20BAX8jgICAgABBEGsiASSAgICAAAJAIABC/wGDQgRSDQAgAUEEahC2gICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQt4CAgAALELqAgIAAGiAAQiCIpxCqgYCAACABQRBqJICAgIAAQgIPCwALVAIBfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahC2gICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQt4CAgAALEL+AgIAAIQEgAEEQaiSAgICAACABC2QCAX8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQtoCAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELeAgIAACxC/gICAABCCgICAACEBIABBEGokgICAgAAgAUKAgICAcINCBIQL3AECAX8CfiOAgICAAEEwayIBJICAgIAAIAFBIGogABC7gYCAAAJAIAEoAiBBAUYNACABKQMoIQIgAUEgahC2gICAAAJAIAEoAiBBAUcNACABKAIkIAEoAigQt4CAgAALEL+AgIAAIgAQgoCAgAAhAyABQQA2AgggASAANwMAIAEgA0IgiD4CDAJAA0AgAUEgaiABEMKAgIAAIAFBEGogASkDICABKQMoELOAgIAAIAEpAxAiAKdBAUcNASABKQMYIAIQw4CAgABFDQALCyABQTBqJICAgIAAIAAPCwALDwAQxoCAgACtQiCGQgSEC1QBAX8jgICAgABBEGsiAiSAgICAACACIAAQ7oCAgAACQCACKAIAQQFGDQAgAUL/AYNCywBSDQAgAikDCCABELyAgIAAIAJBEGokgICAgABCAg8LAAtlAQF/I4CAgIAAQRBrIgMkgICAgAAgAyAAEO6AgIAAAkAgAygCAEEBRg0A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bmZpZ3Nfc2V0aW5zdGFuY2VwZXJzaXN0ZW50AAAAWwIQAAgAAABjAhAACgAAAHR0bF9jb25maWdzX2Zyb3plbkZyb3plbkluc3RhbmNlUGVyc2lzdGVudE1pZ3JhdGluZ2FjdGl2ZWFkbWluAACzAhAABgAAALkCEAAFAAAAc2V0X3N1cHBvcnRlZF9tZXNzYWdlX2xpYm1lc3NhZ2VfbGlic3VwcG9ydGVkAAAA6QIQAAsAAAD0AhAACQAAAHNldF9hbGxvd2xpc3RhbGxvd2Vkb2FwcB0DEAAHAAAAJAMQAAQAAABzZXRfZGVueWxpc3RkZW5pZWQAAEQDEAAGAAAAJAMQAAQAAABwYXVzZXIAAFwDEAAGAAAAdW5wYXVzZXJsAxAACAAAAHNldF9kZWZhdWx0X211bHRpcGxpZXJfYnBzbXVsdGlwbGllcl9icHOWAxAADgAAAHNldF9kZXBvc2l0X2FkZHJlc3NkZXBvc2l0X2FkZHJlc3MAAL8DEAAPAAAAc2V0X3ByaWNlX2ZlZWRwcmljZV9mZWVk5gMQAAoAAABzZXRfc3VwcG9ydGVkX29wdGlvbl90eXBlc2RzdF9laWRvcHRpb25fdHlwZXMAAAASBBAABwAAABkEEAAMAAAAc2V0X3dvcmtlcl9mZWVfbGliZmVlX2xpYgAAAEoEEAAHAAAAY29uZmlybWF0aW9uc2RlZmF1bHRfbXVsdGlwbGllcl9icHNmbG9vcl9tYXJnaW5fdXNkZ2Fzb3B0aW9uc3F1b3J1bXNlbmRlcgAAAFwEEAANAAAAaQQQABYAAAASBBAABwAAAH8EEAAQAAAAjwQQAAMAAACWAxAADgAAAJIEEAAHAAAA5gMQAAoAAACZBBAABgAAAJ8EEAAGAAAAUGF1c2VkRGVwb3NpdEFkZHJlc3NQcmljZUZlZWRXb3JrZXJGZWVMaWJEZWZhdWx0TXVsdGlwbGllckJwc1N1cHBvcnRlZE9wdGlvblR5cGVzTWVzc2FnZUxpYnNBbGxvd2xpc3REZW55bGlzdEFsbG93bGlzdFNpemVBZG1pbnMAk+4BDmNvbnRyYWN0c3BlY3YwAAAABAAAAAAAAAAAAAAACER2bkVycm9yAAAABwAAAAAAAAAPQXV0aERhdGFFeHBpcmVkAAAAAAEAAAAAAAAAD0VpZE5vdFN1cHBvcnRlZAAAAAACAAAAAAAAAA9IYXNoQWxyZWFkeVVzZWQAAAAAAwAAAAAAAAARSW52YWxpZEludm9jYXRpb24AAAAAAAAEAAAAAAAAAApJbnZhbGlkVmlkAAAAAAAFAAAAAAAAABFOb25Db250cmFjdEludm9rZQAAAAAAAAYAAAAAAAAACU9ubHlBZG1pbgAAAAAAAAcAAAAFAAAAAAAAAAAAAAAMU2V0RHN0Q29uZmlnAAAAAQAAAA5zZXRfZHN0X2NvbmZpZwAAAAAAAQAAAAAAAAAGcGFyYW1zAAAAAAPqAAAH0AAAAA5Ec3RDb25maWdQYXJhbQAAAAAAAAAAAAIAAAABAAAAckNvbmZpZ3VyYXRpb24gZm9yIGEgZGVzdGluYXRpb24gY2hhaW4uCgpDb250YWlucyBmZWUgY2FsY3VsYXRpb24gcGFyYW1ldGVycyBzcGVjaWZpYyB0byBlYWNoIGRlc3RpbmF0aW9uIGVuZHBvaW50LgAAAAAAAAAAAAlEc3RDb25maWcAAAAAAAADAAAAO01pbmltdW0gZmVlIG1hcmdpbiBpbiBVU0QgKHNjYWxlZCBieSBuYXRpdmUgZGVjaW1hbHMgcmF0ZSkuAAAAABBmbG9vcl9tYXJnaW5fdXNkAAAACgAAAC5HYXMgZm9yIHZlcmlmaWNhdGlvbiBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4uAAAAAAADZ2FzAAAAAAoAAABnRmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICgxMDAwMCA9IDEwMCUpLgpJZiAwLCB0aGUgZGVmYXVsdCBtdWx0aXBsaWVyIGZyb20gd29ya2VyIGNvbmZpZyBpcyB1c2VkLgAAAAAObXVsdGlwbGllcl9icHMAAAAAAAQAAAABAAAANlBhcmFtZXRlciBmb3Igc2V0dGluZyBkZXN0aW5hdGlvbiBjaGFpbiBjb25maWd1cmF0aW9uLgAAAAAAAAAAAA5Ec3RDb25maWdQYXJhbQAAAAAAAgAAACdUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBkZXN0aW5hdGlvbi4AAAAABmNvbmZpZwAAAAAH0AAAAAlEc3RDb25maWcAAAAAAAAcVGhlIGRlc3RpbmF0aW9uIGVuZHBvaW50IElELgAAAAdkc3RfZWlkAAAAAAQAAAABAAAAiVJlcHJlc2VudHMgYSBzaW5nbGUgY29udHJhY3QgaW52b2NhdGlvbiBmb3IgbXVsdGlzaWcgYXV0aG9yaXphdGlvbi4KClVzZWQgaW4gYGhhc2hfY2FsbF9kYXRhYCB0byBjb21wdXRlIHRoZSBoYXNoIHRoYXQgc2lnbmVycyBzaWduIG92ZXIuAAAAAAAAAAAAAARDYWxsAAAAAwAAABNGdW5jdGlvbiBhcmd1bWVudHMuAAAAAARhcmdzAAAD6gAAAAAAAAAYRnVuY3Rpb24gbmFtZSB0byBpbnZva2UuAAAABGZ1bmMAAAARAAAAGFRhcmdldCBjb250cmFjdCBhZGRyZXNzLgAAAAJ0bwAAAAAAEwAAAAAAAAA0VmFsaWRhdGVzIGF1dGhvcml6YXRpb24gZm9yIERWTiBjb250cmFjdCBvcGVyYXRpb25zLgAAAAxfX2NoZWNrX2F1dGgAAAADAAAAAAAAABFzaWduYXR1cmVfcGF5bG9hZAAAAAAAA+4AAAAgAAAAAAAAAAlhdXRoX2RhdGEAAAAAAAfQAAAAE1RyYW5zYWN0aW9uQXV0aERhdGEAAAAAAAAAAA1hdXRoX2NvbnRleHRzAAAAAAAD6gAAB9AAAAAHQ29udGV4dAAAAAABAAAD6QAAA+0AAAAAAAAAAwAAAAEAAADHQXV0aGVudGljYXRpb24gZGF0YSBmb3IgRFZOIGNvbnRyYWN0IHRyYW5zYWN0aW9ucy4KClRoaXMgc3RydWN0IGlzIHVzZWQgd2l0aCBTb3JvYmFuJ3MgY3VzdG9tIGFjY291bnQgaW50ZXJmYWNlIHRvIGF1dGhvcml6ZQp0cmFuc2FjdGlvbnMgdGhyb3VnaCBhIGNvbWJpbmF0aW9uIG9mIGFkbWluIHNpZ25hdHVyZSBhbmQgbXVsdGlzaWcgcXVvcnVtLgAAAAAAAAAAE1RyYW5zYWN0aW9uQXV0aERhdGEAAAAABAAAAERFeHBpcmF0aW9uIHRpbWVzdGFtcCAobGVkZ2VyIHRpbWUpIGFmdGVyIHdoaWNoIHRoaXMgYXV0aCBpcyBpbnZhbGlkLgAAAApleHBpcmF0aW9uAAAAAAAGAAAAPUVudGl0eSBzdWJtaXR0aW5nIHRoZSB0cmFuc2FjdGlvbiAoYWRtaW4sIG9yIHBlcm1pc3Npb25sZXNzKS4AAAAAAAAGc2VuZGVyAAAAAAfQAAAABlNlbmRlcgAAAAAAPFNpZ25hdHVyZXMgZnJvbSBtdWx0aXNpZyBzaWduZXJzIChzZWNwMjU2azEsIDY1IGJ5dGVzIGVhY2gpLgAAAApzaWduYXR1cmVzAAAAAAPqAAAD7gAAAEEAAAAyVmVyaWZpZXIgSUQgLSBtdXN0IG1hdGNoIHRoZSBEVk4ncyBjb25maWd1cmVkIFZJRC4AAAAAAAN2aWQAAAAABAAAAAIAAAAAAAAAAAAAAAZTZW5kZXIAAAAAAAIAAAAAAAAALk5vIGV4cGxpY2l0IHNlbmRlciAocGVybWlzc2lvbmxlc3MgZXhlY3V0aW9uKS4AAAAAAAROb25lAAAAAQAAAI9BIHJlZ2lzdGVyZWQgYWRtaW4gKGVkMjU1MTkpIHN1Ym1pdHRpbmcgdGhlIHRyYW5zYWN0aW9uLgpUaGUgdHVwbGUgaXMgYChwdWJsaWNfa2V5LCBzaWduYXR1cmUpYCB3aGVyZSB0aGUgc2lnbmF0dXJlIGNvdmVycyB0aGUgU29yb2JhbiBwYXlsb2FkLgAAAAAFQWRtaW4AAAAAAAACAAAD7gAAACAAAAPuAAAAQAAAAAAAAADkU2V0cyB0aGUgcGF1c2VkIHN0YXRlIG9mIHRoZSB3b3JrZXIuCgpXaGVuIHBhdXNlZCwgdGhlIHdvcmtlciB3aWxsIHJlamVjdCBuZXcgam9iIGFzc2lnbm1lbnRzIChlLmcuLCBhc3NpZ25fam9iLCBnZXRfZmVlKS4KRXhpc3Rpbmcgam9icyBpbiBwcm9ncmVzcyBhcmUgbm90IGFmZmVjdGVkLgoKIyBBcmd1bWVudHMKKiBgcGF1c2VkYCAtIGB0cnVlYCB0byBwYXVzZSwgYGZhbHNlYCB0byB1bnBhdXNlAAAACnNldF9wYXVzZWQAAAAAAAEAAAAAAAAABnBhdXNlZAAAAAAAAQAAAAAAAAAAAAABN1NldHMgd2hldGhlciBhIG1lc3NhZ2UgbGlicmFyeSBpcyBzdXBwb3J0ZWQgYnkgdGhpcyB3b3JrZXIuCgpNZXNzYWdlIGxpYnJhcmllcyAoZS5nLiwgVUxOMzAyKSBjYWxsIHdvcmtlcnMgdG8gYXNzaWduIGpvYnMuIE9ubHkgc3VwcG9ydGVkCmxpYnJhcmllcyBjYW4gaW50ZXJhY3Qgd2l0aCB0aGlzIHdvcmtlci4KCiMgQXJndW1lbnRzCiogYG1lc3NhZ2VfbGliYCAtIFRoZSBtZXNzYWdlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcwoqIGBzdXBwb3J0ZWRgIC0gYHRydWVgIHRvIGFkZCBzdXBwb3J0LCBgZmFsc2VgIHRvIHJlbW92ZSBzdXBwb3J0AAAAABlzZXRfc3VwcG9ydGVkX21lc3NhZ2VfbGliAAAAAAAAAgAAAAAAAAALbWVzc2FnZV9saWIAAAAAEwAAAAAAAAAJc3VwcG9ydGVkAAAAAAAAAQAAAAAAAAAAAAABWFNldHMgYWxsb3dsaXN0IHN0YXR1cyBmb3IgYW4gT0FwcCBhZGRyZXNzLgoKV2hlbiB0aGUgYWxsb3dsaXN0IGlzIGVtcHR5LCBhbGwgT0FwcHMgYXJlIGFsbG93ZWQgKHVubGVzcyBvbiBkZW55bGlzdCkuCldoZW4gdGhlIGFsbG93bGlzdCBpcyBub3QgZW1wdHksIG9ubHkgYWxsb3dsaXN0ZWQgT0FwcHMgYXJlIGFsbG93ZWQuCkRlbnlsaXN0IGFsd2F5cyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgYWxsb3dsaXN0LgoKIyBBcmd1bWVudHMKKiBgb2FwcGAgLSBUaGUgT0FwcCBjb250cmFjdCBhZGRyZXNzCiogYGFsbG93ZWRgIC0gYHRydWVgIHRvIGFkZCB0byBhbGxvd2xpc3QsIGBmYWxzZWAgdG8gcmVtb3ZlAAAADXNldF9hbGxvd2xpc3QAAAAAAAACAAAAAAAAAARvYXBwAAAAEwAAAAAAAAAHYWxsb3dlZAAAAAABAAAAAAAAAAAAAAEJU2V0cyBkZW55bGlzdCBzdGF0dXMgZm9yIGFuIE9BcHAgYWRkcmVzcy4KCkRlbnlsaXN0ZWQgT0FwcHMgYXJlIGJsb2NrZWQgZnJvbSB1c2luZyB0aGlzIHdvcmtlciwgZXZlbiBpZiB0aGV5J3JlIG9uCnRoZSBhbGxvd2xpc3QgKGRlbnlsaXN0IHRha2VzIHByZWNlZGVuY2UpLgoKIyBBcmd1bWVudHMKKiBgb2FwcGAgLSBUaGUgT0FwcCBjb250cmFjdCBhZGRyZXNzCiogYGRlbmllZGAgLSBgdHJ1ZWAgdG8gYWRkIHRvIGRlbnlsaXN0LCBgZmFsc2VgIHRvIHJlbW92ZQAAAAAAAAxzZXRfZGVueWxpc3QAAAACAAAAAAAAAARvYXBwAAAAEwAAAAAAAAAGZGVuaWVkAAAAAAABAAAAAAAAAAAAAAE7U2V0cyB0aGUgZGVmYXVsdCBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMuCgpUaGUgbXVsdGlwbGllciBpcyBhcHBsaWVkIHRvIGJhc2UgZmVlcyBkdXJpbmcgZmVlIGNhbGN1bGF0aW9uLiBVc2VkIHdoZW4Kbm8gZGVzdGluYXRpb24tc3BlY2lmaWMgbXVsdGlwbGllciBpcyBjb25maWd1cmVkLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gQWRtaW4gYWRkcmVzcyAobXVzdCBwcm92aWRlIGF1dGhvcml6YXRpb24pCiogYG11bHRpcGxpZXJfYnBzYCAtIE11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICgxMDAwMCA9IDF4LCAxMjAwMCA9IDEuMngpAAAAABpzZXRfZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAAAAAAAAAAAAA8VNldHMgdGhlIGRlcG9zaXQgYWRkcmVzcyB3aGVyZSB3b3JrZXIgZmVlcyBhcmUgY29sbGVjdGVkLgoKV2hlbiBqb2JzIGFyZSBhc3NpZ25lZCwgZmVlcyBhcmUgZGlyZWN0ZWQgdG8gdGhpcyBhZGRyZXNzLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gQWRtaW4gYWRkcmVzcyAobXVzdCBwcm92aWRlIGF1dGhvcml6YXRpb24pCiogYGRlcG9zaXRfYWRkcmVzc2AgLSBBZGRyZXNzIHRvIHJlY2VpdmUgY29sbGVjdGVkIGZlZXMAAAAAAAATc2V0X2RlcG9zaXRfYWRkcmVzcwAAAAACAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAAD2RlcG9zaXRfYWRkcmVzcwAAAAATAAAAAAAAAAAAAADrU2V0cyBzdXBwb3J0ZWQgZXhlY3V0b3Igb3B0aW9uIHR5cGVzIGZvciBhIGRlc3RpbmF0aW9uIGVuZHBvaW50LgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gQWRtaW4gYWRkcmVzcyAobXVzdCBwcm92aWRlIGF1dGhvcml6YXRpb24pCiogYGVpZGAgLSBEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikKKiBgb3B0aW9uX3R5cGVzYCAtIEVuY29kZWQgc3VwcG9ydGVkIG9wdGlvbiB0eXBlcwAAAAAac2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXMAAAAAAAMAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAADZWlkAAAAAAQAAAAAAAAADG9wdGlvbl90eXBlcwAAAA4AAAAAAAAAAAAAARJTZXRzIHRoZSB3b3JrZXIgZmVlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcy4KClRoZSBmZWUgbGlicmFyeSBjYWxjdWxhdGVzIGZlZXMgYmFzZWQgb24gZXhlY3V0b3Igb3B0aW9ucyBhbmQgcHJpY2UgZmVlZCBkYXRhLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gQWRtaW4gYWRkcmVzcyAobXVzdCBwcm92aWRlIGF1dGhvcml6YXRpb24pCiogYHdvcmtlcl9mZWVfbGliYCAtIEZlZSBsaWJyYXJ5IGNvbnRyYWN0IGFkZHJlc3MgaW1wbGVtZW50aW5nIGBJRXhlY3V0b3JGZWVMaWJgAAAAAAASc2V0X3dvcmtlcl9mZWVfbGliAAAAAAACAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAADndvcmtlcl9mZWVfbGliAAAAAAATAAAAAAAAAAAAAAESU2V0cyB0aGUgcHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzLgoKVGhlIHByaWNlIGZlZWQgcHJvdmlkZXMgZ2FzIHByaWNlcyBhbmQgZXhjaGFuZ2UgcmF0ZXMgZm9yIGNyb3NzLWNoYWluCmZlZSBjYWxjdWxhdGlvbnMuCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBBZG1pbiBhZGRyZXNzIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgcHJpY2VfZmVlZGAgLSBQcmljZSBmZWVkIGNvbnRyYWN0IGFkZHJlc3MgaW1wbGVtZW50aW5nIGBJTGF5ZXJaZXJvUHJpY2VGZWVkYAAAAAAADnNldF9wcmljZV9mZWVkAAAAAAACAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAACnByaWNlX2ZlZWQAAAAAABMAAAAAAAAAAAAAAFVSZXR1cm5zIHdoZXRoZXIgYW4gYWRkcmVzcyBpcyBhbiBhZG1pbi4KCiMgQXJndW1lbnRzCiogYGFkbWluYCAtIFRoZSBhZGRyZXNzIHRvIGNoZWNrAAAAAAAACGlzX2FkbWluAAAAAQAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAQAAAAEAAAAAAAAAHFJldHVybnMgYWxsIGFkbWluIGFkZHJlc3Nlcy4AAAAGYWRtaW5zAAAAAAAAAAAAAQAAA+oAAAATAAAAAAAAACVSZXR1cm5zIHdoZXRoZXIgdGhlIHdvcmtlciBpcyBwYXVzZWQuAAAAAAAABnBhdXNlZAAAAAAAAAAAAAEAAAABAAAAAAAAAG9SZXR1cm5zIHdoZXRoZXIgYSBtZXNzYWdlIGxpYnJhcnkgaXMgc3VwcG9ydGVkLgoKIyBBcmd1bWVudHMKKiBgbWVzc2FnZV9saWJgIC0gTWVzc2FnZSBsaWJyYXJ5IGNvbnRyYWN0IGFkZHJlc3MAAAAAGGlzX3N1cHBvcnRlZF9tZXNzYWdlX2xpYgAAAAEAAAAAAAAAC21lc3NhZ2VfbGliAAAAABMAAAABAAAAAQAAAAAAAABzUmV0dXJucyBhbGwgc3VwcG9ydGVkIG1lc3NhZ2UgbGlicmFyeSBhZGRyZXNzZXMuCgojIFJldHVybnMKVmVjdG9yIG9mIHN1cHBvcnRlZCBtZXNzYWdlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzc2VzLgAAAAAMbWVzc2FnZV9saWJzAAAAAAAAAAEAAAPqAAAAEwAAAAAAAABaUmV0dXJucyB3aGV0aGVyIGFuIE9BcHAgaXMgb24gdGhlIGFsbG93bGlzdC4KCiMgQXJndW1lbnRzCiogYG9hcHBgIC0gT0FwcCBjb250cmFjdCBhZGRyZXNzAAAAAAAPaXNfb25fYWxsb3dsaXN0AAAAAAEAAAAAAAAABG9hcHAAAAATAAAAAQAAAAEAAAAAAAAAWVJldHVybnMgd2hldGhlciBhbiBPQXBwIGlzIG9uIHRoZSBkZW55bGlzdC4KCiMgQXJndW1lbnRzCiogYG9hcHBgIC0gT0FwcCBjb250cmFjdCBhZGRyZXNzAAAAAAAADmlzX29uX2RlbnlsaXN0AAAAAAABAAAAAAAAAARvYXBwAAAAEwAAAAEAAAABAAAAAAAAAPtSZXR1cm5zIHdoZXRoZXIgYW4gT0FwcCBoYXMgYWNjZXNzIGNvbnRyb2wgbGlzdCAoQUNMKSBwZXJtaXNzaW9uLgoKQUNMIGV2YWx1YXRpb24gb3JkZXI6CjEuIElmIG9uIGRlbnlsaXN0IOKGkiBkZW5pZWQKMi4gSWYgYWxsb3dsaXN0IGlzIGVtcHR5IE9SIG9uIGFsbG93bGlzdCDihpIgYWxsb3dlZAozLiBPdGhlcndpc2Ug4oaSIGRlbmllZAoKIyBBcmd1bWVudHMKKiBgc2VuZGVyYCAtIE9BcHAgY29udHJhY3QgYWRkcmVzcyB0byBjaGVjawAAAAAHaGFzX2FjbAAAAAABAAAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAAAQAAAAAAAAAxUmV0dXJucyB0aGUgbnVtYmVyIG9mIGFkZHJlc3NlcyBvbiB0aGUgYWxsb3dsaXN0LgAAAAAAAA5hbGxvd2xpc3Rfc2l6ZQAAAAAAAAAAAAEAAAAEAAAAAAAAADNSZXR1cm5zIHRoZSBkZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cy4AAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAAAAAABAAAABAAAAAAAAAA1UmV0dXJucyB0aGUgZGVwb3NpdCBhZGRyZXNzIHdoZXJlIGZlZXMgYXJlIGNvbGxlY3RlZC4AAAAAAAAPZGVwb3NpdF9hZGRyZXNzAAAAAAAAAAABAAAAEwAAAAAAAAAoUmV0dXJucyB0aGUgcHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzLgAAAApwcmljZV9mZWVkAAAAAAAAAAAAAQAAABMAAAAAAAAAfFJldHVybnMgc3VwcG9ydGVkIG9wdGlvbiB0eXBlcyBmb3IgYSBkZXN0aW5hdGlvbiBlbmRwb2ludC4KCiMgQXJndW1lbnRzCiogYGVpZGAgLSBEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikAAAAaZ2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXMAAAAAAAEAAAAAAAAAA2VpZAAAAAAEAAAAAQAAA+gAAAAOAAAAAAAAADBSZXR1cm5zIHRoZSB3b3JrZXIgZmVlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcy4AAAAOd29ya2VyX2ZlZV9saWIAAAAAAAAAAAABAAAAEwAAAAAAAAB4Q2FsY3VsYXRlcyB0aGUgdmVyaWZpY2F0aW9uIGZlZSBmb3IgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgoKQ2FsbGVkIGJ5IHRoZSBzZW5kIGxpYnJhcnkgdG8gcXVvdGUgRFZOIGZlZXMgYmVmb3JlIHNlbmRpbmcuAAAAB2dldF9mZWUAAAAABwAAAAAAAAAIc2VuZF9saWIAAAATAAAAAAAAAAZzZW5kZXIAAAAAABMAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAANcGFja2V0X2hlYWRlcgAAAAAAAA4AAAAAAAAADHBheWxvYWRfaGFzaAAAA+4AAAAgAAAAAAAAAA1jb25maXJtYXRpb25zAAAAAAAABgAAAAAAAAAHb3B0aW9ucwAAAAAOAAAAAQAAAAsAAAAAAAAAuEFzc2lnbnMgYSB2ZXJpZmljYXRpb24gam9iIHRvIHRoaXMgRFZOIGFuZCByZXR1cm5zIGZlZSBwYXltZW50IGluZm8uCgpDYWxsZWQgYnkgdGhlIHNlbmQgbGlicmFyeSB3aGVuIGEgbWVzc2FnZSBpcyBzZW50LiBUaGUgRFZOIHdpbGwgbGF0ZXIKdmVyaWZ5IHRoZSBtZXNzYWdlIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi4AAAAKYXNzaWduX2pvYgAAAAAABwAAAAAAAAAIc2VuZF9saWIAAAATAAAAAAAAAAZzZW5kZXIAAAAAABMAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAANcGFja2V0X2hlYWRlcgAAAAAAAA4AAAAAAAAADHBheWxvYWRfaGFzaAAAA+4AAAAgAAAAAAAAAA1jb25maXJtYXRpb25zAAAAAAAABgAAAAAAAAAHb3B0aW9ucwAAAAAOAAAAAQAAB9AAAAAMRmVlUmVjaXBpZW50AAAAAAAAAERTZXRzIGRlc3RpbmF0aW9uIGNoYWluIGNvbmZpZ3VyYXRpb25zLiBSZXF1aXJlcyBhZG1pbiBhdXRob3JpemF0aW9uLgAAAA5zZXRfZHN0X2NvbmZpZwAAAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAAZwYXJhbXMAAAAAA+oAAAfQAAAADkRzdENvbmZpZ1BhcmFtAAAAAAAAAAAAAAAAAEFSZXR1cm5zIHRoZSBkZXN0aW5hdGlvbiBjb25maWd1cmF0aW9uIGZvciBhIHNwZWNpZmljIGVuZHBvaW50IElELgAAAAAAAApkc3RfY29uZmlnAAAAAAABAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAABAAAD6AAAB9AAAAAJRHN0Q29uZmlnAAAAAAAAAAAAACVSZXR1cm5zIHRoZSBWZXJpZmllciBJRCBmb3IgdGhpcyBEVk4uAAAAAAAAA3ZpZAAAAAAAAAAAAQAAAAQAAAAAAAAAd0NvbXB1dGVzIHRoZSBoYXNoIG9mIGNhbGwgZGF0YSBmb3IgbXVsdGlzaWcgc2lnbmluZy4KCk9mZi1jaGFpbiBzaWduZXJzIHVzZSB0aGlzIHRvIGNvbXB1dGUgdGhlIGhhc2ggdGhleSBuZWVkIHRvIHNpZ24uAAAAAA5oYXNoX2NhbGxfZGF0YQAAAAAAAwAAAAAAAAADdmlkAAAAAAQAAAAAAAAACmV4cGlyYXRpb24AAAAAAAYAAAAAAAAABWNhbGxzAAAAAAAD6gAAB9AAAAAEQ2FsbAAAAAEAAAPuAAAAIAAAAAAAAAJkSW5pdGlhbGl6ZXMgdGhlIERWTiBjb250cmFjdC4KCiMgQXJndW1lbnRzCiogYHZpZGAgLSBWZXJpZmllciBJRCwgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgRFZOCiogYHNpZ25lcnNgIC0gSW5pdGlhbCBtdWx0aXNpZyBzaWduZXJzICgyMC1ieXRlIEV0aGVyZXVtIGFkZHJlc3NlcykKKiBgdGhyZXNob2xkYCAtIE1pbmltdW0gc2lnbmF0dXJlcyByZXF1aXJlZCBmb3IgbXVsdGlzaWcgb3BlcmF0aW9ucwoqIGBhZG1pbnNgIC0gSW5pdGlhbCBhZG1pbiBhZGRyZXNzZXMgZm9yIG9wZXJhdGlvbmFsIGZ1bmN0aW9ucwoqIGBzdXBwb3J0ZWRfbXNnbGlic2AgLSBNZXNzYWdlIGxpYnJhcmllcyB0aGlzIERWTiBzdXBwb3J0cyAoZS5nLiwgVUxOMzAyKQoqIGBwcmljZV9mZWVkYCAtIFByaWNlIGZlZWQgY29udHJhY3QgZm9yIGZlZSBjYWxjdWxhdGlvbnMKKiBgZGVmYXVsdF9tdWx0aXBsaWVyX2Jwc2AgLSBEZWZhdWx0IGZlZSBtdWx0aXBsaWVyICgxMDAwMCA9IDF4KQoqIGB3b3JrZXJfZmVlX2xpYmAgLSBGZWUgbGlicmFyeSBjb250cmFjdCBmb3IgY29tcHV0aW5nIERWTiBmZWVzCiogYGRlcG9zaXRfYWRkcmVzc2AgLSBBZGRyZXNzIHRvIHJlY2VpdmUgZmVlIHBheW1lbnRzAAAADV9fY29uc3RydWN0b3IAAAAAAAAJAAAAAAAAAAN2aWQAAAAABAAAAAAAAAAHc2lnbmVycwAAAAPqAAAD7gAAABQAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAABmFkbWlucwAAAAAD6gAAABMAAAAAAAAAEXN1cHBvcnRlZF9tc2dsaWJzAAAAAAAD6gAAABMAAAAAAAAACnByaWNlX2ZlZWQAAAAAABMAAAAAAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAQAAAAAAAAADndvcmtlcl9mZWVfbGliAAAAAAATAAAAAAAAAA9kZXBvc2l0X2FkZHJlc3MAAAAAEwAAAAAAAAAAAAABalNldHMgYWRtaW4gc3RhdHVzIGZvciBhbiBhZGRyZXNzLiBDYW4gYmUgY2FsbGVkIGJ5IGFuIGV4aXN0aW5nIGFkbWluLgoKVGhpcyBhbGxvd3MgZXhpc3RpbmcgYWRtaW5zIHRvIGFkZCBvciByZW1vdmUgb3RoZXIgYWRtaW5zIHdpdGhvdXQgZ29pbmcgdGhyb3VnaAp0aGUgb3duZXIvbXVsdGlzaWcgcGF0aC4KCiMgQXJndW1lbnRzCiogYGNhbGxlcmAgLSBUaGUgYWRtaW4gY2FsbGluZyB0aGlzIGZ1bmN0aW9uIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgYWRtaW5gIC0gVGhlIGFkZHJlc3MgdG8gc2V0IGFkbWluIHN0YXR1cyBmb3IKKiBgYWN0aXZlYCAtIGB0cnVlYCB0byBhZGQgYWRtaW4sIGBmYWxzZWAgdG8gcmVtb3ZlAAAAAAAJc2V0X2FkbWluAAAAAAAAAwAAAAAAAAAGY2FsbGVyAAAAAAATAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAAAAAABfEFsbG93cyB0aGUgcXVvcnVtIHRvIGFkZC9yZW1vdmUgYWRtaW5zIHdpdGhvdXQgcmVxdWlyaW5nIGFuIGFkbWluIHNpZ25hdHVyZS4KClRoaXMgZnVuY3Rpb24gYnlwYXNzZXMgdGhlIG5vcm1hbCBhZG1pbiB2ZXJpZmljYXRpb24gaW4gYF9fY2hlY2tfYXV0aGAsCnJlcXVpcmluZyBvbmx5IG11bHRpc2lnIHF1b3J1bSBzaWduYXR1cmVzLiBNdXN0IGJlIGNhbGxlZCBhcyBhIHNpbmdsZQpvcGVyYXRpb24gKGNhbm5vdCBiZSBidW5kbGVkIHdpdGggb3RoZXIgY2FsbHMpLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gVGhlIGFkZHJlc3MgdG8gc2V0IGFkbWluIHN0YXR1cyBmb3IKKiBgYWN0aXZlYCAtIGB0cnVlYCB0byBhZGQgYWRtaW4sIGBmYWxzZWAgdG8gcmVtb3ZlAAAAE3F1b3J1bV9jaGFuZ2VfYWRtaW4AAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAAAAAAAAAAAHdXBncmFkZQAAAAABAAAAAAAAAA1uZXdfd2FzbV9oYXNoAAAAAAAD7gAAACAAAAAAAAAAAAAAAAAAAAAHbWlncmF0ZQAAAAABAAAAAAAAAA5taWdyYXRpb25fZGF0YQAAAAAH0AAAAA1NaWdyYXRpb25EYXRhAAAAAAAAAAAAAAAAAAAAAAAACmF1dGhvcml6ZXIAAAAAAAAAAAABAAAAEwAAAAIAAAAAAAAAAAAAAApEdm5TdG9yYWdlAAAAAAADAAAAAAAAAAAAAAADVmlkAAAAAAEAAAAAAAAACURzdENvbmZpZwAAAAAAAAEAAAAEAAAAAQAAAAAAAAAIVXNlZEhhc2gAAAABAAAD7gAAACAAAAAAAAABj1NldHMgVFRMIGNvbmZpZ3MgZm9yIGluc3RhbmNlIGFuZCBwZXJzaXN0ZW50IHN0b3JhZ2UuCgotIGBOb25lYCB2YWx1ZXMgcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGNvbmZpZyAoZGlzYWJsZXMgYXV0by1leHRlbnNpb24gZm9yIHRoYXQgdHlwZSkKLSBWYWxpZGF0ZXMgdGhhdCBgdGhyZXNob2xkIDw9IGV4dGVuZF90byA8PSBNQVhfVFRMYAoKIyBBcmd1bWVudHMKLSBgaW5zdGFuY2VgIC0gVFRMIGNvbmZpZyBmb3IgaW5zdGFuY2Ugc3RvcmFnZQotIGBwZXJzaXN0ZW50YCAtIFRUTCBjb25maWcgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZQoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnRnJvemVuYCBpZiBjb25maWdzIGFyZSBmcm96ZW4KLSBgSW52YWxpZFR0bENvbmZpZ2AgaWYgdmFsaWRhdGlvbiBmYWlscwAAAAAPc2V0X3R0bF9jb25maWdzAAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAADhUGVybWFuZW50bHkgZnJlZXplcyBUVEwgY29uZmlncywgcHJldmVudGluZyBhbnkgZnV0dXJlIG1vZGlmaWNhdGlvbnMuCgpUaGlzIGlzIGlycmV2ZXJzaWJsZSBhbmQgcHJvdmlkZXMgaW1tdXRhYmlsaXR5IGd1YXJhbnRlZXMgdG8gdXNlcnMuCkVtaXRzIGBUdGxDb25maWdzRnJvemVuYCBldmVudC4KCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0FscmVhZHlGcm96ZW5gIGlmIGFscmVhZHkgZnJvemVuAAAAAAAAEmZyZWV6ZV90dGxfY29uZmlncwAAAAAAAAAAAAAAAAAAAAAAJ1JldHVybnMgd2hldGhlciBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAKVFeHRlbmRzIHRoZSBpbnN0YW5jZSBUVEwuCgojIEFyZ3VtZW50cwoKKiBgdGhyZXNob2xkYCAtIFRoZSB0aHJlc2hvbGQgdG8gZXh0ZW5kIHRoZSBUVEwgKGlmIGN1cnJlbnQgVFRMIGlzIGJlbG93IHRoaXMsIGV4dGVuZCkuCiogYGV4dGVuZF90b2AgLSBUaGUgVFRMIHRvIGV4dGVuZCB0by4AAAAAAAATZXh0ZW5kX2luc3RhbmNlX3R0bAAAAAACAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAlleHRlbmRfdG8AAAAAAAAEAAAAAAAAAAAAAABJQWRkcyBvciByZW1vdmVzIGEgc2lnbmVyIGZyb20gdGhlIG11bHRpc2lnLiBSZXF1aXJlcyBvd25lciBhdXRob3JpemF0aW9uLgAAAAAAAApzZXRfc2lnbmVyAAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAAAAAERTZXRzIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIChxdW9ydW0pLiBSZXF1aXJlcyBvd25lciBhdXRob3JpemF0aW9uLgAAAA1zZXRfdGhyZXNob2xkAAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAAAAAAH1JldHVybnMgYWxsIHJlZ2lzdGVyZWQgc2lnbmVycy4AAAAAC2dldF9zaWduZXJzAAAAAAAAAAABAAAD6gAAA+4AAAAUAAAAAAAAAC9SZXR1cm5zIHRoZSB0b3RhbCBudW1iZXIgb2YgcmVnaXN0ZXJlZCBzaWduZXJzLgAAAAANdG90YWxfc2lnbmVycwAAAAAAAAAAAAABAAAABAAAAAAAAAAsQ2hlY2tzIGlmIGFuIGFkZHJlc3MgaXMgYSByZWdpc3RlcmVkIHNpZ25lci4AAAAJaXNfc2lnbmVyAAAAAAAAAQAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAABAAAAAAAAADFSZXR1cm5zIHRoZSBjdXJyZW50IHNpZ25hdHVyZSB0aHJlc2hvbGQgKHF1b3J1bSkuAAAAAAAACXRocmVzaG9sZAAAAAAAAAAAAAABAAAABAAAAAAAAAA1VmVyaWZpZXMgc2lnbmF0dXJlcyBhZ2FpbnN0IHRoZSBjb25maWd1cmVkIHRocmVzaG9sZC4AAAAAAAARdmVyaWZ5X3NpZ25hdHVyZXMAAAAAAAACAAAAAAAAAAZkaWdlc3QAAAAAA+4AAAAgAAAAAAAAAApzaWduYXR1cmVzAAAAAAPqAAAD7gAAAEEAAAAAAAAAAAAAAC9WZXJpZmllcyBzaWduYXR1cmVzIGFnYWluc3QgYSBjdXN0b20gdGhyZXNob2xkLgAAAAATdmVyaWZ5X25fc2lnbmF0dXJlcwAAAAADAAAAAAAAAAZkaWdlc3QAAAAAA+4AAAAgAAAAAAAAAApzaWduYXR1cmVzAAAAAAPqAAAD7gAAAEEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAADUVuZHBvaW50RXJyb3IAAAAAAAAZAAAAAAAAABFBbHJlYWR5UmVnaXN0ZXJlZAAAAAAAAAEAAAAAAAAADUNvbXBvc2VFeGlzdHMAAAAAAAACAAAAAAAAAA9Db21wb3NlTm90Rm91bmQAAAAAAwAAAAAAAAAcRGVmYXVsdFJlY2VpdmVMaWJVbmF2YWlsYWJsZQAAAAQAAAAAAAAAGURlZmF1bHRTZW5kTGliVW5hdmFpbGFibGUAAAAAAAAFAAAAAAAAABVJbnN1ZmZpY2llbnROYXRpdmVGZWUAAAAAAAAGAAAAAAAAABJJbnN1ZmZpY2llbnRacm9GZWUAAAAAAAcAAAAAAAAAEEludmFsaWRGZWVBbW91bnQAAAAIAAAAAAAAAA1JbnZhbGlkRXhwaXJ5AAAAAAAACQAAAAAAAAAMSW52YWxpZEluZGV4AAAACgAAAAAAAAAMSW52YWxpZE5vbmNlAAAACwAAAAAAAAASSW52YWxpZFBheWxvYWRIYXNoAAAAAAAMAAAAAAAAABVJbnZhbGlkUmVjZWl2ZUxpYnJh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ciBhbmQgRFZOIG9wdGlvbnMuAAAAAAAAB29wdGlvbnMAAAAADgAAADlXaGV0aGVyIHRvIHBheSBmZWVzIGluIFpSTyB0b2tlbiBpbnN0ZWFkIG9mIG5hdGl2ZSB0b2tlbi4AAAAAAAAKcGF5X2luX3pybwAAAAAAAQAAADVSZWNlaXZlciBhZGRyZXNzIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAAQAAAE1Tb3VyY2UgbWVzc2FnZSBpbmZvcm1hdGlvbiBpZGVudGlmeWluZyB3aGVyZSBhIGNyb3NzLWNoYWluIG1lc3NhZ2UgY2FtZSBmcm9tLgAAAAAAAAAAAAAGT3JpZ2luAAAAAAADAAAAF05vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAAAAVub25jZQAAAAAAAAYAAAAuU2VuZGVyIGFkZHJlc3Mgb24gdGhlIHNvdXJjZSBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAABnNlbmRlcgAAAAAD7gAAACAAAAAmU291cmNlIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAKEZlZSBzdHJ1Y3R1cmUgZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2luZy4AAAAAAAAADE1lc3NhZ2luZ0ZlZQAAAAIAAAAfRmVlIHBhaWQgaW4gbmF0aXZlIHRva2VuIChYTE0pLgAAAAAKbmF0aXZlX2ZlZQAAAAAACwAAAChGZWUgcGFpZCBpbiBaUk8gdG9rZW4gKExheWVyWmVybyB0b2tlbikuAAAAB3pyb19mZWUAAAAACwAAAAEAAABCUmVjZWlwdCByZXR1cm5lZCBhZnRlciBzdWNjZXNzZnVsbHkgc2VuZGluZyBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuAAAAAAAAAAAAEE1lc3NhZ2luZ1JlY2VpcHQAAAADAAAAKVRoZSBmZWVzIGNoYXJnZWQgZm9yIHNlbmRpbmcgdGhlIG1lc3NhZ2UuAAAAAAAAA2ZlZQAAAAfQAAAADE1lc3NhZ2luZ0ZlZQAAACtHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIG1lc3NhZ2UuAAAAAARndWlkAAAD7gAAACAAAAAkVGhlIG91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAAAIAAAA4VHlwZSBvZiBtZXNzYWdlIGxpYnJhcnkgaW5kaWNhdGluZyBzdXBwb3J0ZWQgb3BlcmF0aW9ucy4AAAAAAAAADk1lc3NhZ2VMaWJUeXBlAAAAAAADAAAAAAAAAB9TdXBwb3J0cyBvbmx5IHNlbmRpbmcgbWVzc2FnZXMuAAAAAARTZW5kAAAAAAAAACFTdXBwb3J0cyBvbmx5IHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAHUmVjZWl2ZQAAAAAAAAAALVN1cHBvcnRzIGJvdGggc2VuZGluZyBhbmQgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAA5TZW5kQW5kUmVjZWl2ZQAAAAAAAQAAALdWZXJzaW9uIGluZm9ybWF0aW9uIGZvciBhIG1lc3NhZ2UgbGlicmFyeS4KCk5vdGU6IGBtaW5vcmAgYW5kIGBlbmRwb2ludF92ZXJzaW9uYCB1c2UgYHUzMmAgaW5zdGVhZCBvZiBgdThgIGJlY2F1c2UgU3RlbGxhciBkb2VzIG5vdApzdXBwb3J0IGB1OGAgdHlwZXMgaW4gY29udHJhY3QgaW50ZXJmYWNlIGZ1bmN0aW9ucy4AAAAAAAAAABFNZXNzYWdlTGliVmVyc2lvbgAAAAAAAAMAAAAzRW5kcG9pbnQgdmVyc2lvbiAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAABBlbmRwb2ludF92ZXJzaW9uAAAABAAAABVNYWpvciB2ZXJzaW9uIG51bWJlci4AAAAAAAAFbWFqb3IAAAAAAAAGAAAAN01pbm9yIHZlcnNpb24gbnVtYmVyIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAABW1pbm9yAAAAAAAABAAAAAEAAAA2VGltZW91dCBjb25maWd1cmF0aW9uIGZvciByZWNlaXZlIGxpYnJhcnkgdHJhbnNpdGlvbnMuAAAAAAAAAAAAB1RpbWVvdXQAAAAAAgAAAChVbml4IHRpbWVzdGFtcCB3aGVuIHRoZSB0aW1lb3V0IGV4cGlyZXMuAAAABmV4cGlyeQAAAAAABgAAAClUaGUgbmV3IGxpYnJhcnkgYWRkcmVzcyB0byB0cmFuc2l0aW9uIHRvLgAAAAAAAANsaWIAAAAAEwAAAAEAAAA1UGFyYW1ldGVycyBmb3Igc2V0dGluZyBtZXNzYWdlIGxpYnJhcnkgY29uZmlndXJhdGlvbi4AAAAAAAAAAAAADlNldENvbmZpZ1BhcmFtAAAAAAADAAAAH1hEUi1lbmNvZGVkIGNvbmZpZ3VyYXRpb24gZGF0YS4AAAAABmNvbmZpZwAAAAAADgAAADBUaGUgdHlwZSBvZiBjb25maWd1cmF0aW9uIChlLmcuLCBleGVjdXRvciwgVUxOKS4AAAALY29uZmlnX3R5cGUAAAAABAAAACdUaGUgZW5kcG9pbnQgSUQgdGhpcyBjb25maWcgYXBwbGllcyB0by4AAAAAA2VpZAAAAAAEAAAAAQAAADFSZXNvbHZlZCBsaWJyYXJ5IGluZm9ybWF0aW9uIHdpdGggZGVmYXVsdCBzdGF0dXMuAAAAAAAAAAAAAA9SZXNvbHZlZExpYnJhcnkAAAAAAgAAAERXaGV0aGVyIHRoaXMgaXMgdGhlIGRlZmF1bHQgbGlicmFyeSAodHJ1ZSkgb3IgT0FwcC1zcGVjaWZpYyAoZmFsc2UpLgAAAAppc19kZWZhdWx0AAAAAAABAAAAHVRoZSByZXNvbHZlZCBsaWJyYXJ5IGFkZHJlc3MuAAAAAAAAA2xpYgAAAAATAAAAAQAAAEhPdXRib3VuZCBwYWNrZXQgY29udGFpbmluZyBhbGwgaW5mb3JtYXRpb24gZm9yIGNyb3NzLWNoYWluIHRyYW5zbWlzc2lvbi4AAAAAAAAADk91dGJvdW5kUGFja2V0AAAAAAAHAAAAGERlc3RpbmF0aW9uIGVuZHBvaW50IElELgAAAAdkc3RfZWlkAAAAAAQAAAAsR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgbWVzc2FnZS4AAAAEZ3VpZAAAA+4AAAAgAAAAFFRoZSBtZXNzYWdlIHBheWxvYWQuAAAAB21lc3NhZ2UAAAAADgAAACBPdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAAxUmVjZWl2ZXIgYWRkcmVzcyBvbiBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAH1NlbmRlciBhZGRyZXNzIG9uIHNvdXJjZSBjaGFpbi4AAAAABnNlbmRlcgAAAAAAEwAAABNTb3VyY2UgZW5kcG9pbnQgSUQuAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAK0EgZmVlIHJlY2lwaWVudCB3aXRoIHRoZSBhbW91bnQgdG8gYmUgcGFpZC4AAAAAAAAAAAxGZWVSZWNpcGllbnQAAAACAAAAFUFtb3VudCBvZiBmZWUgdG8gcGF5LgAAAAAAAAZhbW91bnQAAAAAAAsAAAAfVGhlIGFkZHJlc3MgdG8gc2VuZCB0aGUgZmVlIHRvLgAAAAACdG8AAAAAABMAAAABAAAAPFJlc3VsdCBvZiBzZW5kIG9wZXJhdGlvbiBjb250YWluaW5nIGZlZXMgYW5kIGVuY29kZWQgcGFja2V0LgAAAAAAAAANRmVlc0FuZFBhY2tldAAAAAAAAAMAAAAqVGhlIGVuY29kZWQgcGFja2V0IHJlYWR5IGZvciB0cmFuc21pc3Npb24uAAAAAAAOZW5jb2RlZF9wYWNrZXQAAAAAAA4AAAA/TGlzdCBvZiBuYXRpdmUgdG9rZW4gZmVlIHJlY2lwaWVudHMgKGV4ZWN1dG9yLCBEVk5zLCB0cmVhc3VyeSkuAAAAABVuYXRpdmVfZmVlX3JlY2lwaWVudHMAAAAAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAsTGlzdCBvZiBaUk8gdG9rZW4gZmVlIHJlY2lwaWVudHMgKHRyZWFzdXJ5KS4AAAASenJvX2ZlZV9yZWNpcGllbnRzAAAAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAEAAAAHVBhY2tldENvZGVjVjFFcnJvcjogMTEwMC0xMTA5AAAAAAAAAAAAABJQYWNrZXRDb2RlY1YxRXJyb3IAAAAAAAIAAAAAAAAAE0ludmFsaWRQYWNrZXRIZWFkZXIAAAAETAAAAAAAAAAUSW52YWxpZFBhY2tldFZlcnNpb24AAARNAAAABAAAAB1Xb3JrZXJPcHRpb25zRXJyb3I6IDExMTAtMTExOQAAAAAAAAAAAAASV29ya2VyT3B0aW9uc0Vycm9yAAAAAAAJAAAAAAAAABJJbnZhbGlkQnl0ZXNMZW5ndGgAAAAABFYAAAAAAAAAGUludmFsaWRMZWdhY3lPcHRpb25zVHlwZTEAAAAAAARXAAAAAAAAABlJbnZhbGlkTGVnYWN5T3B0aW9uc1R5cGUyAAAAAAAEWAAAAAAAAAARSW52YWxpZE9wdGlvblR5cGUAAAAAAARZAAAAAAAAAA5JbnZhbGlkT3B0aW9ucwAAAAAEWgAAAAAAAAAPSW52YWxpZFdvcmtlcklkAAAABFsAAAAAAAAAHUxlZ2FjeU9wdGlvbnNUeXBlMUdhc092ZXJmbG93AAAAAAAEXAAAAAAAAAAgTGVnYWN5T3B0aW9uc1R5cGUyQW1vdW50T3ZlcmZsb3cAAARdAAAAAAAAAB1MZWdhY3lPcHRpb25zVHlwZTJHYXNPdmVyZmxvdwAAAAAABF4AAAAEAAAAHEJ1ZmZlclJlYWRlckVycm9yOiAxMDAwLTEwMDkAAAAAAAAAEUJ1ZmZlclJlYWRlckVycm9yAAAAAAAAAgAAAAAAAAANSW52YWxpZExlbmd0aAAAAAAAA+gAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA+kAAAAEAAAAHEJ1ZmZlcldyaXRlckVycm9yOiAxMDEwLTEwMTkAAAAAAAAAEUJ1ZmZlcldyaXRlckVycm9yAAAAAAAAAQAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD8gAAAAQAAAAfVHRsQ29uZmlndXJhYmxlRXJyb3I6IDEwMjAtMTAyOQAAAAAAAAAAFFR0bENvbmZpZ3VyYWJsZUVycm9yAAAAAwAAAAAAAAAQSW52YWxpZFR0bENvbmZpZwAAA/wAAAAAAAAAD1R0bENvbmZpZ0Zyb3plbgAAAAP9AAAAAAAAABZUdGxDb25maWdBbHJlYWR5RnJvemVuAAAAAAP+AAAABAAAABdPd25hYmxlRXJyb3I6IDEwMzAtMTAzOQAAAAAAAAAADE93bmFibGVFcnJvcgAAAAYAAAAAAAAAE0ludmFsaWRQZW5kaW5nT3duZXIAAAAEBgAAAAAAAAAKSW52YWxpZFR0bAAAAAAEBwAAAAAAAAARTm9QZW5kaW5nVHJhbnNmZXIAAAAAAAQIAAAAAAAAAA9Pd25lckFscmVhZHlTZXQAAAAECQAAAAAAAAALT3duZXJOb3RTZXQAAAAECgAAAAAAAAASVHJhbnNmZXJJblByb2dyZXNzAAAAAAQLAAAABAAAABhCeXRlc0V4dEVycm9yOiAxMDQwLTEwNDkAAAAAAAAADUJ5dGVzRXh0RXJyb3IAAAAAAAABAAAAAAAAAA5MZW5ndGhNaXNtYXRjaAAAAAAEEAAAAAQAAAAbVXBncmFkZWFibGVFcnJvcjogMTA1MC0xMDU5AAAAAAAAAAAQVXBncmFkZWFibGVFcnJvcgAAAAEAAAAAAAAAE01pZ3JhdGlvbk5vdEFsbG93ZWQAAAAEGgAAAAQAAAAYTXVsdGlzaWdFcnJvcjogMTA2MC0xMDY5AAAAAAAAAA1NdWx0aXNpZ0Vycm9yAAAAAAAACAAAAAAAAAASQWxyZWFkeUluaXRpYWxpemVkAAAAAAQkAAAAAAAAAA1JbnZhbGlkU2lnbmVyAAAAAAAEJQAAAAAAAAAOU2lnbmF0dXJlRXJyb3IAAAAABCYAAAAAAAAAE1NpZ25lckFscmVhZHlFeGlzdHMAAAAEJwAAAAAAAAAOU2lnbmVyTm90Rm91bmQAAAAABCgAAAAAAAAAHVRvdGFsU2lnbmVyc0xlc3NUaGFuVGhyZXNob2xkAAAAAAAEKQAAAAAAAAAPVW5zb3J0ZWRTaWduZXJzAAAABCoAAAAAAAAADVplcm9UaHJlc2hvbGQAAAAAAAQrAAAABQAAADBFdmVudCBlbWl0dGVkIHdoZW4gYSBzaWduZXIgaXMgYWRkZWQgb3IgcmVtb3ZlZC4AAAAAAAAACVNpZ25lclNldAAAAAAAAAEAAAAKc2lnbmVyX3NldAAAAAAAAgAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAACAAAABQAAADZFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNpZ25hdHVyZSB0aHJlc2hvbGQgaXMgY2hhbmdlZC4AAAAAAAAAAAAMVGhyZXNob2xkU2V0AAAAAQAAAA10aHJlc2hvbGRfc2V0AAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAD011bHRpc2lnU3RvcmFnZQAAAAACAAAAAAAAAAAAAAAHU2lnbmVycwAAAAAAAAAAAAAAAAlUaHJlc2hvbGQAAAAAAAAFAAAAV0V2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgdHJhbnNmZXJyZWQgKGJvdGggc2luZ2xlLXN0ZXAgYW5kIHR3by1zdGVwIGNvbXBsZXRpb24pLgAAAAAAAAAAFE93bmVyc2hpcFRyYW5zZmVycmVkAAAAAQAAABVvd25lcnNoaXBfdHJhbnNmZXJyZWQAAAAAAAACAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAACAAAABQAAADtFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIHByb3Bvc2VkLgAAAAAAAAAAFU93bmVyc2hpcFRyYW5zZmVycmluZwAAAAAAAAEAAAAWb3duZXJzaGlwX3RyYW5zZmVycmluZwAAAAAAAwAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAAN0dGwAAAAABAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHJlbm91bmNlZC4AAAAAAAAAAAAST3duZXJzaGlwUmVub3VuY2VkAAAAAAABAAAAE293bmVyc2hpcF9yZW5vdW5jZWQAAAAAAQAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAACAAAAAgAAAAAAAAAAAAAADk93bmFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAFT3duZXIAAAAAAAAAAAAAAAAAAAxQZW5kaW5nT3duZXIAAAABAAAASVRUTCBjb25maWd1cmF0aW9uOiB0aHJlc2hvbGQgKHdoZW4gdG8gZXh0ZW5kKSBhbmQgZXh0ZW5kX3RvICh0YXJnZXQgVFRMKS4AAAAAAAAAAAAACVR0bENvbmZpZwAAAAAAAAIAAAAoVGFyZ2V0IFRUTCBhZnRlciBleHRlbnNpb24gKGluIGxlZGdlcnMpLgAAAAlleHRlbmRfdG8AAAAAAAAEAAAAM1RUTCB0aHJlc2hvbGQgdGhhdCB0cmlnZ2VycyBleHRlbnNpb24gKGluIGxlZGdlcnMpLgAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAUAAAAnRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBzZXQuAAAAAAAAAAANVHRsQ29uZmlnc1NldAAAAAAAAAEAAAAPdHRsX2NvbmZpZ3Nfc2V0AAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAAAAAAKcGVyc2lzdGVudAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAAAAAAABBUdGxDb25maWdzRnJvemVuAAAAAQAAABJ0dGxfY29uZmlnc19mcm96ZW4AAAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAEFR0bENvbmZpZ1N0b3JhZ2UAAAADAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAhJbnN0YW5jZQAAAAAAAAAAAAAAClBlcnNpc3RlbnQAAAAAAAIAAAAAAAAAAAAAABJVcGdyYWRlYWJsZVN0b3JhZ2UAAAAAAAEAAAAAAAAAAAAAAAlNaWdyYXRpbmcAAAAAAAAEAAAAFldvcmtlckVycm9yOiAxMjAwLTEyOTkAAAAAAAAAAAALV29ya2VyRXJyb3IAAAAAEwAAAAAAAAASQWRtaW5BbHJlYWR5RXhpc3RzAAAAAASwAAAAAAAAAA1BZG1pbk5vdEZvdW5kAAAAAAAEsQAAAAAAAAASQWxyZWFkeU9uQWxsb3dsaXN0AAAAAASyAAAAAAAAABFBbHJlYWR5T25EZW55bGlzdAAAAAAABLMAAAAAAAAAG0F0dGVtcHRpbmdUb1JlbW92ZU9ubHlBZG1pbgAAAAS0AAAAAAAAABREZXBvc2l0QWRkcmVzc05vdFNldAAABLUAAAAAAAAAGk1lc3NhZ2VMaWJBbHJlYWR5U3VwcG9ydGVkAAAAAAS2AAAAAAAAABZNZXNzYWdlTGliTm90U3VwcG9ydGVkAAAAAAS3AAAAAAAAABBOb0FkbWluc1Byb3ZpZGVkAAAEuAAAAAAAAAAKTm90QWxsb3dlZAAAAAAEuQAAAAAAAAAOTm90T25BbGxvd2xpc3QAAAAABLoAAAAAAAAADU5vdE9uRGVueWxpc3QAAAAAAAS7AAAAAAAAABRQYXVzZVN0YXR1c1VuY2hhbmdlZAAABLwAAAAAAAAAD1ByaWNlRmVlZE5vdFNldAAAAAS9AAAAAAAAAAxSZUluaXRpYWxpemUAAAS+AAAAAAAAAAxVbmF1dGhvcml6ZWQAAAS/AAAAAAAAABVVbnN1cHBvcnRlZE1lc3NhZ2VMaWIAAAAAAATAAAAAAAAAABJXb3JrZXJGZWVMaWJOb3RTZXQAAAAABMEAAAAAAAAADldvcmtlcklzUGF1c2VkAAAAAATCAAAABQAAAAAAAAAAAAAACFNldEFkbWluAAAAAQAAAAlzZXRfYWRtaW4AAAAAAAACAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABZTZXRTdXBwb3J0ZWRNZXNzYWdlTGliAAAAAAABAAAAGXNldF9zdXBwb3J0ZWRfbWVzc2FnZV9saWIAAAAAAAACAAAAAAAAAAttZXNzYWdlX2xpYgAAAAATAAAAAAAAAAAAAAAJc3VwcG9ydGVkAAAAAAAAAQAAAAAAAAACAAAABQAAAAAAAAAAAAAADFNldEFsbG93bGlzdAAAAAEAAAANc2V0X2FsbG93bGlzdAAAAAAAAAIAAAAAAAAABG9hcHAAAAATAAAAAAAAAAAAAAAHYWxsb3dlZAAAAAABAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAALU2V0RGVueWxpc3QAAAAAAQAAAAxzZXRfZGVueWxpc3QAAAACAAAAAAAAAARvYXBwAAAAEwAAAAAAAAAAAAAABmRlbmllZAAAAAAAAQAAAAAAAAACAAAABQAAAAAAAAAAAAAABlBhdXNlZAAAAAAAAQAAAAZwYXVzZWQAAAAAAAEAAAAAAAAABnBhdXNlcgAAAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAACFVucGF1c2VkAAAAAQAAAAh1bnBhdXNlZAAAAAEAAAAAAAAACHVucGF1c2VyAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAAF1NldERlZmF1bHRNdWx0aXBsaWVyQnBzAAAAAAEAAAAac2V0X2RlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAEAAAAAAAAADm11bHRpcGxpZXJfYnBzAAAAAAAEAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAARU2V0RGVwb3NpdEFkZHJlc3MAAAAAAAABAAAAE3NldF9kZXBvc2l0X2FkZHJlc3MAAAAAAQAAAAAAAAAPZGVwb3NpdF9hZGRyZXNzAAAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAAxTZXRQcmljZUZlZWQAAAABAAAADnNldF9wcmljZV9mZWVkAAAAAAABAAAAAAAAAApwcmljZV9mZWVkAAAAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAXU2V0U3VwcG9ydGVkT3B0aW9uVHlwZXMAAAAAAQAAABpzZXRfc3VwcG9ydGVkX29wdGlvbl90eXBlcwAAAAAAAgAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAAAAAAAMb3B0aW9uX3R5cGVzAAAADgAAAAAAAAACAAAABQAAAAAAAAAAAAAAD1NldFdvcmtlckZlZUxpYgAAAAABAAAAEnNldF93b3JrZXJfZmVlX2xpYgAAAAAAAQAAAAAAAAAHZmVlX2xpYgAAAAATAAAAAAAAAAIAAAABAAAA4VBhcmFtZXRlcnMgZm9yIERWTiBmZWUgY2FsY3VsYXRpb24uCgpDb250YWlucyBhbGwgaW5wdXRzIG5lZWRlZCBieSB0aGUgZmVlIGxpYnJhcnkgdG8gY2FsY3VsYXRlIHZlcmlmaWNhdGlvbiBmZWVzCmZvciBjcm9zcy1jaGFpbiBtZXNzYWdlcy4gSW5jbHVkZXMgbWVzc2FnZSBwYXJhbWV0ZXJzLCBjb21tb24gY29uZmlndXJhdGlvbiwKYW5kIGRlc3RpbmF0aW9uLXNwZWNpZmljIHNldHRpbmdzLgAAAAAAAAAAAAAMRHZuRmVlUGFyYW1zAAAACgAAACdOdW1iZXIgb2YgYmxvY2sgY29uZmlybWF0aW9ucyByZXF1aXJlZC4AAAAADWNvbmZpcm1hdGlvbnMAAAAAAAAGAAAATERlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICh1c2VkIGlmIG5vIGRzdC1zcGVjaWZpYyBtdWx0aXBsaWVyKS4AAAAWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAABAAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAjTWluaW11bSBmZWUgbWFyZ2luIGluIFVTRCAoc2NhbGVkKS4AAAAAEGZsb29yX21hcmdpbl91c2QAAAAKAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkRlc3RpbmF0aW9uLVNwZWNpZmljIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KR2FzIGVzdGltYXRlIGZvciB2ZXJpZmljYXRpb24gb24gZGVzdGluYXRpb24gY2hhaW4uAAAAA2dhcwAAAAAKAAAARkRlc3RpbmF0aW9uLXNwZWNpZmljIGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAoMCA9IHVzZSBkZWZhdWx0KS4AAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAAAtEVk4gb3B0aW9ucwAAAAAHb3B0aW9ucwAAAAAOAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNvbW1vbiBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcyBmb3IgZ2FzIHByaWNlIGFuZCBleGNoYW5nZSByYXRlIGRhdGEuAAAACnByaWNlX2ZlZWQAAAAAABMAAAAnTnVtYmVyIG9mIHJlcXVpcmVkIHNpZ25hdHVyZXMgKHF1b3J1bSkuAAAAAAZxdW9ydW0AAAAAAAQAAADlPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KTWVzc2FnZSBQYXJhbWV0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBPQXBwIHNlbmRlciBhZGRyZXNzLgAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAA41BhcmFtZXRlcnMgZm9yIGV4ZWN1dG9yIGZlZSBjYWxjdWxhdGlvbi4KCkNvbnRhaW5zIGFsbCBpbnB1dHMgbmVlZGVkIGJ5IHRoZSBmZWUgbGlicmFyeSB0byBjYWxjdWxhdGUgZXhlY3V0aW9uIGZlZXMKZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2VzLiBJbmNsdWRlcyBtZXNzYWdlIHBhcmFtZXRlcnMsIGNvbW1vbiBjb25maWd1cmF0aW9uLAphbmQgZGVzdGluYXRpb24tc3BlY2lmaWMgc2V0dGluZ3MuAAAAAAAAAAAJRmVlUGFyYW1zAAAAAAAACwAAACZTaXplIG9mIHRoZSBtZXNzYWdlIGNhbGxkYXRhIGluIGJ5dGVzLgAAAAAADWNhbGxkYXRhX3NpemUAAAAAAAAEAAAATERlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICh1c2VkIGlmIG5vIGRzdC1zcGVjaWZpYyBtdWx0aXBsaWVyKS4AAAAWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAABAAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAjTWluaW11bSBmZWUgbWFyZ2luIGluIFVTRCAoc2NhbGVkKS4AAAAAEGZsb29yX21hcmdpbl91c2QAAAAKAAAANkJhc2UgZ2FzIGZvciBlYWNoIGx6Q29tcG9zZSBjYWxsIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAAAAE2x6X2NvbXBvc2VfYmFzZV9nYXMAAAAABgAAARM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpEZXN0aW5hdGlvbi1TcGVjaWZpYyBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkJhc2UgZ2FzIGZvciBselJlY2VpdmUgZXhlY3V0aW9uIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAAATbHpfcmVjZWl2ZV9iYXNlX2dhcwAAAAAGAAAARkRlc3RpbmF0aW9uLXNwZWNpZmljIGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAoMCA9IHVzZSBkZWZhdWx0KS4AAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAACxNYXhpbXVtIG5hdGl2ZSB0b2tlbiB2YWx1ZSB0aGF0IGNhbiBiZSBzZW50LgAAAApuYXRpdmVfY2FwAAAAAAAKAAAARkVuY29kZWQgZXhlY3V0b3Igb3B0aW9ucyAobHpSZWNlaXZlIGdhcywgbHpDb21wb3NlLCBuYXRpdmVEcm9wLCBldGMuKS4AAAAAAAdvcHRpb25zAAAAAA4AAAEQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ29tbW9uIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzIGZvciBnYXMgcHJpY2UgYW5kIGV4Y2hhbmdlIHJhdGUgZGF0YS4AAAAKcHJpY2VfZmVlZAAAAAAAEwAAAOU9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpNZXNzYWdlIFBhcmFtZXRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhlIE9BcHAgc2VuZGVyIGFkZHJlc3MuAAAAAAAABnNlbmRlcgAAAAAAEwAAAAEAAACER2FzIHByaWNlIGluZm9ybWF0aW9uIGZvciBhIGRlc3RpbmF0aW9uIGVuZHBvaW50LgoKQ29udGFpbnMgdGhlIGV4Y2hhbmdlIHJhdGUgYW5kIGdhcyBjb3N0cyBuZWVkZWQgZm9yIGNyb3NzLWNoYWluIGZlZSBjYWxjdWxhdGlvbnMuAAAAAAAAAAVQcmljZQAAAAAAAAMAAAA3R2FzIGNvc3QgcGVyIGJ5dGUgb2YgY2FsbGRhdGEgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLgAAAAAMZ2FzX3Blcl9ieXRlAAAABAAAAEJHYXMgcHJpY2UgaW4gdGhlIHNtYWxsZXN0IHVuaXQgKHdlaSBmb3IgRVZNLCBzdHJvb3BzIGZvciBTdGVsbGFyKS4AAAAAABFnYXNfcHJpY2VfaW5fdW5pdAAAAAAAAAYAAACpUHJpY2UgcmF0aW8gPSAocmVtb3RlIG5hdGl2ZSB0b2tlbiBwcmljZSAvIGxvY2FsIG5hdGl2ZSB0b2tlbiBwcmljZSkgKiBQUklDRV9SQVRJT19ERU5PTUlOQVRPUi4KVXNlZCB0byBjb252ZXJ0IGRlc3RpbmF0aW9uIGNoYWluIGdhcyBjb3N0cyB0byBzb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuLgAAAAAAAAtwcmljZV9yYXRpbwAAAAAKAAAAAQAAAIBGZWUgZXN0aW1hdGlvbiByZXN1bHQgd2l0aCBkZXRhaWxlZCBicmVha2Rvd24uCgpDb250YWlucyB0aGUgY2FsY3VsYXRlZCBmZWUgYW5kIGFsbCBpbnRlcm1lZGlhdGUgdmFsdWVzIHVzZWQgaW4gdGhlIGNhbGN1bGF0aW9uLgAAAAAAAAALRmVlRXN0aW1hdGUAAAAABAAAADBTb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuIHByaWNlIGluIFVTRCAoc2NhbGVkKS4AAAAQbmF0aXZlX3ByaWNlX3VzZAAAAAoAAAAlUHJpY2UgcmF0aW8gdXNlZCBmb3IgdGhlIGNhbGN1bGF0aW9uLgAAAAAAAAtwcmljZV9yYXRpbwAAAAAKAAAAMkRlbm9taW5hdG9yIGZvciB0aGUgcHJpY2UgcmF0aW8gKHR5cGljYWxseSAxMF4yMCkuAAAAAAAXcHJpY2VfcmF0aW9fZGVub21pbmF0b3IAAAAACgAAADFUb3RhbCBnYXMgZmVlIGluIHNvdXJjZSBjaGFpbiBuYXRpdmUgdG9rZW4gdW5pdHMuAAAAAAAADXRvdGFsX2dhc19mZWUAAAAAAAALAAAAAgAAAAAAAAAAAAAADVdvcmtlclN0b3JhZ2UAAAAAAAALAAAAAAAAAAAAAAAGUGF1c2VkAAAAAAAAAAAAAAAAAA5EZXBvc2l0QWRkcmVzcwAAAAAAAAAAAAAAAAAJUHJpY2VGZWVkAAAAAAAAAAAAAAAAAAAMV29ya2VyRmVlTGliAAAAAAAAAAAAAAAURGVmYXVsdE11bHRpcGxpZXJCcHMAAAABAAAAAAAAABRTdXBwb3J0ZWRPcHRpb25UeXBlcwAAAAEAAAAEAAAAAAAAAAAAAAALTWVzc2FnZUxpYnMAAAAAAQAAAAAAAAAJQWxsb3dsaXN0AAAAAAAAAQAAABMAAAABAAAAAAAAAAhEZW55bGlzdAAAAAEAAAATAAAAAAAAAAAAAAANQWxsb3dsaXN0U2l6ZQAAAAAAAAAAAAAAAAAABkFkbWlucwAAAIsBDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAZiaW52ZXIAAAAAAAUwLjAuMQAAAAAAAAAAAAAFcnN2ZXIAAAAAAAAGMS45MC4wAAAAAAAAAAAACHJzc2RrdmVyAAAALzIzLjQuMCM2NzNkNmM0ZjIzNjhkMjgyZDI1ZGEyOWJkYTU1YzIxYjhiZTY5Y2E2AAAeEWNvbnRyYWN0ZW52bWV0YXYwAAAAAAAAABcAAAAA";
13
+ /**
14
+ * Pre-computed WASM hash (SHA-256)
15
+ * Use this when the WASM is already uploaded on-chain
16
+ */
17
+ export declare const WASM_HASH = "5c52cac1c298d768f8af85192d911b1f33f3885278ff4ae8f05b251c068d02a2";
18
+ /**
19
+ * Get the WASM bytecode as a Buffer
20
+ * Use this to upload the WASM to the network
21
+ */
22
+ export declare function getWasmBuffer(): Buffer;
8
23
  export declare const DvnError: {
9
24
  1: {
10
25
  message: string;
@@ -27,27 +42,6 @@ export declare const DvnError: {
27
42
  7: {
28
43
  message: string;
29
44
  };
30
- 8: {
31
- message: string;
32
- };
33
- 9: {
34
- message: string;
35
- };
36
- 10: {
37
- message: string;
38
- };
39
- 11: {
40
- message: string;
41
- };
42
- 12: {
43
- message: string;
44
- };
45
- 13: {
46
- message: string;
47
- };
48
- 14: {
49
- message: string;
50
- };
51
45
  };
52
46
  /**
53
47
  * Configuration for a destination chain.
@@ -133,12 +127,6 @@ export type Sender = {
133
127
  values: readonly [Buffer, Buffer];
134
128
  };
135
129
  export type DvnStorage = {
136
- tag: "Signers";
137
- values: void;
138
- } | {
139
- tag: "Threshold";
140
- values: void;
141
- } | {
142
130
  tag: "Vid";
143
131
  values: void;
144
132
  } | {
@@ -221,6 +209,9 @@ export declare const EndpointError: {
221
209
  24: {
222
210
  message: string;
223
211
  };
212
+ 25: {
213
+ message: string;
214
+ };
224
215
  };
225
216
  /**
226
217
  * Parameters for sending a cross-chain message.
@@ -433,43 +424,52 @@ export interface FeesAndPacket {
433
424
  */
434
425
  zro_fee_recipients: Array<FeeRecipient>;
435
426
  }
427
+ /**
428
+ * PacketCodecV1Error: 1100-1109
429
+ */
436
430
  export declare const PacketCodecV1Error: {
437
- 1001: {
431
+ 1100: {
438
432
  message: string;
439
433
  };
440
- 1002: {
434
+ 1101: {
441
435
  message: string;
442
436
  };
443
437
  };
438
+ /**
439
+ * WorkerOptionsError: 1110-1119
440
+ */
444
441
  export declare const WorkerOptionsError: {
445
- 1101: {
442
+ 1110: {
446
443
  message: string;
447
444
  };
448
- 1102: {
445
+ 1111: {
449
446
  message: string;
450
447
  };
451
- 1103: {
448
+ 1112: {
452
449
  message: string;
453
450
  };
454
- 1104: {
451
+ 1113: {
455
452
  message: string;
456
453
  };
457
- 1105: {
454
+ 1114: {
458
455
  message: string;
459
456
  };
460
- 1106: {
457
+ 1115: {
461
458
  message: string;
462
459
  };
463
- 1107: {
460
+ 1116: {
464
461
  message: string;
465
462
  };
466
- 1108: {
463
+ 1117: {
467
464
  message: string;
468
465
  };
469
- 1109: {
466
+ 1118: {
470
467
  message: string;
471
468
  };
472
469
  };
470
+ /**
471
+ * BufferReaderError: 1000-1009
472
+ */
473
473
  export declare const BufferReaderError: {
474
474
  1000: {
475
475
  message: string;
@@ -478,43 +478,109 @@ export declare const BufferReaderError: {
478
478
  message: string;
479
479
  };
480
480
  };
481
+ /**
482
+ * BufferWriterError: 1010-1019
483
+ */
481
484
  export declare const BufferWriterError: {
482
- 1100: {
485
+ 1010: {
483
486
  message: string;
484
487
  };
485
488
  };
489
+ /**
490
+ * TtlConfigurableError: 1020-1029
491
+ */
486
492
  export declare const TtlConfigurableError: {
487
- 1200: {
493
+ 1020: {
488
494
  message: string;
489
495
  };
490
- 1201: {
496
+ 1021: {
491
497
  message: string;
492
498
  };
493
- 1202: {
499
+ 1022: {
494
500
  message: string;
495
501
  };
496
502
  };
503
+ /**
504
+ * OwnableError: 1030-1039
505
+ */
497
506
  export declare const OwnableError: {
498
- 1300: {
507
+ 1030: {
508
+ message: string;
509
+ };
510
+ 1031: {
511
+ message: string;
512
+ };
513
+ 1032: {
514
+ message: string;
515
+ };
516
+ 1033: {
517
+ message: string;
518
+ };
519
+ 1034: {
499
520
  message: string;
500
521
  };
501
- 1301: {
522
+ 1035: {
502
523
  message: string;
503
524
  };
504
525
  };
526
+ /**
527
+ * BytesExtError: 1040-1049
528
+ */
505
529
  export declare const BytesExtError: {
506
- 1400: {
530
+ 1040: {
507
531
  message: string;
508
532
  };
509
533
  };
534
+ /**
535
+ * UpgradeableError: 1050-1059
536
+ */
510
537
  export declare const UpgradeableError: {
511
- 1500: {
538
+ 1050: {
539
+ message: string;
540
+ };
541
+ };
542
+ /**
543
+ * MultisigError: 1060-1069
544
+ */
545
+ export declare const MultisigError: {
546
+ 1060: {
547
+ message: string;
548
+ };
549
+ 1061: {
550
+ message: string;
551
+ };
552
+ 1062: {
553
+ message: string;
554
+ };
555
+ 1063: {
556
+ message: string;
557
+ };
558
+ 1064: {
559
+ message: string;
560
+ };
561
+ 1065: {
562
+ message: string;
563
+ };
564
+ 1066: {
512
565
  message: string;
513
566
  };
567
+ 1067: {
568
+ message: string;
569
+ };
570
+ };
571
+ export type MultisigStorage = {
572
+ tag: "Signers";
573
+ values: void;
574
+ } | {
575
+ tag: "Threshold";
576
+ values: void;
514
577
  };
515
578
  export type OwnableStorage = {
516
579
  tag: "Owner";
517
580
  values: void;
581
+ } | {
582
+ tag: "PendingOwner";
583
+ values: void;
518
584
  };
519
585
  /**
520
586
  * TTL configuration: threshold (when to extend) and extend_to (target TTL).
@@ -543,6 +609,9 @@ export type UpgradeableStorage = {
543
609
  tag: "Migrating";
544
610
  values: void;
545
611
  };
612
+ /**
613
+ * WorkerError: 1200-1299
614
+ */
546
615
  export declare const WorkerError: {
547
616
  1200: {
548
617
  message: string;
@@ -800,168 +869,6 @@ export type WorkerStorage = {
800
869
  values: void;
801
870
  };
802
871
  export interface Client {
803
- /**
804
- * Construct and simulate a set_signer 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.
805
- * Adds or removes a signer. Requires multisig approval.
806
- */
807
- set_signer: ({ signer, active }: {
808
- signer: Buffer;
809
- active: boolean;
810
- }, txnOptions?: {
811
- /**
812
- * The fee to pay for the transaction. Default: BASE_FEE
813
- */
814
- fee?: number;
815
- /**
816
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
817
- */
818
- timeoutInSeconds?: number;
819
- /**
820
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
821
- */
822
- simulate?: boolean;
823
- }) => Promise<AssembledTransaction<null>>;
824
- /**
825
- * Construct and simulate a set_threshold 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.
826
- * Updates the signature threshold. Requires multisig approval.
827
- */
828
- set_threshold: ({ threshold }: {
829
- threshold: u32;
830
- }, txnOptions?: {
831
- /**
832
- * The fee to pay for the transaction. Default: BASE_FEE
833
- */
834
- fee?: number;
835
- /**
836
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
837
- */
838
- timeoutInSeconds?: number;
839
- /**
840
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
841
- */
842
- simulate?: boolean;
843
- }) => Promise<AssembledTransaction<null>>;
844
- /**
845
- * Construct and simulate a get_signers 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.
846
- * Returns the list of all registered signers.
847
- */
848
- get_signers: (txnOptions?: {
849
- /**
850
- * The fee to pay for the transaction. Default: BASE_FEE
851
- */
852
- fee?: number;
853
- /**
854
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
855
- */
856
- timeoutInSeconds?: number;
857
- /**
858
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
859
- */
860
- simulate?: boolean;
861
- }) => Promise<AssembledTransaction<Array<Buffer>>>;
862
- /**
863
- * Construct and simulate a total_signers 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.
864
- * Returns the total number of registered signers.
865
- */
866
- total_signers: (txnOptions?: {
867
- /**
868
- * The fee to pay for the transaction. Default: BASE_FEE
869
- */
870
- fee?: number;
871
- /**
872
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
873
- */
874
- timeoutInSeconds?: number;
875
- /**
876
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
877
- */
878
- simulate?: boolean;
879
- }) => Promise<AssembledTransaction<u32>>;
880
- /**
881
- * Construct and simulate a is_signer 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.
882
- * Checks if an address is a registered signer.
883
- */
884
- is_signer: ({ signer }: {
885
- signer: Buffer;
886
- }, txnOptions?: {
887
- /**
888
- * The fee to pay for the transaction. Default: BASE_FEE
889
- */
890
- fee?: number;
891
- /**
892
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
893
- */
894
- timeoutInSeconds?: number;
895
- /**
896
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
897
- */
898
- simulate?: boolean;
899
- }) => Promise<AssembledTransaction<boolean>>;
900
- /**
901
- * Construct and simulate a threshold 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.
902
- * Returns the current signature threshold.
903
- */
904
- threshold: (txnOptions?: {
905
- /**
906
- * The fee to pay for the transaction. Default: BASE_FEE
907
- */
908
- fee?: number;
909
- /**
910
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
911
- */
912
- timeoutInSeconds?: number;
913
- /**
914
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
915
- */
916
- simulate?: boolean;
917
- }) => Promise<AssembledTransaction<u32>>;
918
- /**
919
- * Construct and simulate a verify_signatures 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.
920
- * Verifies signatures against the current threshold.
921
- */
922
- verify_signatures: ({ hash, signatures }: {
923
- hash: Buffer;
924
- signatures: Array<Buffer>;
925
- }, txnOptions?: {
926
- /**
927
- * The fee to pay for the transaction. Default: BASE_FEE
928
- */
929
- fee?: number;
930
- /**
931
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
932
- */
933
- timeoutInSeconds?: number;
934
- /**
935
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
936
- */
937
- simulate?: boolean;
938
- }) => Promise<AssembledTransaction<null>>;
939
- /**
940
- * Construct and simulate a verify_n_signatures 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.
941
- * Verifies that at least `threshold` valid signatures exist for the given hash.
942
- *
943
- * Signatures must be:
944
- * - From registered signers
945
- * - Sorted by signer address (ascending, no duplicates)
946
- */
947
- verify_n_signatures: ({ hash, signatures, threshold }: {
948
- hash: Buffer;
949
- signatures: Array<Buffer>;
950
- threshold: u32;
951
- }, txnOptions?: {
952
- /**
953
- * The fee to pay for the transaction. Default: BASE_FEE
954
- */
955
- fee?: number;
956
- /**
957
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
958
- */
959
- timeoutInSeconds?: number;
960
- /**
961
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
962
- */
963
- simulate?: boolean;
964
- }) => Promise<AssembledTransaction<null>>;
965
872
  /**
966
873
  * Construct and simulate a set_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.
967
874
  * Sets the paused state of the worker.
@@ -1738,18 +1645,9 @@ export interface Client {
1738
1645
  simulate?: boolean;
1739
1646
  }) => Promise<AssembledTransaction<null>>;
1740
1647
  /**
1741
- * 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.
1742
- * Extends the instance TTL.
1743
- *
1744
- * # Arguments
1745
- *
1746
- * * `threshold` - The threshold to extend the TTL.
1747
- * * `extend_to` - The TTL to extend to.
1648
+ * 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.
1748
1649
  */
1749
- extend_instance_ttl: ({ threshold, extend_to }: {
1750
- threshold: u32;
1751
- extend_to: u32;
1752
- }, txnOptions?: {
1650
+ authorizer: (txnOptions?: {
1753
1651
  /**
1754
1652
  * The fee to pay for the transaction. Default: BASE_FEE
1755
1653
  */
@@ -1762,7 +1660,7 @@ export interface Client {
1762
1660
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1763
1661
  */
1764
1662
  simulate?: boolean;
1765
- }) => Promise<AssembledTransaction<null>>;
1663
+ }) => Promise<AssembledTransaction<string>>;
1766
1664
  /**
1767
1665
  * 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.
1768
1666
  * Sets TTL configs for instance and persistent storage.
@@ -1855,6 +1753,190 @@ export interface Client {
1855
1753
  */
1856
1754
  simulate?: boolean;
1857
1755
  }) => Promise<AssembledTransaction<boolean>>;
1756
+ /**
1757
+ * 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.
1758
+ * Extends the instance TTL.
1759
+ *
1760
+ * # Arguments
1761
+ *
1762
+ * * `threshold` - The threshold to extend the TTL (if current TTL is below this, extend).
1763
+ * * `extend_to` - The TTL to extend to.
1764
+ */
1765
+ extend_instance_ttl: ({ threshold, extend_to }: {
1766
+ threshold: u32;
1767
+ extend_to: u32;
1768
+ }, txnOptions?: {
1769
+ /**
1770
+ * The fee to pay for the transaction. Default: BASE_FEE
1771
+ */
1772
+ fee?: number;
1773
+ /**
1774
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1775
+ */
1776
+ timeoutInSeconds?: number;
1777
+ /**
1778
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1779
+ */
1780
+ simulate?: boolean;
1781
+ }) => Promise<AssembledTransaction<null>>;
1782
+ /**
1783
+ * Construct and simulate a set_signer 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.
1784
+ * Adds or removes a signer from the multisig. Requires owner authorization.
1785
+ */
1786
+ set_signer: ({ signer, active }: {
1787
+ signer: Buffer;
1788
+ active: boolean;
1789
+ }, txnOptions?: {
1790
+ /**
1791
+ * The fee to pay for the transaction. Default: BASE_FEE
1792
+ */
1793
+ fee?: number;
1794
+ /**
1795
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1796
+ */
1797
+ timeoutInSeconds?: number;
1798
+ /**
1799
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1800
+ */
1801
+ simulate?: boolean;
1802
+ }) => Promise<AssembledTransaction<null>>;
1803
+ /**
1804
+ * Construct and simulate a set_threshold 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.
1805
+ * Sets the signature threshold (quorum). Requires owner authorization.
1806
+ */
1807
+ set_threshold: ({ threshold }: {
1808
+ threshold: u32;
1809
+ }, txnOptions?: {
1810
+ /**
1811
+ * The fee to pay for the transaction. Default: BASE_FEE
1812
+ */
1813
+ fee?: number;
1814
+ /**
1815
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1816
+ */
1817
+ timeoutInSeconds?: number;
1818
+ /**
1819
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1820
+ */
1821
+ simulate?: boolean;
1822
+ }) => Promise<AssembledTransaction<null>>;
1823
+ /**
1824
+ * Construct and simulate a get_signers 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.
1825
+ * Returns all registered signers.
1826
+ */
1827
+ get_signers: (txnOptions?: {
1828
+ /**
1829
+ * The fee to pay for the transaction. Default: BASE_FEE
1830
+ */
1831
+ fee?: number;
1832
+ /**
1833
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1834
+ */
1835
+ timeoutInSeconds?: number;
1836
+ /**
1837
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1838
+ */
1839
+ simulate?: boolean;
1840
+ }) => Promise<AssembledTransaction<Array<Buffer>>>;
1841
+ /**
1842
+ * Construct and simulate a total_signers 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.
1843
+ * Returns the total number of registered signers.
1844
+ */
1845
+ total_signers: (txnOptions?: {
1846
+ /**
1847
+ * The fee to pay for the transaction. Default: BASE_FEE
1848
+ */
1849
+ fee?: number;
1850
+ /**
1851
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1852
+ */
1853
+ timeoutInSeconds?: number;
1854
+ /**
1855
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1856
+ */
1857
+ simulate?: boolean;
1858
+ }) => Promise<AssembledTransaction<u32>>;
1859
+ /**
1860
+ * Construct and simulate a is_signer 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.
1861
+ * Checks if an address is a registered signer.
1862
+ */
1863
+ is_signer: ({ signer }: {
1864
+ signer: Buffer;
1865
+ }, txnOptions?: {
1866
+ /**
1867
+ * The fee to pay for the transaction. Default: BASE_FEE
1868
+ */
1869
+ fee?: number;
1870
+ /**
1871
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1872
+ */
1873
+ timeoutInSeconds?: number;
1874
+ /**
1875
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1876
+ */
1877
+ simulate?: boolean;
1878
+ }) => Promise<AssembledTransaction<boolean>>;
1879
+ /**
1880
+ * Construct and simulate a threshold 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.
1881
+ * Returns the current signature threshold (quorum).
1882
+ */
1883
+ threshold: (txnOptions?: {
1884
+ /**
1885
+ * The fee to pay for the transaction. Default: BASE_FEE
1886
+ */
1887
+ fee?: number;
1888
+ /**
1889
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1890
+ */
1891
+ timeoutInSeconds?: number;
1892
+ /**
1893
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1894
+ */
1895
+ simulate?: boolean;
1896
+ }) => Promise<AssembledTransaction<u32>>;
1897
+ /**
1898
+ * Construct and simulate a verify_signatures 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.
1899
+ * Verifies signatures against the configured threshold.
1900
+ */
1901
+ verify_signatures: ({ digest, signatures }: {
1902
+ digest: Buffer;
1903
+ signatures: Array<Buffer>;
1904
+ }, txnOptions?: {
1905
+ /**
1906
+ * The fee to pay for the transaction. Default: BASE_FEE
1907
+ */
1908
+ fee?: number;
1909
+ /**
1910
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1911
+ */
1912
+ timeoutInSeconds?: number;
1913
+ /**
1914
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1915
+ */
1916
+ simulate?: boolean;
1917
+ }) => Promise<AssembledTransaction<null>>;
1918
+ /**
1919
+ * Construct and simulate a verify_n_signatures 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.
1920
+ * Verifies signatures against a custom threshold.
1921
+ */
1922
+ verify_n_signatures: ({ digest, signatures, threshold }: {
1923
+ digest: Buffer;
1924
+ signatures: Array<Buffer>;
1925
+ threshold: u32;
1926
+ }, txnOptions?: {
1927
+ /**
1928
+ * The fee to pay for the transaction. Default: BASE_FEE
1929
+ */
1930
+ fee?: number;
1931
+ /**
1932
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1933
+ */
1934
+ timeoutInSeconds?: number;
1935
+ /**
1936
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1937
+ */
1938
+ simulate?: boolean;
1939
+ }) => Promise<AssembledTransaction<null>>;
1858
1940
  }
1859
1941
  export declare class Client extends ContractClient {
1860
1942
  readonly options: ContractClientOptions;
@@ -1882,14 +1964,6 @@ export declare class Client extends ContractClient {
1882
1964
  }): Promise<AssembledTransaction<T>>;
1883
1965
  constructor(options: ContractClientOptions);
1884
1966
  readonly fromJSON: {
1885
- set_signer: (json: string) => AssembledTransaction<null>;
1886
- set_threshold: (json: string) => AssembledTransaction<null>;
1887
- get_signers: (json: string) => AssembledTransaction<Buffer<ArrayBufferLike>[]>;
1888
- total_signers: (json: string) => AssembledTransaction<number>;
1889
- is_signer: (json: string) => AssembledTransaction<boolean>;
1890
- threshold: (json: string) => AssembledTransaction<number>;
1891
- verify_signatures: (json: string) => AssembledTransaction<null>;
1892
- verify_n_signatures: (json: string) => AssembledTransaction<null>;
1893
1967
  set_paused: (json: string) => AssembledTransaction<null>;
1894
1968
  set_supported_message_lib: (json: string) => AssembledTransaction<null>;
1895
1969
  set_allowlist: (json: string) => AssembledTransaction<null>;
@@ -1923,10 +1997,19 @@ export declare class Client extends ContractClient {
1923
1997
  quorum_change_admin: (json: string) => AssembledTransaction<null>;
1924
1998
  upgrade: (json: string) => AssembledTransaction<null>;
1925
1999
  migrate: (json: string) => AssembledTransaction<null>;
1926
- extend_instance_ttl: (json: string) => AssembledTransaction<null>;
2000
+ authorizer: (json: string) => AssembledTransaction<string>;
1927
2001
  set_ttl_configs: (json: string) => AssembledTransaction<null>;
1928
2002
  ttl_configs: (json: string) => AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>;
1929
2003
  freeze_ttl_configs: (json: string) => AssembledTransaction<null>;
1930
2004
  is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
2005
+ extend_instance_ttl: (json: string) => AssembledTransaction<null>;
2006
+ set_signer: (json: string) => AssembledTransaction<null>;
2007
+ set_threshold: (json: string) => AssembledTransaction<null>;
2008
+ get_signers: (json: string) => AssembledTransaction<Buffer<ArrayBufferLike>[]>;
2009
+ total_signers: (json: string) => AssembledTransaction<number>;
2010
+ is_signer: (json: string) => AssembledTransaction<boolean>;
2011
+ threshold: (json: string) => AssembledTransaction<number>;
2012
+ verify_signatures: (json: string) => AssembledTransaction<null>;
2013
+ verify_n_signatures: (json: string) => AssembledTransaction<null>;
1931
2014
  };
1932
2015
  }