@layerzerolabs/protocol-stellar-v2 0.2.19 → 0.2.21

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 (249) hide show
  1. package/.turbo/turbo-build.log +795 -791
  2. package/.turbo/turbo-lint.log +325 -155
  3. package/.turbo/turbo-test.log +1398 -1277
  4. package/Cargo.lock +122 -111
  5. package/Cargo.toml +32 -16
  6. package/contracts/common-macros/Cargo.toml +7 -7
  7. package/contracts/common-macros/src/auth.rs +18 -37
  8. package/contracts/common-macros/src/contract_ttl.rs +18 -7
  9. package/contracts/common-macros/src/lib.rs +31 -14
  10. package/contracts/common-macros/src/lz_contract.rs +38 -7
  11. package/contracts/common-macros/src/storage.rs +251 -292
  12. package/contracts/common-macros/src/tests/contract_ttl.rs +1 -1
  13. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_multisig_code.snap +6 -12
  14. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_ownable_code.snap +12 -17
  15. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap +2 -1
  16. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_configurable__snapshot_generated_ttl_configurable_code.snap +2 -7
  17. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__upgradeable__snapshot_generated_upgradeable_code.snap +20 -14
  18. package/contracts/common-macros/src/tests/upgradeable.rs +26 -4
  19. package/contracts/common-macros/src/ttl_configurable.rs +2 -10
  20. package/contracts/common-macros/src/ttl_extendable.rs +2 -10
  21. package/contracts/common-macros/src/upgradeable.rs +61 -26
  22. package/contracts/common-macros/src/utils.rs +0 -9
  23. package/contracts/endpoint-v2/src/lib.rs +3 -2
  24. package/contracts/endpoint-v2/src/tests/endpoint_v2/clear.rs +2 -2
  25. package/contracts/endpoint-v2/src/tests/endpoint_v2/lz_receive_alert.rs +3 -3
  26. package/contracts/endpoint-v2/src/tests/endpoint_v2/send.rs +4 -4
  27. package/contracts/endpoint-v2/src/tests/endpoint_v2/set_delegate.rs +17 -5
  28. package/contracts/endpoint-v2/src/tests/endpoint_v2/set_zro.rs +4 -4
  29. package/contracts/endpoint-v2/src/tests/endpoint_v2/verify.rs +2 -2
  30. package/contracts/endpoint-v2/src/tests/message_lib_manager/register_library.rs +2 -2
  31. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_receive_lib_timeout.rs +6 -6
  32. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_receive_library.rs +67 -37
  33. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_send_library.rs +5 -5
  34. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_receive_library.rs +44 -54
  35. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_receive_library_timeout.rs +7 -7
  36. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_send_library.rs +8 -8
  37. package/contracts/endpoint-v2/src/tests/messaging_channel/burn.rs +3 -3
  38. package/contracts/endpoint-v2/src/tests/messaging_channel/nilify.rs +4 -4
  39. package/contracts/endpoint-v2/src/tests/messaging_channel/skip.rs +3 -3
  40. package/contracts/endpoint-v2/src/tests/messaging_composer/clear_compose.rs +2 -2
  41. package/contracts/endpoint-v2/src/tests/messaging_composer/lz_compose_alert.rs +3 -3
  42. package/contracts/endpoint-v2/src/tests/messaging_composer/send_compose.rs +2 -2
  43. package/contracts/layerzero-views/Cargo.toml +0 -1
  44. package/contracts/layerzero-views/src/layerzero_view.rs +1 -13
  45. package/contracts/macro-integration-tests/Cargo.toml +5 -15
  46. package/contracts/macro-integration-tests/tests/runtime/oapp/mod.rs +48 -0
  47. package/contracts/macro-integration-tests/tests/runtime/oapp/oapp_core.rs +170 -0
  48. package/contracts/macro-integration-tests/tests/runtime/oapp/options_type3.rs +154 -0
  49. package/contracts/macro-integration-tests/tests/runtime/oapp/receiver.rs +338 -0
  50. package/contracts/macro-integration-tests/tests/runtime/oapp/sender.rs +435 -0
  51. package/contracts/macro-integration-tests/tests/runtime.rs +1 -0
  52. package/contracts/macro-integration-tests/tests/ui/oapp/fail/custom_wrong_value.rs +8 -0
  53. package/contracts/macro-integration-tests/tests/ui/oapp/fail/custom_wrong_value.stderr +5 -0
  54. package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_lz_receive_internal.rs +8 -0
  55. package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_lz_receive_internal.stderr +71 -0
  56. package/contracts/macro-integration-tests/tests/ui/oapp/fail/non_struct_input.rs +10 -0
  57. package/contracts/macro-integration-tests/tests/ui/oapp/fail/non_struct_input.stderr +5 -0
  58. package/contracts/macro-integration-tests/tests/ui/oapp/fail/unknown_custom_option.rs +8 -0
  59. package/contracts/macro-integration-tests/tests/ui/oapp/fail/unknown_custom_option.stderr +5 -0
  60. package/contracts/macro-integration-tests/tests/ui/oapp/fail/wrong_key.rs +8 -0
  61. package/contracts/macro-integration-tests/tests/ui/oapp/fail/wrong_key.stderr +5 -0
  62. package/contracts/macro-integration-tests/tests/ui/oapp/pass/custom_all.rs +38 -0
  63. package/contracts/macro-integration-tests/tests/ui/oapp/pass/custom_single_trait.rs +96 -0
  64. package/contracts/macro-integration-tests/tests/ui/oapp/pass/minimal_contract.rs +64 -0
  65. package/contracts/macro-integration-tests/tests/ui/oapp/pass/struct_with_fields.rs +46 -0
  66. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.stderr +8 -0
  67. package/contracts/macro-integration-tests/tests/ui/ownable/pass/namespacing_and_imports.rs +1 -1
  68. package/contracts/macro-integration-tests/tests/ui/ownable/pass/only_auth_env_param_variants.rs +1 -1
  69. package/contracts/macro-integration-tests/tests/ui_oapp.rs +11 -0
  70. package/contracts/message-libs/message-lib-common/Cargo.toml +0 -1
  71. package/contracts/message-libs/message-lib-common/src/errors.rs +1 -1
  72. package/contracts/message-libs/treasury/Cargo.toml +0 -2
  73. package/contracts/message-libs/treasury/src/tests/treasury_tests.rs +2 -2
  74. package/contracts/message-libs/uln-302/src/events.rs +4 -0
  75. package/contracts/message-libs/uln-302/src/send_uln.rs +22 -6
  76. package/contracts/message-libs/uln-302/src/tests/receive_uln302/effective_receive_uln_config.rs +2 -2
  77. package/contracts/message-libs/uln-302/src/tests/receive_uln302/set_default_receive_uln_configs.rs +2 -2
  78. package/contracts/message-libs/uln-302/src/tests/receive_uln302/verify.rs +2 -2
  79. package/contracts/message-libs/uln-302/src/tests/send_uln302/effective_executor_config.rs +2 -2
  80. package/contracts/message-libs/uln-302/src/tests/send_uln302/effective_send_uln_config.rs +2 -2
  81. package/contracts/message-libs/uln-302/src/tests/send_uln302/send.rs +21 -67
  82. package/contracts/message-libs/uln-302/src/tests/send_uln302/set_default_executor_configs.rs +2 -2
  83. package/contracts/message-libs/uln-302/src/tests/send_uln302/set_default_send_uln_configs.rs +2 -2
  84. package/contracts/oapps/counter/Cargo.toml +5 -6
  85. package/contracts/oapps/counter/integration_tests/setup_uln.rs +1 -1
  86. package/contracts/oapps/counter/integration_tests/utils.rs +19 -12
  87. package/contracts/oapps/oapp/src/errors.rs +1 -1
  88. package/contracts/oapps/oapp/src/interfaces/mod.rs +3 -0
  89. package/contracts/oapps/oapp/src/interfaces/oapp_msg_inspector.rs +47 -0
  90. package/contracts/oapps/oapp/src/lib.rs +1 -0
  91. package/contracts/oapps/oapp/src/macro_tests/test_macros.rs +4 -4
  92. package/contracts/oapps/oapp/src/oapp_core.rs +5 -5
  93. package/contracts/oapps/oapp/src/oapp_options_type3.rs +12 -4
  94. package/contracts/oapps/oapp/src/oapp_receiver.rs +14 -9
  95. package/contracts/oapps/oapp/src/tests/mod.rs +4 -4
  96. package/contracts/oapps/oapp/src/tests/oapp_core.rs +223 -0
  97. package/contracts/oapps/oapp/src/tests/oapp_options_type3.rs +240 -0
  98. package/contracts/oapps/oapp/src/tests/oapp_receiver.rs +381 -0
  99. package/contracts/oapps/oapp/src/tests/oapp_sender.rs +569 -0
  100. package/contracts/oapps/oapp-macros/Cargo.toml +8 -4
  101. package/contracts/oapps/oapp-macros/src/generators.rs +9 -34
  102. package/contracts/oapps/oapp-macros/src/lib.rs +3 -0
  103. package/contracts/oapps/oapp-macros/src/tests/mod.rs +2 -0
  104. package/contracts/oapps/oapp-macros/src/tests/oapp.rs +88 -0
  105. package/contracts/oapps/oapp-macros/src/tests/parse_custom_impls.rs +86 -0
  106. package/contracts/oapps/oapp-macros/src/tests/snapshots/oapp_macros__tests__oapp__snapshot_generate_oapp.snap +103 -0
  107. package/contracts/oapps/oft/integration-tests/utils.rs +28 -8
  108. package/contracts/oapps/oft/src/extensions/oft_fee.rs +153 -75
  109. package/contracts/oapps/oft/src/extensions/pausable.rs +61 -12
  110. package/contracts/oapps/oft/src/extensions/rate_limiter.rs +198 -134
  111. package/contracts/oapps/oft/src/oft.rs +45 -50
  112. package/contracts/oapps/oft/src/oft_types/lock_unlock.rs +1 -1
  113. package/contracts/oapps/oft/src/oft_types/mint_burn.rs +4 -26
  114. package/contracts/oapps/oft-core/Cargo.toml +1 -4
  115. package/contracts/oapps/oft-core/integration-tests/setup.rs +3 -3
  116. package/contracts/oapps/oft-core/integration-tests/utils.rs +21 -3
  117. package/contracts/oapps/oft-core/src/errors.rs +3 -2
  118. package/contracts/oapps/oft-core/src/events.rs +6 -0
  119. package/contracts/oapps/oft-core/src/lib.rs +1 -1
  120. package/contracts/oapps/oft-core/src/oft_core.rs +341 -246
  121. package/contracts/oapps/oft-core/src/storage.rs +7 -3
  122. package/contracts/oapps/oft-core/src/tests/mod.rs +1 -0
  123. package/contracts/oapps/oft-core/src/tests/test_decimals.rs +37 -2
  124. package/contracts/oapps/oft-core/src/tests/test_lz_receive.rs +2 -2
  125. package/contracts/oapps/oft-core/src/tests/test_msg_inspector.rs +323 -0
  126. package/contracts/oapps/oft-core/src/tests/test_send.rs +2 -2
  127. package/contracts/oapps/oft-core/src/tests/test_utils.rs +61 -16
  128. package/contracts/upgrader/src/lib.rs +30 -57
  129. package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract1.wasm +0 -0
  130. package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract2.wasm +0 -0
  131. package/contracts/upgrader/src/tests/test_upgrader.rs +44 -35
  132. package/contracts/utils/Cargo.toml +0 -1
  133. package/contracts/utils/src/buffer_reader.rs +1 -0
  134. package/contracts/utils/src/errors.rs +4 -2
  135. package/contracts/utils/src/multisig.rs +17 -8
  136. package/contracts/utils/src/ownable.rs +6 -6
  137. package/contracts/utils/src/testing_utils.rs +124 -54
  138. package/contracts/utils/src/tests/multisig.rs +12 -12
  139. package/contracts/utils/src/tests/ownable.rs +6 -6
  140. package/contracts/utils/src/tests/testing_utils.rs +50 -167
  141. package/contracts/utils/src/tests/ttl_configurable.rs +5 -5
  142. package/contracts/utils/src/tests/upgradeable.rs +372 -175
  143. package/contracts/utils/src/ttl_configurable.rs +13 -7
  144. package/contracts/utils/src/upgradeable.rs +48 -23
  145. package/contracts/workers/dvn/Cargo.toml +6 -6
  146. package/contracts/workers/dvn/src/auth.rs +12 -42
  147. package/contracts/workers/dvn/src/dvn.rs +15 -40
  148. package/contracts/workers/dvn/src/errors.rs +0 -1
  149. package/contracts/workers/dvn/src/interfaces/dvn.rs +35 -0
  150. package/contracts/workers/dvn/src/lib.rs +4 -3
  151. package/contracts/workers/dvn/src/tests/auth.rs +1 -1
  152. package/contracts/workers/dvn/src/tests/dvn.rs +19 -15
  153. package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +2 -4
  154. package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +1 -3
  155. package/contracts/workers/dvn/src/tests/setup.rs +5 -9
  156. package/contracts/workers/dvn-fee-lib/Cargo.toml +2 -2
  157. package/contracts/workers/dvn-fee-lib/src/dvn_fee_lib.rs +38 -22
  158. package/contracts/workers/dvn-fee-lib/src/lib.rs +12 -2
  159. package/contracts/workers/dvn-fee-lib/src/tests/dvn_fee_lib.rs +17 -16
  160. package/contracts/workers/executor/Cargo.toml +4 -0
  161. package/contracts/workers/executor/src/executor.rs +15 -36
  162. package/contracts/workers/executor/src/lib.rs +2 -2
  163. package/contracts/workers/executor/src/tests/auth.rs +394 -0
  164. package/contracts/workers/executor/src/tests/executor.rs +410 -0
  165. package/contracts/workers/executor/src/tests/mod.rs +3 -0
  166. package/contracts/workers/executor/src/tests/setup.rs +250 -0
  167. package/contracts/workers/executor-fee-lib/Cargo.toml +7 -1
  168. package/contracts/workers/executor-fee-lib/src/executor_fee_lib.rs +62 -15
  169. package/contracts/workers/executor-fee-lib/src/executor_option.rs +28 -1
  170. package/contracts/workers/executor-fee-lib/src/lib.rs +11 -2
  171. package/contracts/workers/executor-fee-lib/src/tests/executor_fee_lib.rs +701 -0
  172. package/contracts/workers/executor-fee-lib/src/tests/executor_option.rs +370 -0
  173. package/contracts/workers/executor-fee-lib/src/tests/mod.rs +4 -0
  174. package/contracts/workers/executor-fee-lib/src/tests/setup.rs +60 -0
  175. package/contracts/workers/executor-helper/Cargo.toml +0 -1
  176. package/contracts/workers/executor-helper/src/lib.rs +3 -0
  177. package/contracts/workers/executor-helper/src/tests/executor_helper.rs +184 -0
  178. package/contracts/workers/executor-helper/src/tests/mod.rs +2 -0
  179. package/contracts/workers/executor-helper/src/tests/setup.rs +366 -0
  180. package/contracts/workers/fee-lib-interfaces/Cargo.toml +14 -0
  181. package/contracts/workers/{worker/src/interfaces/mod.rs → fee-lib-interfaces/src/lib.rs} +4 -3
  182. package/contracts/workers/price-feed/Cargo.toml +7 -1
  183. package/contracts/workers/price-feed/src/events.rs +1 -1
  184. package/contracts/workers/price-feed/src/lib.rs +12 -4
  185. package/contracts/workers/price-feed/src/price_feed.rs +5 -21
  186. package/contracts/workers/price-feed/src/storage.rs +1 -1
  187. package/contracts/workers/price-feed/src/tests/mod.rs +2 -0
  188. package/contracts/workers/price-feed/src/tests/price_feed.rs +869 -0
  189. package/contracts/workers/price-feed/src/tests/setup.rs +70 -0
  190. package/contracts/workers/price-feed/src/types.rs +1 -1
  191. package/contracts/workers/worker/src/errors.rs +1 -4
  192. package/contracts/workers/worker/src/lib.rs +0 -2
  193. package/contracts/workers/worker/src/storage.rs +32 -29
  194. package/contracts/workers/worker/src/tests/setup.rs +2 -8
  195. package/contracts/workers/worker/src/tests/worker.rs +96 -74
  196. package/contracts/workers/worker/src/worker.rs +75 -75
  197. package/docs/error-spec.md +55 -0
  198. package/docs/layerzero-v2-on-stellar.md +447 -0
  199. package/docs/oapp-guide.md +212 -0
  200. package/docs/oft-guide.md +314 -0
  201. package/package.json +3 -3
  202. package/sdk/.turbo/turbo-test.log +268 -263
  203. package/sdk/dist/generated/bml.d.ts +12 -4
  204. package/sdk/dist/generated/bml.js +9 -7
  205. package/sdk/dist/generated/counter.d.ts +306 -298
  206. package/sdk/dist/generated/counter.js +48 -46
  207. package/sdk/dist/generated/dvn.d.ts +450 -411
  208. package/sdk/dist/generated/dvn.js +66 -64
  209. package/sdk/dist/generated/dvn_fee_lib.d.ts +294 -338
  210. package/sdk/dist/generated/dvn_fee_lib.js +33 -64
  211. package/sdk/dist/generated/endpoint.d.ts +108 -100
  212. package/sdk/dist/generated/endpoint.js +21 -19
  213. package/sdk/dist/generated/executor.d.ts +414 -370
  214. package/sdk/dist/generated/executor.js +58 -55
  215. package/sdk/dist/generated/executor_fee_lib.d.ts +333 -377
  216. package/sdk/dist/generated/executor_fee_lib.js +34 -65
  217. package/sdk/dist/generated/executor_helper.d.ts +26 -190
  218. package/sdk/dist/generated/executor_helper.js +23 -28
  219. package/sdk/dist/generated/layerzero_view.d.ts +1271 -0
  220. package/sdk/dist/generated/layerzero_view.js +294 -0
  221. package/sdk/dist/generated/oft.d.ts +408 -385
  222. package/sdk/dist/generated/oft.js +89 -92
  223. package/sdk/dist/generated/price_feed.d.ts +385 -429
  224. package/sdk/dist/generated/price_feed.js +50 -81
  225. package/sdk/dist/generated/sml.d.ts +108 -100
  226. package/sdk/dist/generated/sml.js +21 -19
  227. package/sdk/dist/generated/treasury.d.ts +108 -100
  228. package/sdk/dist/generated/treasury.js +21 -19
  229. package/sdk/dist/generated/uln302.d.ts +108 -100
  230. package/sdk/dist/generated/uln302.js +23 -21
  231. package/sdk/dist/generated/upgrader.d.ts +189 -18
  232. package/sdk/dist/generated/upgrader.js +84 -4
  233. package/sdk/dist/index.d.ts +1 -0
  234. package/sdk/dist/index.js +2 -0
  235. package/sdk/package.json +1 -1
  236. package/sdk/src/index.ts +3 -0
  237. package/sdk/test/oft-sml.test.ts +4 -4
  238. package/sdk/test/suites/localnet.ts +84 -20
  239. package/sdk/test/upgrader.test.ts +2 -3
  240. package/tools/ts-bindings-gen/src/main.rs +2 -1
  241. package/contracts/ERROR_SPEC.md +0 -44
  242. package/contracts/endpoint-v2/ARCHITECTURE.md +0 -233
  243. package/contracts/oapps/oapp/src/tests/test_oapp_core.rs +0 -175
  244. package/contracts/oapps/oapp/src/tests/test_oapp_options_type3.rs +0 -212
  245. package/contracts/oapps/oapp/src/tests/test_oapp_receiver.rs +0 -153
  246. package/contracts/oapps/oapp/src/tests/test_oapp_sender.rs +0 -294
  247. /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/dvn_fee_lib.rs +0 -0
  248. /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/executor_fee_lib.rs +0 -0
  249. /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/price_feed.rs +0 -0
@@ -4,17 +4,16 @@ import type { u32, u64, i128, Option } from '@stellar/stellar-sdk/contract';
4
4
  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
- export type MigrationData = void;
8
7
  /**
9
8
  * Embedded WASM bytecode (base64-encoded)
10
- * Size: 29063 bytes (28.38 KB)
9
+ * Size: 29284 bytes (28.60 KB)
11
10
  */
12
- export declare const WASM_BASE64 = "AGFzbQEAAAABjgEZYAJ+fgF+YAN+fn4BfmABfgF+YAABfmAEfn5+fgF+YAJ/fwBgAX8BfmACfn4Bf2ACf34AYAN/fn4AYAABf2ABfwBgAABgAn5/AGABfgBgBH9/f38BfmADf39/AGACfn4AYAJ/fwF+YAR+fn9/AX5gAn9/AX9gA35/fwBgAn9+AX9gAX8Bf2AFfn9/f38AAs0BIgFsATEAAAFsAV8AAQFhATAAAgF2AV8AAwF2ATYAAAFiATQAAwFiATgAAgFiAV8AAgFiAWYAAQFiAWUAAAFkAV8AAQFiATAAAgF4ATcAAwFsATIAAAF4ATEAAAF4ATAAAAFsATcABAFpAV8AAgFpATAAAgFiATEABAFiATMAAAFpATgAAgFpATcAAgFpATYAAAFiAWoAAAFiATIABAFtATkAAQFtAWEABAF2AWcAAAF4ATMAAwF4ATgAAwFsATAAAAFsATgAAAF4ATUAAgNnZgUGBwUICQAICgsFBgwDAwsNDAsOBgsBCQ8QCBERDg4BCAsLAQMDEhMUCBUIFgECAwADCAEODAAIAxIXBhIMAgICAgMDDAMDAwMDAAgKEBICBgMFBQMDAAMAAwIRAAwJAwMMGBAIEAUDAQARBiEEfwFBgIDAAAt/AEGEg8AAC38AQaaFwAALfwBBsIXAAAsHpwQjBm1lbW9yeQIABXF1b3RlAEEEc2VuZABFCmdldF9jb25maWcATxBpc19zdXBwb3J0ZWRfZWlkAFAQbWVzc2FnZV9saWJfdHlwZQBRCnNldF9jb25maWcAUgd2ZXJzaW9uAFMNX19jb25zdHJ1Y3RvcgBVD3ZhbGlkYXRlX3BhY2tldABYEXNldF9mZWVfcmVjaXBpZW50AGAOc2V0X25hdGl2ZV9mZWUAYQtzZXRfenJvX2ZlZQBiFnNldF93aGl0ZWxpc3RlZF9jYWxsZXIAYwhlbmRwb2ludABkCWxvY2FsX2VpZABlCm5hdGl2ZV9mZWUAZwd6cm9fZmVlAGgNZmVlX3JlY2lwaWVudABpEndoaXRlbGlzdGVkX2NhbGxlcgBqCmF1dGhvcml6ZXIAaw9zZXRfdHRsX2NvbmZpZ3MAbAt0dGxfY29uZmlncwBzEmZyZWV6ZV90dGxfY29uZmlncwB2FWlzX3R0bF9jb25maWdzX2Zyb3plbgB3E2V4dGVuZF9pbnN0YW5jZV90dGwAeAVvd25lcgB5DXBlbmRpbmdfb3duZXIAexJ0cmFuc2Zlcl9vd25lcnNoaXAAfBpwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcgB+EGFjY2VwdF9vd25lcnNoaXAAgQEScmVub3VuY2Vfb3duZXJzaGlwAIIBAV8DAQpfX2RhdGFfZW5kAwILX19oZWFwX2Jhc2UDAwqaW2ZNAQJ+QgAhAgJAAkAgARCjgICAACIDQgIQpICAgABFDQAgA0ICEICAgIAAIgJC/wGDQs0AUg0BIAAgAjcDCEIBIQILIAAgAjcDAA8LAAvAAgIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkACQAJAAkAgAEH/AXEOBgABAgMEBQALIAFBjoDAgABBCBC7gICAACABKAIADQYgASABKQMIELyAgIAADAULIAFBloDAgABBCBC7gICAACABKAIADQUgASABKQMIELyAgIAADAQLIAFBnoDAgABBCRC7gICAACABKAIADQQgASABKQMIELyAgIAADAMLIAFBp4DAgABBBhC7gICAACABKAIADQMgASABKQMIELyAgIAADAILIAFBrYDAgABBDBC7gICAACABKAIADQIgASABKQMIELyAgIAADAELIAFBuYDAgABBERC7gICAACABKAIADQEgASABKQMIELyAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILDwAgACABEJ+AgIAAQgFRC40BAgF/AX4jgICAgABBIGsiAiSAgICAAAJAAkACQCABEKOAgIAAIgNCAhCkgICAAA0AQgAhAwwBCyACIANCAhCAgICAABCmgICAACACKAIAQQFGDQEgAikDECEDIAAgAikDGDcDGCAAIAM3AxBCASEDCyAAIAM3AwAgAEIANwMIIAJBIGokgICAgAAPCwALfQIBfwF+AkACQAJAAkAgAadB/wFxIgJBxQBGDQAgAkELRw0CIAAgAUI/hzcDGCAAIAFCCIc3AxAMAQsgARCVgICAACEDIAEQloCAgAAhASAAIAM3AxggACABNwMQC0IAIQEMAQsgAEKDkICAgAE3AwhCASEBCyAAIAE3AwALHQAgABCjgICAACABIAIQqICAgABCAhCBgICAABoLQwEBfyOAgICAAEEQayICJICAgIAAIAIgACABELmAgIAAAkAgAigCAEEBRw0AAAsgAikDCCEBIAJBEGokgICAgAAgAQsVACAAEKOAgIAAIAFCAhCBgICAABoLiwECAn8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQq4CAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMEKyAgIAAC0EAIQECQEEAEK2AgIAAIgJCAhCkgICAAEUNAEEBIQECQAJAIAJCAhCAgICAAKdB/wFxDgIBAgALAAtBACEBCyAAQRBqJICAgIAAIAELDAAgAEEBEPSAgIAACxsAIACtQiCGQgSEIAGtQiCGQgSEEKCAgIAAGgvCAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkAgAEH/AXEOAwABAgALIAFBjoXAgABBBhC7gICAACABKAIADQMgASABKQMIELyAgIAADAILIAFBlIXAgABBCBC7gICAACABKAIADQIgASABKQMIELyAgIAADAELIAFBnIXAgABBChC7gICAACABKAIADQEgASABKQMIELyAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILDwAQr4CAgAAQgoCAgAAaC2YCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQq4CAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEKyAgIAACyAAELGAgIAAIAApAwghASAAKQMAQYoIELKAgIAAIABBEGokgICAgAAgAQtKAgF/AX4jgICAgABBEGsiACSAgICAACAAELGAgIAAIAApAwghASAAKQMAQYoIELKAgIAAIAEQgoCAgAAaIABBEGokgICAgAAgAQtQAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEEahCrgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQrICAgAALIAAQt4CAgAAgAUEQaiSAgICAAAspAAJAIACnQQFxRQ0ADwsgAUH6d2qtQiCGQoOAgIDggAF8ELWAgIAAAAtCAQF/I4CAgIAAQRBrIgAkgICAgAAgABC0gICAAAJAIAApAwBQDQBCg4CAgLCBARC1gICAAAALIABBEGokgICAgAALkwECAX8CfiOAgICAAEEQayIBJICAgIAAIAFBBGoQq4CAgAACQCABKAIEQQFHDQAgASgCCCABKAIMEKyAgIAAC0IAIQICQAJAQQEQtoCAgAAiA0IAEKSAgIAARQ0AIANCABCAgICAACICQv8Bg0LNAFINASAAIAI3AwhCASECCyAAIAI3AwAgAUEQaiSAgICAAA8LAAsLACAAEKGAgIAAGguSAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQCAAQQFxRQ0AIAFBoYTAgABBDBC7gICAACABKAIADQIgASABKQMIELyAgIAADAELIAFBnITAgABBBRC7gICAACABKAIADQEgASABKQMIELyAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILTQECfkIAIQECQAJAQQAQtoCAgAAiAkICEKSAgIAARQ0AIAJCAhCAgICAACIBQv8Bg0LNAFINASAAIAE3AwhCASEBCyAAIAE3AwAPCwALaAEBfyOAgICAAEEgayIDJICAgIAAIANBEGogACABELmAgIAAAkAgAygCEEEBRw0AAAsgAykDGCEBIAMgAjcDCCADIAE3AwBBtILAgABBAiADQQIQuoCAgAAhASADQSBqJICAgIAAIAELWwACQAJAIAFCgICAgICAgMAAfEL//////////wBWDQAgASABhSACIAFCP4eFhEIAUg0AIAFCCIZCC4QhAQwBCyACIAEQl4CAgAAhAQsgAEIANwMAIAAgATcDCAsuAAJAIAEgA0YNAAALIACtQiCGQgSEIAKtQiCGQgSEIAGtQiCGQgSEEJqAgIAAC1ECAX8BfiOAgICAAEEQayIDJICAgIAAIAMgASACEIWBgIAAQgEhBAJAIAMoAgANACAAIAMpAwg3AwhCACEECyAAIAQ3AwAgA0EQaiSAgICAAAtEAQF/I4CAgIAAQRBrIgIkgICAgAAgAiABNwMIIAJBCGpBARDIgICAACEBIABCADcDACAAIAE3AwggAkEQaiSAgICAAAsOAEECIAAgARCngICAAAsOAEEDIAAgARCngICAAAsMAEEEIAAQqYCAgAALDABBBSAAEKmAgIAAC6YCAgJ/AX4jgICAgABB0ABrIgMkgICAgAAgAyAAEMKAgIAAAkAgAygCAEEBRg0AIAFC/wGDQsgAUg0AQQEgAqdB/wFxIgRBAEdBAXQgBEEBRhsiBEECRg0AIAMQq4CAgAACQCADKAIAQQFHDQAgAygCBCADKAIIEKyAgIAACyADEMOAgIAAIAMpAwghAiADKQMAIQVCACEAQgAhAQJAIARBAXFFDQAgAxDEgICAACADKQMIIQEgAykDACEACyADIAUgAhC5gICAACADKAIADQAgAykDCCECIAMgACABELmAgIAAIAMoAgBBAUYNACADIAMpAwg3A0ggAyACNwNAQayBwIAAQQIgA0HAAGpBAhC6gICAACEAIANB0ABqJICAgIAAIAAPCwAL7AICAn8GfiOAgICAAEHQAGsiAiSAgICAAEEAIQMCQANAIANBOEYNASACQQhqIANqQgI3AwAgA0EIaiEDDAALC0IBIQQCQCABQv8Bg0LMAFINACABQfSBwIAAQQcgAkEIakEHEISBgIAAIAIpAwgiAUL/AYNCBFINACACQcAAaiACKQMQENmAgIAAIAIoAkANACACKQMYIgVC/wGDQsgAUg0AIAIpA0ghBgJAAkAgAikDICIHp0H/AXEiA0HAAEYNACADQQZHDQIgB0IIiCEHDAELIAcQkoCAgAAhBwsgAkHAAGogAikDKBDZgICAACACKAJADQAgAikDMCIIQv8Bg0LNAFINACACKQM4IglC/wGDQgRSDQAgAikDSCEEIAAgAUIgiKc2AjQgACAFNwMoIAAgBjcDICAAIAQ3AxggACAINwMQIAAgBzcDCCAAIAlCIIg+AjBCACEECyAAIAQ3AwAgAkHQAGokgICAgAALfQIBfwF+I4CAgIAAQSBrIgEkgICAgAAgARCrgICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQrICAgAALIAFBAhClgICAAAJAIAEoAgBBAXENABDmgICAAAALIAEpAxghAiAAIAEpAxA3AwAgACACNwMIIAFBIGokgICAgAALfQIBfwF+I4CAgIAAQSBrIgEkgICAgAAgARCrgICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQrICAgAALIAFBAxClgICAAAJAIAEoAgBBAXENABDmgICAAAALIAEpAxghAiAAIAEpAxA3AwAgACACNwMIIAFBIGokgICAgAAL1gcEBX8EfgJ/AX4jgICAgABBwABrIgMkgICAgAAgAyAAEMKAgIAAAkAgAygCAEEBRg0AIAFC/wGDQsgAUg0AQQEgAqdB/wFxIgRBAEdBAXQgBEEBRhsiBUECRg0AIAMoAjQhBiADKAIwIQcgAykDKCEIIAMpAyAhCSADKQMYIQogAykDECELIAMpAwghASADEKuAgIAAAkAgAygCAEEBRw0AIAMoAgQgAygCCBCsgICAAAsgA0EgaiEMEMaAgIAAEIKAgIAAGhDHgICAACEAIAMQw4CAgAAgAyAANwMQIAMhBEICIQBBASENAkADQCANQQFxRQ0BQQAhDSAEKQMAIAQpAwggBEEQaikDABC4gICAACEAIAwhBAwACwsgAyAANwM4IANBOGpBARDIgICAACEOEIOAgIAAIQICQCAFQQFxRQ0AEMeAgIAAIQAgAxDEgICAACACIAMpAwAgAykDCCAAELiAgIAAEISAgIAAIQILEIWAgIAAIQAgA0EBOgAAIAAgABCGgICAAEKAgICAcINCBIQgA0EBEMmAgIAAIQAgAyABQjiGIAFCgP4Dg0IohoQgAUKAgPwHg0IYhiABQoCAgPgPg0IIhoSEIAFCCIhCgICA+A+DIAFCGIhCgID8B4OEIAFCKIhCgP4DgyABQjiIhISENwMAIAMgACAAEIaAgIAAQoCAgIBwg0IEhCADQQgQyYCAgAA3AzggA0E4aiAHEMqAgIAAIQ0gCxCHgICAACEAIAMgAEKEgICAwAAgABCGgICAAEKAgICAcINCBIQQiICAgAAiAEIEQoSAgIDAABCIgICAABDLgICAACADKAIAQQFGDQAgAykDCCEBIANBADYCACABIANBBBDMgICAAAJAIAMoAgAiBEH///8HcQ0AAkACQAJAIARBGHYOAgABAwsgAyAAQoSAgIDAAEKEgICAgAEQiICAgAAQy4CAgAAgAygCAEEBRg0DIAMpAwghASADQQA2AgAgASADQQQQzICAgAAgAygCAA0CIAMgAEKEgICAgAFChICAgIAFEIiAgIAAEM2AgIAAIAMoAgBBAUcNAQwDCyADIABChICAgMAAQoSAgIDABBCIgICAABDNgICAACADKAIAQQFGDQILIAMgDSADKQMIEM6AgIAAIAYQyoCAgAAgChDOgICAACkDADcDACADIAkQzoCAgAApAwAgCBCJgICAACEAIAMgAjcDECADIA43AwggAyAANwMAQeyCwIAAQQMgA0EDELqAgIAAIQAgA0HAAGokgICAgAAgAA8LQoOAgICg/gAQtYCAgAAACwALawIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCrgICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQrICAgAALIABBABCigICAAAJAIAAoAgANABDmgICAAAALIAApAwghASAAQRBqJICAgIAAIAELawIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCrgICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQrICAgAALIABBBBCigICAAAJAIAAoAgANABDmgICAAAALIAApAwghASAAQRBqJICAgIAAIAELGgAgAK1CIIZCBIQgAa1CIIZCBIQQnICAgAALHgAgACABIAKtQiCGQgSEIAOtQiCGQgSEEJmAgIAAC3cCAX8BfiOAgICAAEEQayICJICAgIAAIAIgAUEYdCABQYD+A3FBCHRyIAFBCHZBgP4DcSABQRh2cnI2AgwgACkDACEDIAAgAyADEIaAgIAAQoCAgIBwg0IEhCACQQxqQQQQyYCAgAA3AwAgAkEQaiSAgICAACAACzYBAX5CASECAkAgARCGgICAAEKAgICAcINCgICAgMAAUg0AIAAgATcDCEIAIQILIAAgAjcDAAsfACAAQgQgAa1CIIZCBIQgAq1CIIZCBIQQk4CAgAAaCzYBAX5CASECAkAgARCGgICAAEKAgICAcINCgICAgIAEUg0AIAAgATcDCEIAIQILIAAgAjcDAAvCAQEEfyOAgICAAEHAAGsiAiSAgICAACACQSBqQRhqIgNCADcDACACQSBqQRBqIgRCADcDACACQSBqQQhqIgVCADcDACACQgA3AyAgASACQSBqQSAQzICAgAAgAkEYaiADKQMANwMAIAJBEGogBCkDADcDACACQQhqIAUpAwA3AwAgAiACKQMgNwMAIAApAwAhASAAIAEgARCGgICAAEKAgICAcINCBIQgAkEgEMmAgIAANwMAIAJBwABqJICAgIAAIAALbwEBfyOAgICAAEEQayIDJICAgIAAAkAgAEL/AYNCBFINACABQv8Bg0LNAFINACACQv8Bg0IEUg0AIANBBGoQq4CAgAACQCADKAIEQQFHDQAgAygCCCADKAIMEKyAgIAAC0KDgICAEBC1gICAAAsAC1oBAX8jgICAgABBEGsiASSAgICAAAJAIABC/wGDQgRSDQAgAUEEahCrgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQrICAgAALIAFBEGokgICAgABCAQ8LAAuFAQIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCrgICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQrICAgAALIABBgIDAgABBDhC7gICAAAJAAkAgACgCAA0AIAAgACkDCBC8gICAACAAKAIAQQFHDQELAAsgACkDCCEBIABBEGokgICAgAAgAQtlAQF/I4CAgIAAQRBrIgIkgICAgAACQCAAQv8Bg0LNAFINACABQv8Bg0LLAFINACACQQRqEKuAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBCsgICAAAtCg4CAgBAQtYCAgAALAAueAQIBfwF+I4CAgIAAQTBrIgAkgICAgAAgAEEIahCrgICAAAJAIAAoAghBAUcNACAAKAIMIAAoAhAQrICAgAALIABBIGpCABDUgICAAAJAIAAoAiBBAUcNAAALIAApAyghASAAQgQ3AxggACABNwMQIABChICAgCA3AwhB3IHAgABBAyAAQQhqQQMQuoCAgAAhASAAQTBqJICAgIAAIAELOwACQAJAIAFC//////////8AVg0AIAFCCIZCBoQhAQwBCyABEJGAgIAAIQELIABCADcDACAAIAE3AwgLzQEBAX4CQAJAAkAgAEL/AYNCzQBSDQAgAUL/AYNCzQBSDQAgAkL/AYNCzQBSDQAgAUKO0q4VEIOAgIAAEIqAgIAAIgNC/wGDQgRSDQFBACABEKmAgIAAQQEQo4CAgAAgA0KEgICAcINCAhCBgICAABpC4wBCABC+gICAAELkAEIAEL2AgIAAIAIQv4CAgAAgABDAgICAAEEAELaAgIAAQgIQpICAgAANAiAAENaAgIAAQgIPCwALENeAgIAAAAtCg4CAgJCBARC1gICAAAALDgBBACAAQgIQgIGAgAALCQAQg4GAgAAAC/YGAgJ/BH4jgICAgABB0ABrIgIkgICAgAACQCAAQv8Bg0LIAFINACACQTBqIAEQ2YCAgAAgAigCMEEBRg0AIAIpAzghASACIAA3AwggAkEwahCrgICAAAJAIAIoAjBBAUcNACACKAI0IAIoAjgQrICAgAALENqAgIAAEIKAgIAAGgJAIAAQhoCAgABCgICAgHCDQoCAgICQClINACACQQA2AhQgAiACQQhqNgIQAkAgAkEQakEBENuAgIAAIgAQhoCAgABCgICAgHCDQoCAgIAQUg0AIAJBADoAMAJAIAAQhoCAgABCgICAgHCDQoCAgIAQUg0AIAAgAkEwakEBEMyAgIAAAkAgAi0AMEEBRw0AAkAgAkEQakEIENuAgIAAIgAQhoCAgABCgICAgHCDQoCAgICAAVINACACQgA3AzAgABCGgICAAEKAgICAcINCgICAgIABUg0CIAAgAkEwakEIEMyAgIAAIAIpAzAhACACQRBqENyAgIAAIQMgAkEQahDdgICAACEEIAJBEGoQ3ICAgAAaIAJBEGoQ3YCAgAAhBUGEg8CAAEEIEN6AgIAAIAUQiYCAgAAQi4CAgAAiBUL/AYNCzQBSDQUQxoCAgAAhBhCMgICAACEHIAJBEGogAEI4hiAAQoD+A4NCKIaEIABCgID8B4NCGIYgAEKAgID4D4NCCIaEhCAAQgiIQoCAgPgPgyAAQhiIQoCA/AeDhCAAQiiIQoD+A4MgAEI4iISEhBDUgICAACACKAIQQQFGDQUgAikDGCEAIAIgBDcDOCACIAA3AzAgAiADrUIghkIEhDcDQEGAgcCAAEEDIAJBMGpBAxC6gICAACEAIAIgATcDKCACIAU3AyAgAiAANwMYIAIgBzcDEEEAIQMCQANAAkAgA0EgRw0AQQAhAwJAA0AgA0EgRg0BIAJBMGogA2ogAkEQaiADaikDADcDACADQQhqIQMMAAsLIAZCjvyr963dAyACQTBqQQQQyICAgAAQioCAgABC/wGDQgJSDQIgAkHQAGokgICAgABCAg8LIAJBMGogA2pCAjcDACADQQhqIQMMAAsLENeAgIAAAAtCg4CAgICCARC1gICAAAALQoOAgIDQiQEQtYCAgAAACxDfgICAAAALQoOAgICAggEQtYCAgAAAC0KDgICAwIkBELWAgIAAAAsACyMAAkAgAUL/AYNCyABRDQAgAEIBNwMADwsgACABEM2AgIAAC2sCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQq4CAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEKyAgIAACyAAQQUQooCAgAACQCAAKAIADQAQ5oCAgAAACyAAKQMIIQEgAEEQaiSAgICAACABC3UCAn8BfgJAAkAgACgCBCICIAFqIgEgAkkNACABIAAoAgAiAykDABCGgICAAEIgiKdLDQEgAykDACACrUIghkIEhCABrUIghkIEhBCIgICAACEEIAAgATYCBCAEDwsQ14CAgAAAC0KDgICAgP0AELWAgIAAAAu5AQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAIABBBBDbgICAACICEIaAgIAAQoCAgIBwg0KAgICAwABSDQAgAUEANgIMIAIQhoCAgABCgICAgHCDQoCAgIDAAFINASACIAFBDGpBBBDMgICAACABKAIMIQAgAUEQaiSAgICAACAAQRh0IABBgP4DcUEIdHIgAEEIdkGA/gNxIABBGHZycg8LQoOAgICAggEQtYCAgAAACxDfgICAAAALgQIDAX8BfgJ/I4CAgIAAQcAAayIBJICAgIAAAkACQCAAQSAQ24CAgAAiAhCGgICAAEKAgICAcINCgICAgIAEUg0AIAFBIGpBGGoiAEIANwMAIAFBIGpBEGoiA0IANwMAIAFBIGpBCGoiBEIANwMAIAFCADcDICACEIaAgIAAQoCAgIBwg0KAgICAgARSDQEgAiABQSBqQSAQzICAgAAgAUEYaiAAKQMANwMAIAFBEGogAykDADcDACABQQhqIAQpAwA3AwAgASABKQMgNwMAIAFBIBDegICAACECIAFBwABqJICAgIAAIAIPC0KDgICAgIIBELWAgIAAAAsQ34CAgAAACxoAIACtQiCGQgSEIAGtQiCGQgSEEJSAgIAACwkAENeAgIAAAAtpAQF/I4CAgIAAQRBrIgEkgICAgAACQCAAQv8Bg0LNAFINABCugICAACABQQRqEKuAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCsgICAAAsgABC/gICAACABQRBqJICAgIAAQgIPCwALgAECAX8BfiOAgICAAEEgayIBJICAgIAAIAEgABCmgICAAAJAIAEoAgBBAUYNACABKQMYIQAgASkDECECEK6AgIAAIAEQq4CAgAACQCABKAIAQQFHDQAgASgCBCABKAIIEKyAgIAACyACIAAQvYCAgAAgAUEgaiSAgICAAEICDwsAC4ABAgF/AX4jgICAgABBIGsiASSAgICAACABIAAQpoCAgAACQCABKAIAQQFGDQAgASkDGCEAIAEpAxAhAhCugICAACABEKuAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBCsgICAAAsgAiAAEL6AgIAAIAFBIGokgICAgABCAg8LAAtpAQF/I4CAgIAAQRBrIgEkgICAgAACQCAAQv8Bg0LNAFINABCugICAACABQQRqEKuAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCsgICAAAsgABDAgICAACABQRBqJICAgIAAQgIPCwALCAAQxoCAgAALiwECAX8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQq4CAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMEKyAgIAACwJAAkBBARCjgICAACIBQgIQpICAgABFDQAgAUICEICAgIAAIgFC/wGDQgRRDQEACxDmgICAAAALIABBEGokgICAgAAgAUKEgICAcIMLCQAQ14CAgAAACz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQw4CAgAAgACkDACAAKQMIEKiAgIAAIQEgAEEQaiSAgICAACABCz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQxICAgAAgACkDACAAKQMIEKiAgIAAIQEgAEEQaiSAgICAACABCwgAEMeAgIAACwgAENqAgIAACwgAEK+AgIAAC+IEAQV/I4CAgIAAQdAAayICJICAgIAAIAJBKGogABDtgICAAAJAIAIoAihBAkYNACACQQhqQQhqIAJBKGpBCGoiAygCADYCACACIAIpAig3AwggAkEoaiABEO2AgIAAIAIoAihBAkYNACACQRhqQQhqIAMoAgA2AgAgAiACKQIoNwMYIAJBKGoQq4CAgAACQCACKAIoQQFHDQAgAigCLCACKAIwEKyAgIAACxCugICAAAJAAkACQBCqgICAAA0AEO6AgIAAIgNBgPuAAyADQYD7gANJGyEEIAIgAkEYajYCLCACIAJBCGo2AihBACEDA0AgA0EIRg0DAkAgAkEoaiADaigCACIFKAIAQQFxRQ0AIAUoAggiBiAESw0DIAUoAgQgBksNAwsgA0EEaiEDDAALC0KDgICA0P8AELWAgIAAAAtCg4CAgMD/ABC1gICAAAALAkACQCACKAIIQQFHDQBBASACKAIMIAIoAhAQ74CAgAAMAQtBARCtgICAAEICEI2AgIAAGgsCQAJAIAIoAhhBAUcNAEECIAIoAhwgAigCIBDvgICAAAwBC0ECEK2AgIAAQgIQjYCAgAAaCyACQShqQQhqIAJBCGpBCGooAgA2AgAgAkE8aiACQRhqQQhqKAIANgIAIAIgAikDCDcDKCACIAIpAxg3AjRByITAgABBDxDwgICAABDxgICAACEAIAJBKGoQ8oCAgAAhASACIAJBNGoQ8oCAgAA3A0ggAiABNwNAIABB7ITAgABBAiACQcAAakECELqAgIAAEI6AgIAAGiACQdAAaiSAgICAAEICDwsAC2gBAX8jgICAgABBEGsiAiSAgICAAAJAAkAgAUICUQ0AIAJBBGogARCGgYCAAAJAIAIoAgRFDQAgAEECNgIADAILIAAgAikCCDcCBCAAQQE2AgAMAQsgAEEANgIACyACQRBqJICAgIAACzMBAn4QnYCAgAAhAAJAEJ6AgIAAQiCIIgEgAEIgiCIAVA0AIAGnIACnaw8LENeAgIAAAAtWAgF/AX4jgICAgABBEGsiAySAgICAACAAEK2AgIAAIQQgAyABIAIQh4GAgAACQCADKAIAQQFHDQAACyAEIAMpAwhCAhCBgICAABogA0EQaiSAgICAAAtFAgF/AX4jgICAgABBEGsiAiSAgICAACACIAAgARCFgYCAAAJAIAIoAgBBAUcNAAALIAIpAwghAyACQRBqJICAgIAAIAMLYwMBfwF+AX8jgICAgABBEGsiASSAgICAACABIAA3AwBCAiECQQEhAwJAA0AgA0UNASADQX9qIQMgACECDAALCyABIAI3AwggAUEIakEBEMiAgIAAIQAgAUEQaiSAgICAACAAC0MCAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABD1gICAAAJAIAEoAgBBAUcNAAALIAEpAwghAiABQRBqJICAgIAAIAILxAECAn8BfiOAgICAAEHAAGsiACSAgICAACAAQQhqEKuAgIAAAkAgACgCCEEBRw0AIAAoAgwgACgCEBCsgICAAAsgAEEIahCrgICAACAAQRRqIgFBAhD0gICAACAAQTBqIABBCGoQ9YCAgAACQAJAIAAoAjANACAAKQM4IQIgAEEwaiABEPWAgIAAIAAoAjBBAUcNAQsACyAAIAApAzg3AyggACACNwMgIABBIGpBAhDIgICAACECIABBwABqJICAgIAAIAILdwICfwF+I4CAgIAAQRBrIgIkgICAgABBACEDAkACQCABEK2AgIAAIgRCAhCkgICAAEUNACACQQRqIARCAhCAgICAABCGgYCAAEEBIQMgAigCBEEBRg0BIAAgAikCCDcCBAsgACADNgIAIAJBEGokgICAgAAPCwALMAACQCABKAIAQQFHDQAgACABKAIEIAEoAggQh4GAgAAPCyAAQgA3AwAgAEICNwMIC6oBAQF/I4CAgIAAQSBrIgAkgICAgAAgAEEMahCrgICAAAJAIAAoAgxBAUcNACAAKAIQIAAoAhQQrICAgAALEK6AgIAAAkAQqoCAgABFDQBCg4CAgOD/ABC1gICAAAALQQAQrYCAgABCAUICEIGAgIAAGkH8hMCAAEESEPCAgIAAEPGAgIAAQQRBACAAQRhqQQAQuoCAgAAQjoCAgAAaIABBIGokgICAgABCAgsJABCqgICAAK0LMQACQCAAQv8Bg0IEUg0AIAFC/wGDQgRSDQAgAEIgiKcgAUIgiKcQrICAgABCAg8LAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAELGAgIAAIAApAwAgACkDCBD6gICAACEBIABBEGokgICAgAAgAQsNACABQgIgAKdBAXEbCz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQtICAgAAgACkDACAAKQMIEPqAgIAAIQEgAEEQaiSAgICAACABC30CAX8BfiOAgICAAEEQayIBJICAgIAAAkAgAEL/AYNCzQBSDQAgAUEEahCrgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQrICAgAALELCAgIAAIQIQs4CAgAAgABDWgICAACACIAAQ/YCAgAAgAUEQaiSAgICAAEICDwsAC2ECAX8BfiOAgICAAEEQayICJICAgIAAQZWDwIAAQRUQ8ICAgAAQ8YCAgAAhAyACIAA3AwggAiABNwMAIANBvIPAgABBAiACQQIQuoCAgAAQjoCAgAAaIAJBEGokgICAgAAL3QICAX8CfiOAgICAAEEgayICJICAgIAAAkACQAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgAkEIahCrgICAAAJAIAIoAghBAUcNACACKAIMIAIoAhAQrICAgAALELCAgIAAIQMCQAJAIAFC/////w9WDQAgAkEIahC0gICAACACKQMQIQEgAikDCEGICBCygICAACABIAAQj4CAgABQRQ0DEP+AgIAADAELEO6AgIAAIAFCIIinSQ0DQQEgAEIAEICBgIAAQQEQtoCAgABCACABQoSAgIBwgyIBIAEQkICAgAAaQcyDwIAA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dGFuY2Ugc3RvcmFnZQotIGBwZXJzaXN0ZW50YCAtIFRUTCBjb25maWcgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZQoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnRnJvemVuYCBpZiBjb25maWdzIGFyZSBmcm96ZW4KLSBgSW52YWxpZFR0bENvbmZpZ2AgaWYgdmFsaWRhdGlvbiBmYWlscwAAAAAPc2V0X3R0bF9jb25maWdzAAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAADhUGVybWFuZW50bHkgZnJlZXplcyBUVEwgY29uZmlncywgcHJldmVudGluZyBhbnkgZnV0dXJlIG1vZGlmaWNhdGlvbnMuCgpUaGlzIGlzIGlycmV2ZXJzaWJsZSBhbmQgcHJvdmlkZXMgaW1tdXRhYmlsaXR5IGd1YXJhbnRlZXMgdG8gdXNlcnMuCkVtaXRzIGBUdGxDb25maWdzRnJvemVuYCBldmVudC4KCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0FscmVhZHlGcm96ZW5gIGlmIGFscmVhZHkgZnJvemVuAAAAAAAAEmZyZWV6ZV90dGxfY29uZmlncwAAAAAAAAAAAAAAAAAAAAAAJ1JldHVybnMgd2hldGhlciBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAKVFeHRlbmRzIHRoZSBpbnN0YW5jZSBUVEwuCgojIEFyZ3VtZW50cwoKKiBgdGhyZXNob2xkYCAtIFRoZSB0aHJlc2hvbGQgdG8gZXh0ZW5kIHRoZSBUVEwgKGlmIGN1cnJlbnQgVFRMIGlzIGJlbG93IHRoaXMsIGV4dGVuZCkuCiogYGV4dGVuZF90b2AgLSBUaGUgVFRMIHRvIGV4dGVuZCB0by4AAAAAAAATZXh0ZW5kX2luc3RhbmNlX3R0bAAAAAACAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAlleHRlbmRfdG8AAAAAAAAEAAAAAAAAAAAAAAA+UmV0dXJucyB0aGUgY3VycmVudCBvd25lciBhZGRyZXNzLCBvciBOb25lIGlmIG5vIG93bmVyIGlzIHNldC4AAAAAAAVvd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAAAWVJldHVybnMgdGhlIHBlbmRpbmcgb3duZXIgYWRkcmVzcyBmb3IgMi1zdGVwIHRyYW5zZmVyLCBvciBOb25lIGlmIG5vIHRyYW5zZmVyIGlzIHBlbmRpbmcuAAAAAAAADXBlbmRpbmdfb3duZXIAAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAStUcmFuc2ZlcnMgb3duZXJzaGlwIGltbWVkaWF0ZWx5IHRvIGEgbmV3IGFkZHJlc3MuCgpVc2Ugd2l0aCBjYXV0aW9uIC0gaWYgeW91IHRyYW5zZmVyIHRvIGEgd3JvbmcgYWRkcmVzcywgb3duZXJzaGlwIGlzIGxvc3QgZm9yZXZlci4KQ29uc2lkZXIgdXNpbmcgYHByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyYCBpbnN0ZWFkLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgVHJhbnNmZXJJblByb2dyZXNzYCBpZiBhIDItc3RlcCB0cmFuc2ZlciBpcyBpbiBwcm9ncmVzcwAAAAASdHJhbnNmZXJfb3duZXJzaGlwAAAAAAABAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAJcUHJvcG9zZXMgYW4gb3duZXJzaGlwIHRyYW5zZmVyIHRvIGEgbmV3IGFkZHJlc3MuCgpUaGUgbmV3IG93bmVyIG11c3QgY2FsbCBgYWNjZXB0X293bmVyc2hpcCgpYCB3aXRoaW4gYHR0bGAgbGVkZ2Vycwp0byBjb21wbGV0ZSB0aGUgdHJhbnNmZXIuIFRoZSBwZW5kaW5nIHRyYW5zZmVyIHdpbGwgYXV0b21hdGljYWxseSBleHBpcmUgYWZ0ZXIuCgojIEFyZ3VtZW50cwotIGBuZXdfb3duZXJgIC0gVGhlIHByb3Bvc2VkIG5ldyBvd25lcgotIGB0dGxgIC0gTnVtYmVyIG9mIGxlZGdlcnMgdGhlIG5ldyBvd25lciBoYXMgdG8gYWNjZXB0LgpVc2UgYDBgIHRvIGNhbmNlbCBhIHBlbmRpbmcgdHJhbnNmZXIgKG5ld19vd25lciBtdXN0IG1hdGNoIHBlbmRpbmcpLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIHdoZW4gY2FuY2VsbGluZyBhbmQgbm8gcGVuZGluZyB0cmFuc2ZlciBleGlzdHMKLSBgSW52YWxpZFR0bGAgaWYgdHRsIGV4Y2VlZHMgbWF4IFRUTAotIGBJbnZhbGlkUGVuZGluZ093bmVyYCB3aGVuIGNhbmNlbGxpbmcgd2l0aCB3cm9uZyBuZXdfb3duZXIgYWRkcmVzcwAAABpwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcgAAAAAAAgAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAAAAALlBY2NlcHRzIGEgcGVuZGluZyAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyLgoKTXVzdCBiZSBjYWxsZWQgYnkgdGhlIHBlbmRpbmcgb3duZXIgYmVmb3JlIHRoZSBUVEwgZXhwaXJlcy4KCiMgUGFuaWNzCi0gYE5vUGVuZGluZ1RyYW5zZmVyYCBpZiB0aGVyZSBpcyBubyBwZW5kaW5nIHRyYW5zZmVyIChvciBpdCBleHBpcmVkKQAAAAAAABBhY2NlcHRfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAApFBlcm1hbmVudGx5IHJlbm91bmNlcyBvd25lcnNoaXAuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzIChjYW5jZWwgaXQgZmlyc3QpAAAAEnJlbm91bmNlX293bmVyc2hpcAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAANRW5kcG9pbnRFcnJvcgAAAAAAABkAAAAAAAAAEUFscmVhZHlSZWdpc3RlcmVkAAAAAAAAAQAAAAAAAAANQ29tcG9zZUV4aXN0cwAAAAAAAAIAAAAAAAAAD0NvbXBvc2VOb3RGb3VuZAAAAAADAAAAAAAAABxEZWZhdWx0UmVjZWl2ZUxpYlVuYXZhaWxhYmxlAAAABAAAAAAAAAAZRGVmYXVsdFNlbmRMaWJVbmF2YWlsYWJsZQAAAAAAAAUAAAAAAAAAFUluc3VmZmljaWVudE5hdGl2ZUZlZQAAAAAAAAYAAAAAAAAAEkluc3VmZmljaWVudFpyb0ZlZQAAAAAABwAAAAAAAAAQSW52YWxpZEZlZUFtb3VudAAAAAgAAAAAAAAADUludmFsaWRFeHBpcnkAAAAAAAAJAAAAAAAAAAxJbnZhbGlkSW5kZXgAAAAKAAAAAAAAAAxJbnZhbGlkTm9uY2UAAAALAAAAAAAAABJJbnZhbGlkUGF5bG9hZEhhc2gAAAAAAAwAAAAAAAAAFUludmFsaWRSZWNlaXZlTGlicmFyeQAAAAAAAA0AAAAAAAAAEU9ubHlOb25EZWZhdWx0TGliAAAAAAAADgAAAAAAAAAOT25seVJlY2VpdmVMaWIAAAAAAA8AAAAAAAAAEU9ubHlSZWdpc3RlcmVkTGliAAAAAAAAEAAAAAAAAAALT25seVNlbmRMaWIAAAAAEQAAAAAAAAAUUGF0aE5vdEluaXRpYWxpemFibGUAAAASAAAAAAAAABFQYXRoTm90VmVyaWZpYWJsZQAAAAAAABMAAAAAAAAAE1BheWxvYWRIYXNoTm90Rm91bmQAAAAAFAAAAAAAAAAJU2FtZVZhbHVlAAAAAAAAFQAAAAAAAAAMVW5hdXRob3JpemVkAAAAFgAAAAAAAAAOVW5zdXBwb3J0ZWRFaWQAAAAAABcAAAAAAAAAClplcm9acm9GZWUAAAAAABgAAAAAAAAADlpyb1VuYXZhaWxhYmxlAAAAAAAZAAAABQAAAAAAAAAAAAAAClBhY2tldFNlbnQAAAAAAAEAAAALcGFja2V0X3NlbnQAAAAAAwAA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AAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAACZTb3VyY2UgZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAAB3NyY19laWQAAAAABAAAAAEAAAAoRmVlIHN0cnVjdHVyZSBmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnaW5nLgAAAAAAAAAMTWVzc2FnaW5nRmVlAAAAAgAAAB9GZWUgcGFpZCBpbiBuYXRpdmUgdG9rZW4gKFhMTSkuAAAAAApuYXRpdmVfZmVlAAAAAAALAAAAKEZlZSBwYWlkIGluIFpSTyB0b2tlbiAoTGF5ZXJaZXJvIHRva2VuKS4AAAAHenJvX2ZlZQAAAAALAAAAAQAAAEJSZWNlaXB0IHJldHVybmVkIGFmdGVyIHN1Y2Nlc3NmdWxseSBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAQTWVzc2FnaW5nUmVjZWlwdAAAAAMAAAApVGhlIGZlZXMgY2hhcmdlZCBmb3Igc2VuZGluZyB0aGUgbWVzc2FnZS4AAAAAAAADZmVlAAAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAK0dsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgbWVzc2FnZS4AAAAABGd1aWQAAAPuAAAAIAAAACRUaGUgb3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAAgAAADhUeXBlIG9mIG1lc3NhZ2UgbGlicmFyeSBpbmRpY2F0aW5nIHN1cHBvcnRlZCBvcGVyYXRpb25zLgAAAAAAAAAOTWVzc2FnZUxpYlR5cGUAAAAAAAMAAAAAAAAAH1N1cHBvcnRzIG9ubHkgc2VuZGluZyBtZXNzYWdlcy4AAAAABFNlbmQAAAAAAAAAIVN1cHBvcnRzIG9ubHkgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAAdSZWNlaXZlAAAAAAAAAAAtU3VwcG9ydHMgYm90aCBzZW5kaW5nIGFuZCByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAADlNlbmRBbmRSZWNlaXZlAAAAAAABAAAAt1ZlcnNpb24gaW5mb3JtYXRpb24gZm9yIGEgbWVzc2FnZSBsaWJyYXJ5LgoKTm90ZTogYG1pbm9yYCBhbmQgYGVuZHBvaW50X3ZlcnNpb25gIHVzZSBgdTMyYCBpbnN0ZWFkIG9mIGB1OGAgYmVjYXVzZSBTdGVsbGFyIGRvZXMgbm90CnN1cHBvcnQgYHU4YCB0eXBlcyBpbiBjb250cmFjdCBpbnRlcmZhY2UgZnVuY3Rpb25zLgAAAAAAAAAAEU1lc3NhZ2VMaWJWZXJzaW9uAAAAAAAAAwAAADNFbmRwb2ludCB2ZXJzaW9uIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAAEGVuZHBvaW50X3ZlcnNpb24AAAAEAAAAFU1ham9yIHZlcnNpb24gbnVtYmVyLgAAAAAAAAVtYWpvcgAAAAAAAAYAAAA3TWlub3IgdmVyc2lvbiBudW1iZXIgKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAFbWlub3IAAAAAAAAEAAAAAQAAADZUaW1lb3V0IGNvbmZpZ3VyYXRpb24gZm9yIHJlY2VpdmUgbGlicmFyeSB0cmFuc2l0aW9ucy4AAAAAAAAAAAAHVGltZW91dAAAAAACAAAAKFVuaXggdGltZXN0YW1wIHdoZW4gdGhlIHRpbWVvdXQgZXhwaXJlcy4AAAAGZXhwaXJ5AAAAAAAGAAAAKVRoZSBuZXcgbGlicmFyeSBhZGRyZXNzIHRvIHRyYW5zaXRpb24gdG8uAAAAAAAAA2xpYgAAAAATAAAAAQAAADVQYXJhbWV0ZXJzIGZvciBzZXR0aW5nIG1lc3NhZ2UgbGlicmFyeSBjb25maWd1cmF0aW9uLgAAAAAAAAAAAAAOU2V0Q29uZmlnUGFyYW0AAAAAAAMAAAAfWERSLWVuY29kZWQgY29uZmlndXJhdGlvbiBkYXRhLgAAAAAGY29uZmlnAAAAAAAOAAAAMFRoZSB0eXBlIG9mIGNvbmZpZ3VyYXRpb24gKGUuZy4sIGV4ZWN1dG9yLCBVTE4pLgAAAAtjb25maWdfdHlwZQAAAAAEAAAAJ1RoZSBlbmRwb2ludCBJRCB0aGlzIGNvbmZpZyBhcHBsaWVzIHRvLgAAAAADZWlkAAAAAAQAAAABAAAAMVJlc29sdmVkIGxpYnJhcnkgaW5mb3JtYXRpb24gd2l0aCBkZWZhdWx0IHN0YXR1cy4AAAAAAAAAAAAAD1Jlc29sdmVkTGlicmFyeQAAAAACAAAARFdoZXRoZXIgdGhpcyBpcyB0aGUgZGVmYXVsdCBsaWJyYXJ5ICh0cnVlKSBvciBPQXBwLXNwZWNpZmljIChmYWxzZSkuAAAACmlzX2RlZmF1bHQAAAAAAAEAAAAdVGhlIHJlc29sdmVkIGxpYnJhcnkgYWRkcmVzcy4AAAAAAAADbGliAAAAABMAAAABAAAASE91dGJvdW5kIHBhY2tldCBjb250YWluaW5nIGFsbCBpbmZvcm1hdGlvbiBmb3IgY3Jvc3MtY2hhaW4gdHJhbnNtaXNzaW9uLgAAAAAAAAAOT3V0Ym91bmRQYWNrZXQAAAAAAAcAAAAYRGVzdGluYXRpb24gZW5kcG9pbnQgSUQuAAAAB2RzdF9laWQAAAAABAAAACxHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBtZXNzYWdlLgAAAARndWlkAAAD7gAAACAAAAAUVGhlIG1lc3NhZ2UgcGF5bG9hZC4AAAAHbWVzc2FnZQAAAAAOAAAAIE91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAADFSZWNlaXZlciBhZGRyZXNzIG9uIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAAfU2VuZGVyIGFkZHJlc3Mgb24gc291cmNlIGNoYWluLgAAAAAGc2VuZGVyAAAAAAATAAAAE1NvdXJjZSBlbmRwb2ludCBJRC4AAAAAB3NyY19laWQAAAAABAAAAAEAAAArQSBmZWUgcmVjaXBpZW50IHdpdGggdGhlIGFtb3VudCB0byBiZSBwYWlkLgAAAAAAAAAADEZlZVJlY2lwaWVudAAAAAIAAAAVQW1vdW50IG9mIGZlZSB0byBwYXkuAAAAAAAABmFtb3VudAAAAAAACwAAAB9UaGUgYWRkcmVzcyB0byBzZW5kIHRoZSBmZWUgdG8uAAAAAAJ0bwAAAAAAEwAAAAEAAAA8UmVzdWx0IG9mIHNlbmQgb3BlcmF0aW9uIGNvbnRhaW5pbmcgZmVlcyBhbmQgZW5jb2RlZCBwYWNrZXQuAAAAAAAAAA1GZWVzQW5kUGFja2V0AAAAAAAAAwAAACpUaGUgZW5jb2RlZCBwYWNrZXQgcmVhZHkgZm9yIHRyYW5zbWlzc2lvbi4AAAAAAA5lbmNvZGVkX3BhY2tldAAAAAAADgAAAD9MaXN0IG9mIG5hdGl2ZSB0b2tlbiBmZWUgcmVjaXBpZW50cyAoZXhlY3V0b3IsIERWTnMsIHRyZWFzdXJ5KS4AAAAAFW5hdGl2ZV9mZWVfcmVjaXBpZW50cwAAAAAAA+oAAAfQAAAADEZlZVJlY2lwaWVudAAAACxMaXN0IG9mIFpSTyB0b2tlbiBmZWUgcmVjaXBpZW50cyAodHJlYXN1cnkpLgAAABJ6cm9fZmVlX3JlY2lwaWVudHMAAAAAA+oAAAfQAAAADEZlZVJlY2lwaWVudAAAAAQAAAAdUGFja2V0Q29kZWNWMUVycm9yOiAxMTAwLTExMDkAAAAAAAAAAAAAElBhY2tldENvZGVjVjFFcnJvcgAAAAAAAgAAAAAAAAATSW52YWxpZFBhY2tldEhlYWRlcgAAAARMAAAAAAAAABRJbnZhbGlkUGFja2V0VmVyc2lvbgAABE0AAAAEAAAAHVdvcmtlck9wdGlvbnNFcnJvcjogMTExMC0xMTE5AAAAAAAAAAAAABJXb3JrZXJPcHRpb25zRXJyb3IAAAAAAAkAAAAAAAAAEkludmFsaWRCeXRlc0xlbmd0aAAAAAAEVgAAAAAAAAAZSW52YWxpZExlZ2FjeU9wdGlvbnNUeXBlMQAAAAAABFcAAAAAAAAAGUludmFsaWRMZWdhY3lPcHRpb25zVHlwZTIAAAAAAARYAAAAAAAAABFJbnZhbGlkT3B0aW9uVHlwZQAAAAAABFkAAAAAAAAADkludmFsaWRPcHRpb25zAAAAAARaAAAAAAAAAA9JbnZhbGlkV29ya2VySWQAAAAEWwAAAAAAAAAdTGVnYWN5T3B0aW9uc1R5cGUxR2FzT3ZlcmZsb3cAAAAAAARcAAAAAAAAACBMZWdhY3lPcHRpb25zVHlwZTJBbW91bnRPdmVyZmxvdwAABF0AAAAAAAAAHUxlZ2FjeU9wdGlvbnNUeXBlMkdhc092ZXJmbG93AAAAAAAEXgAAAAQAAAAcQnVmZmVyUmVhZGVyRXJyb3I6IDEwMDAtMTAwOQAAAAAAAAARQnVmZmVyUmVhZGVyRXJyb3IAAAAAAAACAAAAAAAAAA1JbnZhbGlkTGVuZ3RoAAAAAAAD6AAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD6QAAAAQAAAAcQnVmZmVyV3JpdGVyRXJyb3I6IDEwMTAtMTAxOQAAAAAAAAARQnVmZmVyV3JpdGVyRXJyb3IAAAAAAAABAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPyAAAABAAAAB9UdGxDb25maWd1cmFibGVFcnJvcjogMTAyMC0xMDI5AAAAAAAAAAAUVHRsQ29uZmlndXJhYmxlRXJyb3IAAAADAAAAAAAAABBJbnZhbGlkVHRsQ29uZmlnAAAD/AAAAAAAAAAPVHRsQ29uZmlnRnJvemVuAAAAA/0AAAAAAAAAFlR0bENvbmZpZ0FscmVhZHlGcm96ZW4AAAAAA/4AAAAEAAAAF093bmFibGVFcnJvcjogMTAzMC0xMDM5AAAAAAAAAAAMT3duYWJsZUVycm9yAAAABgAAAAAAAAATSW52YWxpZFBlbmRpbmdPd25lcgAAAAQGAAAAAAAAAApJbnZhbGlkVHRsAAAAAAQHAAAAAAAAABFOb1BlbmRpbmdUcmFuc2ZlcgAAAAAABAgAAAAAAAAAD093bmVyQWxyZWFkeVNldAAAAAQJAAAAAAAAAAtPd25lck5vdFNldAAAAAQKAAAAAAAAABJUcmFuc2ZlckluUHJvZ3Jlc3MAAAAABAsAAAAEAAAAGEJ5dGVzRXh0RXJyb3I6IDEwNDAtMTA0OQAAAAAAAAANQnl0ZXNFeHRFcnJvcgAAAAAAAAEAAAAAAAAADkxlbmd0aE1pc21hdGNoAAAAAAQQAAAABAAAABtVcGdyYWRlYWJsZUVycm9yOiAxMDUwLTEwNTkAAAAAAAAAABBVcGdyYWRlYWJsZUVycm9yAAAAAQAAAAAAAAATTWlncmF0aW9uTm90QWxsb3dlZAAAAAQaAAAABAAAABhNdWx0aXNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpc2lnRXJyb3IAAAAAAAAIAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAADUludmFsaWRTaWduZXIAAAAAAAQlAAAAAAAAAA5TaWduYXR1cmVFcnJvcgAAAAAEJgAAAAAAAAATU2lnbmVyQWxyZWFkeUV4aXN0cwAAAAQnAAAAAAAAAA5TaWduZXJOb3RGb3VuZAAAAAAEKAAAAAAAAAAdVG90YWxTaWduZXJzTGVzc1RoYW5UaHJlc2hvbGQAAAAAAAQpAAAAAAAAAA9VbnNvcnRlZFNpZ25lcnMAAAAEKgAAAAAAAAANWmVyb1RocmVzaG9sZAAAAAAABCsAAAAFAAAAMEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHNpZ25lciBpcyBhZGRlZCBvciByZW1vdmVkLgAAAAAAAAAJU2lnbmVyU2V0AAAAAAAAAQAAAApzaWduZXJfc2V0AAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAQAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAANkV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2lnbmF0dXJlIHRocmVzaG9sZCBpcyBjaGFuZ2VkLgAAAAAAAAAAAAxUaHJlc2hvbGRTZXQAAAABAAAADXRocmVzaG9sZF9zZXQAAAAAAAABAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAPTXVsdGlzaWdTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAdTaWduZXJzAAAAAAAAAAAAAAAACVRocmVzaG9sZAAAAAAAAAUAAABXRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyB0cmFuc2ZlcnJlZCAoYm90aCBzaW5nbGUtc3RlcCBhbmQgdHdvLXN0ZXAgY29tcGxldGlvbikuAAAAAAAAAAAUT3duZXJzaGlwVHJhbnNmZXJyZWQAAAABAAAAFW93bmVyc2hpcF90cmFuc2ZlcnJlZAAAAAAAAAIAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAIAAAAFAAAAO0V2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgcHJvcG9zZWQuAAAAAAAAAAAVT3duZXJzaGlwVHJhbnNmZXJyaW5nAAAAAAAAAQAAABZvd25lcnNoaXBfdHJhbnNmZXJyaW5nAAAAAAADAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgcmVub3VuY2VkLgAAAAAAAAAAABJPd25lcnNoaXBSZW5vdW5jZWQAAAAAAAEAAAATb3duZXJzaGlwX3Jlbm91bmNlZAAAAAABAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAOT3duYWJsZVN0b3JhZ2UAAAAAAAIAAAAAAAAAAAAAAAVPd25lcgAAAAAAAAAAAAAAAAAADFBlbmRpbmdPd25lcgAAAAEAAABJVFRMIGNvbmZpZ3VyYXRpb246IHRocmVzaG9sZCAod2hlbiB0byBleHRlbmQpIGFuZCBleHRlbmRfdG8gKHRhcmdldCBUVEwpLgAAAAAAAAAAAAAJVHRsQ29uZmlnAAAAAAAAAgAAAChUYXJnZXQgVFRMIGFmdGVyIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAACWV4dGVuZF90bwAAAAAAAAQAAAAzVFRMIHRocmVzaG9sZCB0aGF0IHRyaWdnZXJzIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAABQAAACdFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIHNldC4AAAAAAAAAAA1UdGxDb25maWdzU2V0AAAAAAAAAQAAAA90dGxfY29uZmlnc19zZXQAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAAAAAAAAAEFR0bENvbmZpZ3NGcm96ZW4AAAABAAAAEnR0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAQVHRsQ29uZmlnU3RvcmFnZQAAAAMAAAAAAAAAAAAAAAZGcm96ZW4AAAAAAAAAAAAAAAAACEluc3RhbmNlAAAAAAAAAAAAAAAKUGVyc2lzdGVudAAAAAAAAgAAAAAAAAAAAAAAElVwZ3JhZGVhYmxlU3RvcmFnZQAAAAAAAQAAAAAAAAAAAAAACU1pZ3JhdGluZwAAAAAeEWNvbnRyYWN0ZW52bWV0YXYwAAAAAAAAABcAAAAAAG8OY29udHJhY3RtZXRhdjAAAAAAAAAABXJzdmVyAAAAAAAABjEuOTAuMAAAAAAAAAAAAAhyc3Nka3ZlcgAAAC8yMy40LjAjNjczZDZjNGYyMzY4ZDI4MmQyNWRhMjliZGE1NWMyMWI4YmU2OWNhNgA=";
11
+ export declare const WASM_BASE64 = "AGFzbQEAAAABjgEZYAJ+fgF+YAN+fn4BfmABfgF+YAABfmAEfn5+fgF+YAJ/fwBgAX8BfmACfn4Bf2ACf34AYAN/fn4AYAABf2ABfwBgAABgAn5/AGABfgBgBH9/f38BfmADf39/AGACfn4AYAJ/fwF+YAR+fn9/AX5gAn9/AX9gA35/fwBgAn9+AX9gAX8Bf2AFfn9/f38AAs0BIgFsATEAAAFsAV8AAQFhATAAAgF2AV8AAwF2ATYAAAFiATQAAwFiATgAAgFiAV8AAgFiAWYAAQFiAWUAAAFkAV8AAQFiATAAAgF4ATcAAwF4ATAAAAFsATcABAF4ATEAAAFsATIAAAFpAV8AAgFpATAAAgFiATEABAFiATMAAAFpATgAAgFpATcAAgFpATYAAAFiAWoAAAFiATIABAFtATkAAQFtAWEABAF2AWcAAAF4ATMAAwF4ATgAAwFsATAAAAFsATgAAAF4ATUAAgNpaAUGBwUICAkACgsFBgwDAwsNDAsOBgsBCQ8QCBERDg4BCAsLAQMDEhMUCBUIFgECAwADCAEFBQ4MAAgDEhcGEgwCAgICAwMMAwMDAwMDAAMCEQAMCgkSAgMDAAAIBgMFBQMDDBgQCBAQBQMBABEGIQR/AUGAgMAAC38AQYSDwAALfwBBpoXAAAt/AEGwhcAACwenBCMGbWVtb3J5AgAFcXVvdGUAQQRzZW5kAEUKZ2V0X2NvbmZpZwBPEGlzX3N1cHBvcnRlZF9laWQAUBBtZXNzYWdlX2xpYl90eXBlAFEKc2V0X2NvbmZpZwBSB3ZlcnNpb24AUw1fX2NvbnN0cnVjdG9yAFUPdmFsaWRhdGVfcGFja2V0AFoRc2V0X2ZlZV9yZWNpcGllbnQAYg5zZXRfbmF0aXZlX2ZlZQBjC3NldF96cm9fZmVlAGQWc2V0X3doaXRlbGlzdGVkX2NhbGxlcgBlCGVuZHBvaW50AGYJbG9jYWxfZWlkAGcKbmF0aXZlX2ZlZQBpB3pyb19mZWUAag1mZWVfcmVjaXBpZW50AGsSd2hpdGVsaXN0ZWRfY2FsbGVyAGwKYXV0aG9yaXplcgBtBW93bmVyAG4NcGVuZGluZ19vd25lcgBwEnRyYW5zZmVyX293bmVyc2hpcABxGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAHMQYWNjZXB0X293bmVyc2hpcAB5EnJlbm91bmNlX293bmVyc2hpcAB6E2V4dGVuZF9pbnN0YW5jZV90dGwAew9zZXRfdHRsX2NvbmZpZ3MAfAt0dGxfY29uZmlncwB/EmZyZWV6ZV90dGxfY29uZmlncwCCARVpc190dGxfY29uZmlnc19mcm96ZW4AgwEBXwMBCl9fZGF0YV9lbmQDAgtfX2hlYXBfYmFzZQMDCtBbaE0BAn5CACECAkACQCABEKOAgIAAIgNCAhCkgICAAEUNACADQgIQgICAgAAiAkL/AYNCzQBSDQEgACACNwMIQgEhAgsgACACNwMADwsAC8ACAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQAJAAkACQCAAQf8BcQ4GAAECAwQFAAsgAUGOgMCAAEEIELuAgIAAIAEoAgANBiABIAEpAwgQvICAgAAMBQsgAUGWgMCAAEEIELuAgIAAIAEoAgANBSABIAEpAwgQvICAgAAMBAsgAUGegMCAAEEJELuAgIAAIAEoAgANBCABIAEpAwgQvICAgAAMAwsgAUGngMCAAEEGELuAgIAAIAEoAgANAyABIAEpAwgQvICAgAAMAgsgAUGtgMCAAEEMELuAgIAAIAEoAgANAiABIAEpAwgQvICAgAAMAQsgAUG5gMCAAEERELuAgIAAIAEoAgANASABIAEpAwgQvICAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgsPACAAIAEQn4CAgABCAVELjQECAX8BfiOAgICAAEEgayICJICAgIAAAkACQAJAIAEQo4CAgAAiA0ICEKSAgIAADQBCACEDDAELIAIgA0ICEICAgIAAEKaAgIAAIAIoAgBBAUYNASACKQMQIQMgACACKQMYNwMYIAAgAzcDEEIBIQMLIAAgAzcDACAAQgA3AwggAkEgaiSAgICAAA8LAAt9AgF/AX4CQAJAAkACQCABp0H/AXEiAkHFAEYNACACQQtHDQIgACABQj+HNwMYIAAgAUIIhzcDEAwBCyABEJWAgIAAIQMgARCWgICAACEBIAAgAzcDGCAAIAE3AxALQgAhAQwBCyAAQoOQgICAATcDCEIBIQELIAAgATcDAAsVACAAEKOAgIAAIAFCAhCBgICAABoLHQAgABCjgICAACABIAIQqYCAgABCAhCBgICAABoLQwEBfyOAgICAAEEQayICJICAgIAAIAIgACABELmAgIAAAkAgAigCAEEBRw0AAAsgAikDCCEBIAJBEGokgICAgAAgAQuLAQICfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahCrgICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQrICAgAALQQAhAQJAQQAQrYCAgAAiAkICEKSAgIAARQ0AQQEhAQJAAkAgAkICEICAgIAAp0H/AXEOAgECAAsAC0EAIQELIABBEGokgICAgAAgAQsMACAAQQEQgIGAgAALGwAgAK1CIIZCBIQgAa1CIIZCBIQQoICAgAAaC8IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQCAAQf8BcQ4DAAECAAsgAUGOhcCAAEEGELuAgIAAIAEoAgANAyABIAEpAwgQvICAgAAMAgsgAUGUhcCAAEEIELuAgIAAIAEoAgANAiABIAEpAwgQvICAgAAMAQsgAUGchcCAAEEKELuAgIAAIAEoAgANASABIAEpAwgQvICAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgsPABCvgICAABCCgICAABoLZgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCrgICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQrICAgAALIAAQsYCAgAAgACkDCCEBIAApAwBBiggQsoCAgAAgAEEQaiSAgICAACABC0oCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQsYCAgAAgACkDCCEBIAApAwBBiggQsoCAgAAgARCCgICAABogAEEQaiSAgICAACABC1ABAX8jgICAgABBEGsiASSAgICAACABQQRqEKuAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCsgICAAAsgABC3gICAACABQRBqJICAgIAACykAAkAgAKdBAXFFDQAPCyABQfp3aq1CIIZCg4CAgOCAAXwQtYCAgAAAC0IBAX8jgICAgABBEGsiACSAgICAACAAELSAgIAAAkAgACkDAFANAEKDgICAsIEBELWAgIAAAAsgAEEQaiSAgICAAAuTAQIBfwJ+I4CAgIAAQRBrIgEkgICAgAAgAUEEahCrgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQrICAgAALQgAhAgJAAkBBARC2gICAACIDQgAQpICAgABFDQAgA0IAEICAgIAAIgJC/wGDQs0AUg0BIAAgAjcDCEIBIQILIAAgAjcDACABQRBqJICAgIAADwsACwsAIAAQoYCAgAAaC5IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAIABBAXFFDQAgAUGhhMCAAEEMELuAgIAAIAEoAgANAiABIAEpAwgQvICAgAAMAQsgAUGchMCAAEEFELuAgIAAIAEoAgANASABIAEpAwgQvICAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgtNAQJ+QgAhAQJAAkBBABC2gICAACICQgIQpICAgABFDQAgAkICEICAgIAAIgFC/wGDQs0AUg0BIAAgATcDCEIBIQELIAAgATcDAA8LAAtoAQF/I4CAgIAAQSBrIgMkgICAgAAgA0EQaiAAIAEQuYCAgAACQCADKAIQQQFHDQAACyADKQMYIQEgAyACNwMIIAMgATcDAEG0gsCAAEECIANBAhC6gICAACEBIANBIGokgICAgAAgAQtbAAJAAkAgAUKAgICAgICAwAB8Qv//////////AFYNACABIAGFIAIgAUI/h4WEQgBSDQAgAUIIhkILhCEBDAELIAIgARCXgICAACEBCyAAQgA3AwAgACABNwMICy4AAkAgASADRg0AAAsgAK1CIIZCBIQgAq1CIIZCBIQgAa1CIIZCBIQQmoCAgAALUQIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABIAIQhoGAgABCASEEAkAgAygCAA0AIAAgAykDCDcDCEIAIQQLIAAgBDcDACADQRBqJICAgIAAC0QBAX8jgICAgABBEGsiAiSAgICAACACIAE3AwggAkEIakEBEMiAgIAAIQEgAEIANwMAIAAgATcDCCACQRBqJICAgIAACw4AQQIgACABEKiAgIAACw4AQQMgACABEKiAgIAACwwAQQQgABCngICAAAsMAEEFIAAQp4CAgAALpgICAn8BfiOAgICAAEHQAGsiAySAgICAACADIAAQwoCAgAACQCADKAIAQQFGDQAgAUL/AYNCyABSDQBBASACp0H/AXEiBEEAR0EBdCAEQQFGGyIEQQJGDQAgAxCrgICAAAJAIAMoAgBBAUcNACADKAIEIAMoAggQrICAgAALIAMQw4CAgAAgAykDCCECIAMpAwAhBUIAIQBCACEBAkAgBEEBcUUNACADEMSAgIAAIAMpAwghASADKQMAIQALIAMgBSACELmAgIAAIAMoAgANACADKQMIIQIgAyAAIAEQuYCAgAAgAygCAEEBRg0AIAMgAykDCDcDSCADIAI3A0BBrIHAgABBAiADQcAAakECELqAgIAAIQAgA0HQAGokgICAgAAgAA8LAAvsAgICfwZ+I4CAgIAAQdAAayICJICAgIAAQQAhAwJAA0AgA0E4Rg0BIAJBCGogA2pCAjcDACADQQhqIQMMAAsLQgEhBAJAIAFC/wGDQswAUg0AIAFB9IHAgABBByACQQhqQQcQhYGAgAAgAikDCCIBQv8Bg0IEUg0AIAJBwABqIAIpAxAQ24CAgAAgAigCQA0AIAIpAxgiBUL/AYNCyABSDQAgAikDSCEGAkACQCACKQMgIgenQf8BcSIDQcAARg0AIANBBkcNAiAHQgiIIQcMAQsgBxCSgICAACEHCyACQcAAaiACKQMoENuAgIAAIAIoAkANACACKQMwIghC/wGDQs0AUg0AIAIpAzgiCUL/AYNCBFINACACKQNIIQQgACABQiCIpzYCNCAAIAU3AyggACAGNwMgIAAgBDcDGCAAIAg3AxAgACAHNwMIIAAgCUIgiD4CMEIAIQQLIAAgBDcDACACQdAAaiSAgICAAAt9AgF/AX4jgICAgABBIGsiASSAgICAACABEKuAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBCsgICAAAsgAUECEKWAgIAAAkAgASgCAEEBcQ0AEOiAgIAAAAsgASkDGCECIAAgASkDEDcDACAAIAI3AwggAUEgaiSAgICAAAt9AgF/AX4jgICAgABBIGsiASSAgICAACABEKuAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBCsgICAAAsgAUEDEKWAgIAAAkAgASgCAEEBcQ0AEOiAgIAAAAsgASkDGCECIAAgASkDEDcDACAAIAI3AwggAUEgaiSAgICAAAvWBwQFfwR+An8BfiOAgICAAEHAAGsiAySAgICAACADIAAQwoCAgAACQCADKAIAQQFGDQAgAUL/AYNCyABSDQBBASACp0H/AXEiBEEAR0EBdCAEQQFGGyIFQQJGDQAgAygCNCEGIAMoAjAhByADKQMoIQggAykDICEJIAMpAxghCiADKQMQIQsgAykDCCEBIAMQq4CAgAACQCADKAIAQQFHDQAgAygCBCADKAIIEKyAgIAACyADQSBqIQwQxoCAgAAQgoCAgAAaEMeAgIAAIQAgAxDDgICAACADIAA3AxAgAyEEQgIhAEEBIQ0CQANAIA1BAXFFDQFBACENIAQpAwAgBCkDCCAEQRBqKQMAELiAgIAAIQAgDCEEDAALCyADIAA3AzggA0E4akEBEMiAgIAAIQ4Qg4CAgAAhAgJAIAVBAXFFDQAQx4CAgAAhACADEMSAgIAAIAIgAykDACADKQMIIAAQuICAgAAQhICAgAAhAgsQhYCAgAAhACADQQE6AAAgACAAEIaAgIAAQoCAgIBwg0IEhCADQQEQyYCAgAAhACADIAFCOIYgAUKA/gODQiiGhCABQoCA/AeDQhiGIAFCgICA+A+DQgiGhIQgAUIIiEKAgID4D4MgAUIYiEKAgPwHg4QgAUIoiEKA/gODIAFCOIiEhIQ3AwAgAyAAIAAQhoCAgABCgICAgHCDQgSEIANBCBDJgICAADcDOCADQThqIAcQyoCAgAAhDSALEIeAgIAAIQAgAyAAQoSAgIDAACAAEIaAgIAAQoCAgIBwg0IEhBCIgICAACIAQgRChICAgMAAEIiAgIAAEMuAgIAAIAMoAgBBAUYNACADKQMIIQEgA0EANgIAIAEgA0EEEMyAgIAAAkAgAygCACIEQf///wdxDQACQAJAAkAgBEEYdg4CAAEDCyADIABChICAgMAAQoSAgICAARCIgICAABDLgICAACADKAIAQQFGDQMgAykDCCEBIANBADYCACABIANBBBDMgICAACADKAIADQIgAyAAQoSAgICAAUKEgICAgAUQiICAgAAQzYCAgAAgAygCAEEBRw0BDAMLIAMgAEKEgICAwABChICAgMAEEIiAgIAAEM2AgIAAIAMoAgBBAUYNAgsgAyANIAMpAwgQzoCAgAAgBhDKgICAACAKEM6AgIAAKQMANwMAIAMgCRDOgICAACkDACAIEImAgIAAIQAgAyACNwMQIAMgDjcDCCADIAA3AwBB7ILAgABBAyADQQMQuoCAgAAhACADQcAAaiSAgICAACAADwtCg4CAgKD+ABC1gICAAAALAAtrAgF/AX4jgICAgABBEGsiACSAgICAACAAEKuAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBCsgICAAAsgAEEAEKKAgIAAAkAgACgCAA0AEOiAgIAAAAsgACkDCCEBIABBEGokgICAgAAgAQtrAgF/AX4jgICAgABBEGsiACSAgICAACAAEKuAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBCsgICAAAsgAEEEEKKAgIAAAkAgACgCAA0AEOiAgIAAAAsgACkDCCEBIABBEGokgICAgAAgAQsaACAArUIghkIEhCABrUIghkIEhBCcgICAAAseACAAIAEgAq1CIIZCBIQgA61CIIZCBIQQmYCAgAALdwIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAiABQRh0IAFBgP4DcUEIdHIgAUEIdkGA/gNxIAFBGHZycjYCDCAAKQMAIQMgACADIAMQhoCAgABCgICAgHCDQgSEIAJBDGpBBBDJgICAADcDACACQRBqJICAgIAAIAALNgEBfkIBIQICQCABEIaAgIAAQoCAgIBwg0KAgICAwABSDQAgACABNwMIQgAhAgsgACACNwMACx8AIABCBCABrUIghkIEhCACrUIghkIEhBCTgICAABoLNgEBfkIBIQICQCABEIaAgIAAQoCAgIBwg0KAgICAgARSDQAgACABNwMIQgAhAgsgACACNwMAC8IBAQR/I4CAgIAAQcAAayICJICAgIAAIAJBIGpBGGoiA0IANwMAIAJBIGpBEGoiBEIANwMAIAJBIGpBCGoiBUIANwMAIAJCADcDICABIAJBIGpBIBDMgICAACACQRhqIAMpAwA3AwAgAkEQaiAEKQMANwMAIAJBCGogBSkDADcDACACIAIpAyA3AwAgACkDACEBIAAgASABEIaAgIAAQoCAgIBwg0IEhCACQSAQyYCAgAA3AwAgAkHAAGokgICAgAAgAAtvAQF/I4CAgIAAQRBrIgMkgICAgAACQCAAQv8Bg0IEUg0AIAFC/wGDQs0AUg0AIAJC/wGDQgRSDQAgA0EEahCrgICAAAJAIAMoAgRBAUcNACADKAIIIAMoAgwQrICAgAALQoOAgIAQELWAgIAACwALWgEBfyOAgICAAEEQayIBJICAgIAAAkAgAEL/AYNCBFINACABQQRqEKuAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCsgICAAAsgAUEQaiSAgICAAEIBDwsAC4UBAgF/AX4jgICAgABBEGsiACSAgICAACAAEKuAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBCsgICAAAsgAEGAgMCAAEEOELuAgIAAAkACQCAAKAIADQAgACAAKQMIELyAgIAAIAAoAgBBAUcNAQsACyAAKQMIIQEgAEEQaiSAgICAACABC2UBAX8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQssAUg0AIAJBBGoQq4CAgAACQCACKAIEQQFHDQAgAigCCCACKAIMEKyAgIAAC0KDgICAEBC1gICAAAsAC54BAgF/AX4jgICAgABBMGsiACSAgICAACAAQQhqEKuAgIAAAkAgACgCCEEBRw0AIAAoAgwgACgCEBCsgICAAAsgAEEgakIAENSAgIAAAkAgACgCIEEBRw0AAAsgACkDKCEBIABCBDcDGCAAIAE3AxAgAEKEgICAIDcDCEHcgcCAAEEDIABBCGpBAxC6gICAACEBIABBMGokgICAgAAgAQs7AAJAAkAgAUL//////////wBWDQAgAUIIhkIGhCEBDAELIAEQkYCAgAAhAQsgAEIANwMAIAAgATcDCAvpAQEBfgJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACQv8Bg0LNAFINAEGAyx5BgNIfENaAgIAAQYDLHkGA0h8Q14CAgAAgAUKO0q4VEIOAgIAAEIqAgIAAIgNC/wGDQgRSDQFBACABEKeAgIAAQQEQo4CAgAAgA0KEgICAcINCAhCBgICAABpC4wBCABC+gICAAELkAEIAEL2AgIAAIAIQv4CAgAAgABDAgICAAEEAELaAgIAAQgIQpICAgAANAiAAENiAgIAAQgIPCwALENmAgIAAAAtCg4CAgJCBARC1gICAAAALDgBBASAAIAEQiYGAgAALDgBBAiAAIAEQiYGAgAALDgBBACAAQgIQ9oCAgAALCQAQhIGAgAAAC/YGAgJ/BH4jgICAgABB0ABrIgIkgICAgAACQCAAQv8Bg0LIAFINACACQTBqIAEQ24CAgAAgAigCMEEBRg0AIAIpAzghASACIAA3AwggAkEwahCrgICAAAJAIAIoAjBBAUcNACACKAI0IAIoAjgQrICAgAALENyAgIAAEIKAgIAAGgJAIAAQhoCAgABCgICAgHCDQoCAgICQClINACACQQA2AhQgAiACQQhqNgIQAkAgAkEQakEBEN2AgIAAIgAQhoCAgABCgICAgHCDQoCAgIAQUg0AIAJBADoAMAJAIAAQhoCAgABCgICAgHCDQoCAgIAQUg0AIAAgAkEwakEBEMyAgIAAAkAgAi0AMEEBRw0AAkAgAkEQakEIEN2AgIAAIgAQhoCAgABCgICAgHCDQoCAgICAAVINACACQgA3AzAgABCGgICAAEKAgICAcINCgICAgIABUg0CIAAgAkEwakEIEMyAgIAAIAIpAzAhACACQRBqEN6AgIAAIQMgAkEQahDfgICAACEEIAJBEGoQ3oCAgAAaIAJBEGoQ34CAgAAhBUGEg8CAAEEIEOCAgIAAIAUQiYCAgAAQi4CAgAAiBUL/AYNCzQBSDQUQxoCAgAAhBhCMgICAACEHIAJBEGogAEI4hiAAQoD+A4NCKIaEIABCgID8B4NCGIYgAEKAgID4D4NCCIaEhCAAQgiIQoCAgPgPgyAAQhiIQoCA/AeDhCAAQiiIQoD+A4MgAEI4iISEhBDUgICAACACKAIQQQFGDQUgAikDGCEAIAIgBDcDOCACIAA3AzAgAiADrUIghkIEhDcDQEGAgcCAAEEDIAJBMGpBAxC6gICAACEAIAIgATcDKCACIAU3AyAgAiAANwMYIAIgBzcDEEEAIQMCQANAAkAgA0EgRw0AQQAhAwJAA0AgA0EgRg0BIAJBMGogA2ogAkEQaiADaikDADcDACADQQhqIQMMAAsLIAZCjvyr963dAyACQTBqQQQQyICAgAAQioCAgABC/wGDQgJSDQIgAkHQAGokgICAgABCAg8LIAJBMGogA2pCAjcDACADQQhqIQMMAAsLENmAgIAAAAtCg4CAgICCARC1gICAAAALQoOAgIDQiQEQtYCAgAAACxDhgICAAAALQoOAgICAggEQtYCAgAAAC0KDgICAwIkBELWAgIAAAAsACyMAAkAgAUL/AYNCyABRDQAgAEIBNwMADwsgACABEM2AgIAAC2sCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQq4CAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEKyAgIAACyAAQQUQooCAgAACQCAAKAIADQAQ6ICAgAAACyAAKQMIIQEgAEEQaiSAgICAACABC3UCAn8BfgJAAkAgACgCBCICIAFqIgEgAkkNACABIAAoAgAiAykDABCGgICAAEIgiKdLDQEgAykDACACrUIghkIEhCABrUIghkIEhBCIgICAACEEIAAgATYCBCAEDwsQ2YCAgAAAC0KDgICAgP0AELWAgIAAAAu5AQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAIABBBBDdgICAACICEIaAgIAAQoCAgIBwg0KAgICAwABSDQAgAUEANgIMIAIQhoCAgABCgICAgHCDQoCAgIDAAFINASACIAFBDGpBBBDMgICAACABKAIMIQAgAUEQaiSAgICAACAAQRh0IABBgP4DcUEIdHIgAEEIdkGA/gNxIABBGHZycg8LQoOAgICAggEQtYCAgAAACxDhgICAAAALgQIDAX8BfgJ/I4CAgIAAQcAAayIBJICAgIAAAkACQCAAQSAQ3YCAgAAiAhCGgICAAEKAgICAcINCgICAgIAEUg0AIAFBIGpBGGoiAEIANwMAIAFBIGpBEGoiA0IANwMAIAFBIGpBCGoiBEIANwMAIAFCADcDICACEIaAgIAAQoCAgIBwg0KAgICAgARSDQEgAiABQSBqQSAQzICAgAAgAUEYaiAAKQMANwMAIAFBEGogAykDADcDACABQQhqIAQpAwA3AwAgASABKQMgNwMAIAFBIBDggICAACECIAFBwABqJICAgIAAIAIPC0KDgICAgIIBELWAgIAAAAsQ4YCAgAAACxoAIACtQiCGQgSEIAGtQiCGQgSEEJSAgIAACwkAENmAgIAAAAtpAQF/I4CAgIAAQRBrIgEkgICAgAACQCAAQv8Bg0LNAFINABCugICAACABQQRqEKuAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCsgICAAAsgABC/gICAACABQRBqJICAgIAAQgIPCwALgAECAX8BfiOAgICAAEEgayIBJICAgIAAIAEgABCmgICAAAJAIAEoAgBBAUYNACABKQMYIQAgASkDECECEK6AgIAAIAEQq4CAgAACQCABKAIAQQFHDQAgASgCBCABKAIIEKyAgIAACyACIAAQvYCAgAAgAUEgaiSAgICAAEICDwsAC4ABAgF/AX4jgICAgABBIGsiASSAgICAACABIAAQpoCAgAACQCABKAIAQQFGDQAgASkDGCEAIAEpAxAhAhCugICAACABEKuAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBCsgICAAAsgAiAAEL6AgIAAIAFBIGokgICAgABCAg8LAAtpAQF/I4CAgIAAQRBrIgEkgICAgAACQCAAQv8Bg0LNAFINABCugICAACABQQRqEKuAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCsgICAAAsgABDAgICAACABQRBqJICAgIAAQgIPCwALCAAQxoCAgAALiwECAX8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQq4CAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMEKyAgIAACwJAAkBBARCjgICAACIBQgIQpICAgABFDQAgAUICEICAgIAAIgFC/wGDQgRRDQEACxDogICAAAALIABBEGokgICAgAAgAUKEgICAcIMLCQAQ2YCAgAAACz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQw4CAgAAgACkDACAAKQMIEKmAgIAAIQEgAEEQaiSAgICAACABCz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQxICAgAAgACkDACAAKQMIEKmAgIAAIQEgAEEQaiSAgICAACABCwgAEMeAgIAACwgAENyAgIAACwgAEK+AgIAACz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQsYCAgAAgACkDACAAKQMIEO+AgIAAIQEgAEEQaiSAgICAACABCw0AIAFCAiAAp0EBcRsLPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABC0gICAACAAKQMAIAApAwgQ74CAgAAhASAAQRBqJICAgIAAIAELfQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQCAAQv8Bg0LNAFINACABQQRqEKuAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCsgICAAAsQsICAgAAhAhCzgICAACAAENiAgIAAIAIgABDygICAACABQRBqJICAgIAAQgIPCwALYQIBfwF+I4CAgIAAQRBrIgIkgICAgABBlYPAgABBFRD3gICAABD4gICAACEDIAIgADcDCCACIAE3AwAgA0G8g8CAAEECIAJBAhC6gICAABCPgICAABogAkEQaiSAgICAAAvdAgIBfwJ+I4CAgIAAQSBrIgIkgICAgAACQAJAAkAgAEL/AYNCzQBSDQAgAUL/AYNCBFINACACQQhqEKuAgIAAAkAgAigCCEEBRw0AIAIoAgwgAigCEBCsgICAAAsQsICAgAAhAwJAAkAgAUL/////D1YNACACQQhqELSAgIAAIAIpAxAhASACKQMIQYgIELKAgIAAIAEgABCNgICAAFBFDQMQ9ICAgAAMAQsQ9YCAgAAgAUIgiKdJDQNBASAAQgAQ9oCAgABBARC2gICAAEIAIAFChICAgHCDIgEgARCOgICAABpBzIPAgABBFhD3gICAABD4gICAACEEIAIgATcDGCACIAM3AxAgAiAANwMIIARB6IPAgABBAyACQQhqQQMQuoCAgAAQj4CAgAAaCyACQSBqJICAgIAAQgIPCwALQoOAgIDggAEQtYCAgAAAC0KDgICA8IABELWAgIAAAAsTAEEBELaAgIAAQgAQkICAgAAaCzMBAn4QnYCAgAAhAAJAEJ6AgIAAQiCIIgEgAEIgiCIAVA0AIAGnIACnaw8LENmAgIAAAAsVACAAELaAgIAAIAEgAhCBgICAABoLRQIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAiAAIAEQhoGAgAACQCACKAIAQQFHDQAACyACKQMIIQMgAkEQaiSAgICAACADC2MDAX8BfgF/I4CAgIAAQRBrIgEkgICAgAAgASAANwMAQgIhAkEBIQMCQANAIANFDQEgA0F/aiEDIAAhAgwACwsgASACNwMIIAFBCGpBARDIgICAACEAIAFBEGokgICAgAAgAAunAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAgABCrgICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQrICAgAALIAAQtICAgAAgACkDCCEBIAApAwBBiAgQsoCAgAAgARCCgICAABogABC3gICAAAJAIAAoAgANABDogICAAAALIAApAwghAhD0gICAACABENiAgIAAIAIgARDygICAACAAQRBqJICAgIAAQgILoAECAX8CfiOAgICAAEEQayIAJICAgIAAIAAQq4CAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEKyAgIAACxCwgICAACEBELOAgIAAQQAQtoCAgABCAhCQgICAABpBgITAgABBExD3gICAABD4gICAACECIAAgATcDACACQZSEwIAAQQEgAEEBELqAgIAAEI+AgIAAGiAAQRBqJICAgIAAQgILMQACQCAAQv8Bg0IEUg0AIAFC/wGDQgRSDQAgAEIgiKcgAUIgiKcQrICAgABCAg8LAAveBAEFfyOAgICAAEHQAGsiAiSAgICAACACQShqIAAQ/YCAgAACQCACKAIoQQJGDQAgAkEIakEIaiACQShqQQhqIgMoAgA2AgAgAiACKQIoNwMIIAJBKGogARD9gICAACACKAIoQQJGDQAgAkEYakEIaiADKAIANgIAIAIgAikCKDcDGCACQShqEKuAgIAAAkAgAigCKEEBRw0AIAIoAiwgAigCMBCsgICAAAsQroCAgAACQAJAAkAQqoCAgAANABD1gICAACIDQYD7gAMgA0GA+4ADSRshBCACIAJBGGo2AiwgAiACQQhqNgIoQQAhAwNAIANBCEYNAwJAIAJBKGogA2ooAgAiBSgCAEEBcUUNACAFKAIIIgYgBEsNAyAFKAIEIAZLDQMLIANBBGohAwwACwtCg4CAgND/ABC1gICAAAALQoOAgIDA/wAQtYCAgAAACwJAAkAgAigCCEEBRw0AIAIoAgwgAigCEBDWgICAAAwBC0EBEK2AgIAAQgIQkICAgAAaCwJAAkAgAigCGEEBRw0AIAIoAhwgAigCIBDXgICAAAwBC0ECEK2AgIAAQgIQkICAgAAaCyACQShqQQhqIAJBCGpBCGooAgA2AgAgAkE8aiACQRhqQQhqKAIANgIAIAIgAikDCDcDKCACIAIpAxg3AjRByITAgABBDxD3gICAABD4gICAACEAIAJBKGoQ/oCAgAAhASACIAJBNGoQ/oCAgAA3A0ggAiABNwNAIABB7ITAgABBAiACQcAAakECELqAgIAAEI+AgIAAGiACQdAAaiSAgICAAEICDwsAC2gBAX8jgICAgABBEGsiAiSAgICAAAJAAkAgAUICUQ0AIAJBBGogARCHgYCAAAJAIAIoAgRFDQAgAEECNgIADAILIAAgAikCCDcCBCAAQQE2AgAMAQsgAEEANgIACyACQRBqJICAgIAAC0MCAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABCBgYCAAAJAIAEoAgBBAUcNAAALIAEpAwghAiABQRBqJICAgIAAIAILxAECAn8BfiOAgICAAEHAAGsiACSAgICAACAAQQhqEKuAgIAAAkAgACgCCEEBRw0AIAAoAgwgACgCEBCsgICAAAsgAEEIahCrgICAACAAQRRqIgFBAhCAgYCA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aCBjYXV0aW9uIC0gaWYgeW91IHRyYW5zZmVyIHRvIGEgd3JvbmcgYWRkcmVzcywgb3duZXJzaGlwIGlzIGxvc3QgZm9yZXZlci4KQ29uc2lkZXIgdXNpbmcgYHByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyYCBpbnN0ZWFkLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgVHJhbnNmZXJJblByb2dyZXNzYCBpZiBhIDItc3RlcCB0cmFuc2ZlciBpcyBpbiBwcm9ncmVzcwAAAAASdHJhbnNmZXJfb3duZXJzaGlwAAAAAAABAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAJcUHJvcG9zZXMgYW4gb3duZXJzaGlwIHRyYW5zZmVyIHRvIGEgbmV3IGFkZHJlc3MuCgpUaGUgbmV3IG93bmVyIG11c3QgY2FsbCBgYWNjZXB0X293bmVyc2hpcCgpYCB3aXRoaW4gYHR0bGAgbGVkZ2Vycwp0byBjb21wbGV0ZSB0aGUgdHJhbnNmZXIuIFRoZSBwZW5kaW5nIHRyYW5zZmVyIHdpbGwgYXV0b21hdGljYWxseSBleHBpcmUgYWZ0ZXIuCgojIEFyZ3VtZW50cwotIGBuZXdfb3duZXJgIC0gVGhlIHByb3Bvc2VkIG5ldyBvd25lcgotIGB0dGxgIC0gTnVtYmVyIG9mIGxlZGdlcnMgdGhlIG5ldyBvd25lciBoYXMgdG8gYWNjZXB0LgpVc2UgYDBgIHRvIGNhbmNlbCBhIHBlbmRpbmcgdHJhbnNmZXIgKG5ld19vd25lciBtdXN0IG1hdGNoIHBlbmRpbmcpLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIHdoZW4gY2FuY2VsbGluZyBhbmQgbm8gcGVuZGluZyB0cmFuc2ZlciBleGlzdHMKLSBgSW52YWxpZFR0bGAgaWYgdHRsIGV4Y2VlZHMgbWF4IFRUTAotIGBJbnZhbGlkUGVuZGluZ093bmVyYCB3aGVuIGNhbmNlbGxpbmcgd2l0aCB3cm9uZyBuZXdfb3duZXIgYWRkcmVzcwAAABpwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcgAAAAAAAgAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAAAAALlBY2NlcHRzIGEgcGVuZGluZyAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyLgoKTXVzdCBiZSBjYWxsZWQgYnkgdGhlIHBlbmRpbmcgb3duZXIgYmVmb3JlIHRoZSBUVEwgZXhwaXJlcy4KCiMgUGFuaWNzCi0gYE5vUGVuZGluZ1RyYW5zZmVyYCBpZiB0aGVyZSBpcyBubyBwZW5kaW5nIHRyYW5zZmVyIChvciBpdCBleHBpcmVkKQAAAAAAABBhY2NlcHRfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAApFBlcm1hbmVudGx5IHJlbm91bmNlcyBvd25lcnNoaXAuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzIChjYW5jZWwgaXQgZmlyc3QpAAAAEnJlbm91bmNlX293bmVyc2hpcAAAAAAAAAAAAAAAAAAAAAAApUV4dGVuZHMgdGhlIGluc3RhbmNlIFRUTC4KCiMgQXJndW1lbnRzCgoqIGB0aHJlc2hvbGRgIC0gVGhlIHRocmVzaG9sZCB0byBleHRlbmQgdGhlIFRUTCAoaWYgY3VycmVudCBUVEwgaXMgYmVsb3cgdGhpcywgZXh0ZW5kKS4KKiBgZXh0ZW5kX3RvYCAtIFRoZSBUVEwgdG8gZXh0ZW5kIHRvLgAAAAAAABNleHRlbmRfaW5zdGFuY2VfdHRsAAAAAAIAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAACWV4dGVuZF90bwAAAAAAAAQAAAAAAAAAAAAAAY9TZXRzIFRUTCBjb25maWdzIGZvciBpbnN0YW5jZSBhbmQgcGVyc2lzdGVudCBzdG9yYWdlLgoKLSBgTm9uZWAgdmFsdWVzIHJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBjb25maWcgKGRpc2FibGVzIGF1dG8tZXh0ZW5zaW9uIGZvciB0aGF0IHR5cGUpCi0gVmFsaWRhdGVzIHRoYXQgYHRocmVzaG9sZCA8PSBleHRlbmRfdG8gPD0gTUFYX1RUTGAKCiMgQXJndW1lbnRzCi0gYGluc3RhbmNlYCAtIFRUTCBjb25maWcgZm9yIGluc3RhbmNlIHN0b3JhZ2UKLSBgcGVyc2lzdGVudGAgLSBUVEwgY29uZmlnIGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UKCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0Zyb3plbmAgaWYgY29uZmlncyBhcmUgZnJvemVuCi0gYEludmFsaWRUdGxDb25maWdgIGlmIHZhbGlkYXRpb24gZmFpbHMAAAAAD3NldF90dGxfY29uZmlncwAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAKcGVyc2lzdGVudAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAAAAABIUmV0dXJucyB0aGUgY3VycmVudCBUVEwgY29uZmlncyBhcyAoaW5zdGFuY2VfY29uZmlnLCBwZXJzaXN0ZW50X2NvbmZpZykuAAAAC3R0bF9jb25maWdzAAAAAAAAAAABAAAD7QAAAAIAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAA4VBlcm1hbmVudGx5IGZyZWV6ZXMgVFRMIGNvbmZpZ3MsIHByZXZlbnRpbmcgYW55IGZ1dHVyZSBtb2RpZmljYXRpb25zLgoKVGhpcyBpcyBpcnJldmVyc2libGUgYW5kIHByb3ZpZGVzIGltbXV0YWJpbGl0eSBndWFyYW50ZWVzIHRvIHVzZXJzLgpFbWl0cyBgVHRsQ29uZmlnc0Zyb3plbmAgZXZlbnQuCgojIFBhbmljcwotIGBUdGxDb25maWdBbHJlYWR5RnJvemVuYCBpZiBhbHJlYWR5IGZyb3plbgAAAAAAABJmcmVlemVfdHRsX2NvbmZpZ3MAAAAAAAAAAAAAAAAAAAAAACdSZXR1cm5zIHdoZXRoZXIgVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAFWlzX3R0bF9jb25maWdzX2Zyb3plbgAAAAAA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AAAAAAART25seU5vbkRlZmF1bHRMaWIAAAAAAAAOAAAAAAAAAA5Pbmx5UmVjZWl2ZUxpYgAAAAAADwAAAAAAAAART25seVJlZ2lzdGVyZWRMaWIAAAAAAAAQAAAAAAAAAAtPbmx5U2VuZExpYgAAAAARAAAAAAAAABRQYXRoTm90SW5pdGlhbGl6YWJsZQAAABIAAAAAAAAAEVBhdGhOb3RWZXJpZmlhYmxlAAAAAAAAEwAAAAAAAAATUGF5bG9hZEhhc2hOb3RGb3VuZAAAAAAUAAAAAAAAAAlTYW1lVmFsdWUAAAAAAAAVAAAAAAAAAAxVbmF1dGhvcml6ZWQAAAAWAAAAAAAAAA5VbnN1cHBvcnRlZEVpZAAAAAAAFwAAAAAAAAAKWmVyb1pyb0ZlZQAAAAAAGAAAAAAAAAAOWnJvVW5hdmFpbGFibGUAAAAAABkAAAABAAAALVBhcmFtZXRlcnMgZm9yIHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAAAAPTWVzc2FnaW5nUGFyYW1zAAAAAAUAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAHFRoZSBtZXNzYWdlIHBheWxvYWQgdG8gc2VuZC4AAAAHbWVzc2FnZQAAAAAOAAAAIUVuY29kZWQgZXhlY3V0b3IgYW5kIERWTiBvcHRpb25zLgAAAAAAAAdvcHRpb25zAAAAAA4AAAA5V2hldGhlciB0byBwYXkgZmVlcyBpbiBaUk8gdG9rZW4gaW5zdGVhZCBvZiBuYXRpdmUgdG9rZW4uAAAAAAAACnBheV9pbl96cm8AAAAAAAEAAAA1UmVjZWl2ZXIgYWRkcmVzcyBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAAEAAABNU291cmNlIG1lc3NhZ2UgaW5mb3JtYXRpb24gaWRlbnRpZnlpbmcgd2hlcmUgYSBjcm9zcy1jaGFpbiBtZXNzYWdlIGNhbWUgZnJvbS4AAAAAAAAAAAAABk9yaWdpbgAAAAAAAwAAABdOb25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAAFbm9uY2UAAAAAAAAGAAAALlNlbmRlciBhZGRyZXNzIG9uIHRoZSBzb3VyY2UgY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAZzZW5kZXIAAAAAA+4AAAAgAAAAJlNvdXJjZSBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAAChGZWUgc3RydWN0dXJlIGZvciBjcm9zcy1jaGFpbiBtZXNzYWdpbmcuAAAAAAAAAAxNZXNzYWdpbmdGZWUAAAACAAAAH0ZlZSBwYWlkIGluIG5hdGl2ZSB0b2tlbiAoWExNKS4AAAAACm5hdGl2ZV9mZWUAAAAAAAsAAAAoRmVlIHBhaWQgaW4gWlJPIHRva2VuIChMYXllclplcm8gdG9rZW4pLgAAAAd6cm9fZmVlAAAAAAsAAAABAAAAQlJlY2VpcHQgcmV0dXJuZWQgYWZ0ZXIgc3VjY2Vzc2Z1bGx5IHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAABBNZXNzYWdpbmdSZWNlaXB0AAAAAwAAAClUaGUgZmVlcyBjaGFyZ2VkIGZvciBzZW5kaW5nIHRoZSBtZXNzYWdlLgAAAAAAAANmZWUAAAAH0AAAAAxNZXNzYWdpbmdGZWUAAAArR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBtZXNzYWdlLgAAAAAEZ3VpZAAAA+4AAAAgAAAAJFRoZSBvdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAACAAAAOFR5cGUgb2YgbWVzc2FnZSBsaWJyYXJ5IGluZGljYXRpbmcgc3VwcG9ydGVkIG9wZXJhdGlvbnMuAAAAAAAAAA5NZXNzYWdlTGliVHlwZQAAAAAAAwAAAAAAAAAfU3VwcG9ydHMgb25seSBzZW5kaW5nIG1lc3NhZ2VzLgAAAAAEU2VuZAAAAAAAAAAhU3VwcG9ydHMgb25seSByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAAB1JlY2VpdmUAAAAAAAAAAC1TdXBwb3J0cyBib3RoIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAOU2VuZEFuZFJlY2VpdmUAAAAAAAEAAAC3VmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgYSBtZXNzYWdlIGxpYnJhcnkuCgpOb3RlOiBgbWlub3JgIGFuZCBgZW5kcG9pbnRfdmVyc2lvbmAgdXNlIGB1MzJgIGluc3RlYWQgb2YgYHU4YCBiZWNhdXNlIFN0ZWxsYXIgZG9lcyBub3QKc3VwcG9ydCBgdThgIHR5cGVzIGluIGNvbnRyYWN0IGludGVyZmFjZSBmdW5jdGlvbnMuAAAAAAAAAAARTWVzc2FnZUxpYlZlcnNpb24AAAAAAAADAAAAM0VuZHBvaW50IHZlcnNpb24gKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAQZW5kcG9pbnRfdmVyc2lvbgAAAAQAAAAVTWFqb3IgdmVyc2lvbiBudW1iZXIuAAAAAAAABW1ham9yAAAAAAAABgAAADdNaW5vciB2ZXJzaW9uIG51bWJlciAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAAAVtaW5vcgAAAAAAAAQAAAABAAAANlRpbWVvdXQgY29uZmlndXJhdGlvbiBmb3IgcmVjZWl2ZSBsaWJyYXJ5IHRyYW5zaXRpb25zLgAAAAAAAAAAAAdUaW1lb3V0AAAAAAIAAAAoVW5peCB0aW1lc3RhbXAgd2hlbiB0aGUgdGltZW91dCBleHBpcmVzLgAAAAZleHBpcnkAAAAAAAYAAAApVGhlIG5ldyBsaWJyYXJ5IGFkZHJlc3MgdG8gdHJhbnNpdGlvbiB0by4AAAAAAAADbGliAAAAABMAAAABAAAANVBhcmFtZXRlcnMgZm9yIHNldHRpbmcgbWVzc2FnZSBsaWJyYXJ5IGNvbmZpZ3VyYXRpb24uAAAAAAAAAAAAAA5TZXRDb25maWdQYXJhbQAAAAAAAwAAAB9YRFItZW5jb2RlZCBjb25maWd1cmF0aW9uIGRhdGEuAAAAAAZjb25maWcAAAAAAA4AAAAwVGhlIHR5cGUgb2YgY29uZmlndXJhdGlvbiAoZS5nLiwgZXhlY3V0b3IsIFVMTikuAAAAC2NvbmZpZ190eXBlAAAAAAQAAAAnVGhlIGVuZHBvaW50IElEIHRoaXMgY29uZmlnIGFwcGxpZXMgdG8uAAAAAANlaWQAAAAABAAAAAEAAAAxUmVzb2x2ZWQgbGlicmFyeSBpbmZvcm1hdGlvbiB3aXRoIGRlZmF1bHQgc3RhdHVzLgAAAAAAAAAAAAAPUmVzb2x2ZWRMaWJyYXJ5AAAAAAIAAABEV2hldGhlciB0aGlzIGlzIHRoZSBkZWZhdWx0IGxpYnJhcnkgKHRydWUpIG9yIE9BcHAtc3BlY2lmaWMgKGZhbHNlKS4AAAAKaXNfZGVmYXVsdAAAAAAAAQAAAB1UaGUgcmVzb2x2ZWQgbGlicmFyeSBhZGRyZXNzLgAAAAAAAANsaWIAAAAAEwAAAAEAAABIT3V0Ym91bmQgcGFja2V0IGNvbnRhaW5pbmcgYWxsIGluZm9ybWF0aW9uIGZvciBjcm9zcy1jaGFpbiB0cmFuc21pc3Npb24uAAAAAAAAAA5PdXRib3VuZFBhY2tldAAAAAAABwAAABhEZXN0aW5hdGlvbiBlbmRwb2ludCBJRC4AAAAHZHN0X2VpZAAAAAAEAAAALEdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIG1lc3NhZ2UuAAAABGd1aWQAAAPuAAAAIAAAABRUaGUgbWVzc2FnZSBwYXlsb2FkLgAAAAdtZXNzYWdlAAAAAA4AAAAgT3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAMVJlY2VpdmVyIGFkZHJlc3Mgb24gZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAB9TZW5kZXIgYWRkcmVzcyBvbiBzb3VyY2UgY2hhaW4uAAAAAAZzZW5kZXIAAAAAABMAAAATU291cmNlIGVuZHBvaW50IElELgAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAACtBIGZlZSByZWNpcGllbnQgd2l0aCB0aGUgYW1vdW50IHRvIGJlIHBhaWQuAAAAAAAAAAAMRmVlUmVjaXBpZW50AAAAAgAAABVBbW91bnQgb2YgZmVlIHRvIHBheS4AAAAAAAAGYW1vdW50AAAAAAALAAAAH1RoZSBhZGRyZXNzIHRvIHNlbmQgdGhlIGZlZSB0by4AAAAAAnRvAAAAAAATAAAAAQAAADxSZXN1bHQgb2Ygc2VuZCBvcGVyYXRpb24gY29udGFpbmluZyBmZWVzIGFuZCBlbmNvZGVkIHBhY2tldC4AAAAAAAAADUZlZXNBbmRQYWNrZXQAAAAAAAADAAAAKlRoZSBlbmNvZGVkIHBhY2tldCByZWFkeSBmb3IgdHJhbnNtaXNzaW9uLgAAAAAADmVuY29kZWRfcGFja2V0AAAAAAAOAAAAP0xpc3Qgb2YgbmF0aXZlIHRva2VuIGZlZSByZWNpcGllbnRzIChleGVjdXRvciwgRFZOcywgdHJlYXN1cnkpLgAAAAAVbmF0aXZlX2ZlZV9yZWNpcGllbnRzAAAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAALExpc3Qgb2YgWlJPIHRva2VuIGZlZSByZWNpcGllbnRzICh0cmVhc3VyeSkuAAAAEnpyb19mZWVfcmVjaXBpZW50cwAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAABAAAAB1QYWNrZXRDb2RlY1YxRXJyb3I6IDExMDAtMTEwOQAAAAAAAAAAAAASUGFja2V0Q29kZWNWMUVycm9yAAAAAAACAAAAAAAAABNJbnZhbGlkUGFja2V0SGVhZGVyAAAABEwAAAAAAAAAFEludmFsaWRQYWNrZXRWZXJzaW9uAAAETQAAAAQAAAAdV29ya2VyT3B0aW9uc0Vycm9yOiAxMTEwLTExMTkAAAAAAAAAAAAAEldvcmtlck9wdGlvbnNFcnJvcgAAAAAACQAAAAAAAAASSW52YWxpZEJ5dGVzTGVuZ3RoAAAAAARWAAAAAAAAABlJbnZhbGlkTGVnYWN5T3B0aW9uc1R5cGUxAAAAAAAEVwAAAAAAAAAZSW52YWxpZExlZ2FjeU9wdGlvbnNUeXBlMgAAAAAABFgAAAAAAAAAEUludmFsaWRPcHRpb25UeXBlAAAAAAAEWQAAAAAAAAAOSW52YWxpZE9wdGlvbnMAAAAABFoAAAAAAAAAD0ludmFsaWRXb3JrZXJJZAAAAARbAAAAAAAAAB1MZWdhY3lPcHRpb25zVHlwZTFHYXNPdmVyZmxvdwAAAAAABFwAAAAAAAAAIExlZ2FjeU9wdGlvbnNUeXBlMkFtb3VudE92ZXJmbG93AAAEXQAAAAAAAAAdTGVnYWN5T3B0aW9uc1R5cGUyR2FzT3ZlcmZsb3cAAAAAAAReAAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPpAAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/IAAAAEAAAAH1R0bENvbmZpZ3VyYWJsZUVycm9yOiAxMDIwLTEwMjkAAAAAAAAAABRUdGxDb25maWd1cmFibGVFcnJvcgAAAAMAAAAAAAAAEEludmFsaWRUdGxDb25maWcAAAP8AAAAAAAAAA9UdGxDb25maWdGcm96ZW4AAAAD/QAAAAAAAAAWVHRsQ29uZmlnQWxyZWFkeUZyb3plbgAAAAAD/gAAAAQAAAAXT3duYWJsZUVycm9yOiAxMDMwLTEwMzkAAAAAAAAAAAxPd25hYmxlRXJyb3IAAAAGAAAAAAAAABNJbnZhbGlkUGVuZGluZ093bmVyAAAABAYAAAAAAAAACkludmFsaWRUdGwAAAAABAcAAAAAAAAAEU5vUGVuZGluZ1RyYW5zZmVyAAAAAAAECAAAAAAAAAAPT3duZXJBbHJlYWR5U2V0AAAABAkAAAAAAAAAC093bmVyTm90U2V0AAAABAoAAAAAAAAAElRyYW5zZmVySW5Qcm9ncmVzcwAAAAAECwAAAAQAAAAYQnl0ZXNFeHRFcnJvcjogMTA0MC0xMDQ5AAAAAAAAAA1CeXRlc0V4dEVycm9yAAAAAAAAAQAAAAAAAAAOTGVuZ3RoTWlzbWF0Y2gAAAAABBAAAAAEAAAAG1VwZ3JhZGVhYmxlRXJyb3I6IDEwNTAtMTA1OQAAAAAAAAAAEFVwZ3JhZGVhYmxlRXJyb3IAAAADAAAAAAAAABRJbnZhbGlkTWlncmF0aW9uRGF0YQAABBoAAAAAAAAAE01pZ3JhdGlvbk5vdEFsbG93ZWQAAAAEGwAAAAAAAAAOVXBncmFkZXNGcm96ZW4AAAAABBwAAAAEAAAAGE11bHRpc2lnRXJyb3I6IDEwNjAtMTA2OQAAAAAAAAANTXVsdGlzaWdFcnJvcgAAAAAAAAgAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAEJAAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCUAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQmAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCcAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQoAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCkAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQqAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAEKwAAAAUAAAAwRXZlbnQgZW1pdHRlZCB3aGVuIGEgc2lnbmVyIGlzIGFkZGVkIG9yIHJlbW92ZWQuAAAAAAAAAAlTaWduZXJTZXQAAAAAAAABAAAACnNpZ25lcl9zZXQAAAAAAAIAAAAAAAAABnNpZ25lcgAAAAAD7gAAABQAAAABAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAgAAAAUAAAA2RXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIGlzIGNoYW5nZWQuAAAAAAAAAAAADFRocmVzaG9sZFNldAAAAAEAAAANdGhyZXNob2xkX3NldAAAAAAAAAEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA9NdWx0aXNpZ1N0b3JhZ2UAAAAAAgAAAAAAAAAAAAAAB1NpZ25lcnMAAAAAAAAAAAAAAAAJVGhyZXNob2xkAAAAAAAABQAAAFdFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIChib3RoIHNpbmdsZS1zdGVwIGFuZCB0d28tc3RlcCBjb21wbGV0aW9uKS4AAAAAAAAAABRPd25lcnNoaXBUcmFuc2ZlcnJlZAAAAAEAAAAVb3duZXJzaGlwX3RyYW5zZmVycmVkAAAAAAAAAgAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAgAAAAUAAAA7RXZlbnQgZW1pdHRlZCB3aGVuIGEgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2ZlciBpcyBwcm9wb3NlZC4AAAAAAAAAABVPd25lcnNoaXBUcmFuc2ZlcnJpbmcAAAAAAAABAAAAFm93bmVyc2hpcF90cmFuc2ZlcnJpbmcAAAAAAAMAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyByZW5vdW5jZWQuAAAAAAAAAAAAEk93bmVyc2hpcFJlbm91bmNlZAAAAAAAAQAAABNvd25lcnNoaXBfcmVub3VuY2VkAAAAAAEAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA5Pd25hYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABU93bmVyAAAAAAAAAAAAAAAAAAAMUGVuZGluZ093bmVyAAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQAAAAFAAAAJ0V2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgc2V0LgAAAAAAAAAADVR0bENvbmZpZ3NTZXQAAAAAAAABAAAAD3R0bF9jb25maWdzX3NldAAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAAAAAAAAQVHRsQ29uZmlnc0Zyb3plbgAAAAEAAAASdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAABBUdGxDb25maWdTdG9yYWdlAAAAAwAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAISW5zdGFuY2UAAAAAAAAAAAAAAApQZXJzaXN0ZW50AAAAAAACAAAAAAAAAAAAAAASVXBncmFkZWFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAlNaWdyYXRpbmcAAAAAHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAZAAAAAABvDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAVyc3ZlcgAAAAAAAAYxLjkwLjAAAAAAAAAAAAAIcnNzZGt2ZXIAAAAvMjUuMC4xIzk0MTQ0ODA3OWVjY2Y5NTYyN2QyZmZlYTEzYmEyNjhlMzA1YTkwNzcAAFMOY29udHJhY3RtZXRhdjAAAAAAAAAABmNsaXZlcgAAAAAALzI1LjAuMCNhNjQ5MjVlOTM5MWMzZDNiM2VmOGU1M2RjNjBjMjNkYjllNmE4MmU0AA==";
13
12
  /**
14
13
  * Pre-computed WASM hash (SHA-256)
15
14
  * Use this when the WASM is already uploaded on-chain
16
15
  */
17
- export declare const WASM_HASH = "00d120a82635e4e4497d07d1233a432efc4301a890ce92b159b977a8b5275462";
16
+ export declare const WASM_HASH = "50f95eceb29103f5c23981254e80a68d3c38a9837917b7e39bb951670c5ae19f";
18
17
  /**
19
18
  * Get the WASM bytecode as a Buffer
20
19
  * Use this to upload the WASM to the network
@@ -449,6 +448,12 @@ export declare const UpgradeableError: {
449
448
  1050: {
450
449
  message: string;
451
450
  };
451
+ 1051: {
452
+ message: string;
453
+ };
454
+ 1052: {
455
+ message: string;
456
+ };
452
457
  };
453
458
  /**
454
459
  * MultisigError: 1060-1069
@@ -517,6 +522,9 @@ export type TtlConfigStorage = {
517
522
  values: void;
518
523
  };
519
524
  export type UpgradeableStorage = {
525
+ tag: "Frozen";
526
+ values: void;
527
+ } | {
520
528
  tag: "Migrating";
521
529
  values: void;
522
530
  };
@@ -873,24 +881,10 @@ export interface Client {
873
881
  simulate?: boolean;
874
882
  }) => Promise<AssembledTransaction<string>>;
875
883
  /**
876
- * 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.
877
- * Sets TTL configs for instance and persistent storage.
878
- *
879
- * - `None` values remove the corresponding config (disables auto-extension for that type)
880
- * - Validates that `threshold <= extend_to <= MAX_TTL`
881
- *
882
- * # Arguments
883
- * - `instance` - TTL config for instance storage
884
- * - `persistent` - TTL config for persistent storage
885
- *
886
- * # Panics
887
- * - `TtlConfigFrozen` if configs are frozen
888
- * - `InvalidTtlConfig` if validation fails
884
+ * Construct and simulate a owner transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
885
+ * Returns the current owner address, or None if no owner is set.
889
886
  */
890
- set_ttl_configs: ({ instance, persistent }: {
891
- instance: Option<TtlConfig>;
892
- persistent: Option<TtlConfig>;
893
- }, txnOptions?: {
887
+ owner: (txnOptions?: {
894
888
  /**
895
889
  * The fee to pay for the transaction. Default: BASE_FEE
896
890
  */
@@ -903,12 +897,12 @@ export interface Client {
903
897
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
904
898
  */
905
899
  simulate?: boolean;
906
- }) => Promise<AssembledTransaction<null>>;
900
+ }) => Promise<AssembledTransaction<Option<string>>>;
907
901
  /**
908
- * Construct and simulate a ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
909
- * Returns the current TTL configs as (instance_config, persistent_config).
902
+ * Construct and simulate a pending_owner transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
903
+ * Returns the pending owner address for 2-step transfer, or None if no transfer is pending.
910
904
  */
911
- ttl_configs: (txnOptions?: {
905
+ pending_owner: (txnOptions?: {
912
906
  /**
913
907
  * The fee to pay for the transaction. Default: BASE_FEE
914
908
  */
@@ -921,18 +915,21 @@ export interface Client {
921
915
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
922
916
  */
923
917
  simulate?: boolean;
924
- }) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
918
+ }) => Promise<AssembledTransaction<Option<string>>>;
925
919
  /**
926
- * Construct and simulate a freeze_ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
927
- * Permanently freezes TTL configs, preventing any future modifications.
920
+ * Construct and simulate a transfer_ownership transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
921
+ * Transfers ownership immediately to a new address.
928
922
  *
929
- * This is irreversible and provides immutability guarantees to users.
930
- * Emits `TtlConfigsFrozen` event.
923
+ * Use with caution - if you transfer to a wrong address, ownership is lost forever.
924
+ * Consider using `propose_ownership_transfer` instead.
931
925
  *
932
926
  * # Panics
933
- * - `TtlConfigAlreadyFrozen` if already frozen
927
+ * - `OwnerNotSet` if no owner is currently set
928
+ * - `TransferInProgress` if a 2-step transfer is in progress
934
929
  */
935
- freeze_ttl_configs: (txnOptions?: {
930
+ transfer_ownership: ({ new_owner }: {
931
+ new_owner: string;
932
+ }, txnOptions?: {
936
933
  /**
937
934
  * The fee to pay for the transaction. Default: BASE_FEE
938
935
  */
@@ -947,10 +944,27 @@ export interface Client {
947
944
  simulate?: boolean;
948
945
  }) => Promise<AssembledTransaction<null>>;
949
946
  /**
950
- * Construct and simulate a is_ttl_configs_frozen transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
951
- * Returns whether TTL configs are frozen.
947
+ * Construct and simulate a propose_ownership_transfer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
948
+ * Proposes an ownership transfer to a new address.
949
+ *
950
+ * The new owner must call `accept_ownership()` within `ttl` ledgers
951
+ * to complete the transfer. The pending transfer will automatically expire after.
952
+ *
953
+ * # Arguments
954
+ * - `new_owner` - The proposed new owner
955
+ * - `ttl` - Number of ledgers the new owner has to accept.
956
+ * Use `0` to cancel a pending transfer (new_owner must match pending).
957
+ *
958
+ * # Panics
959
+ * - `OwnerNotSet` if no owner is currently set
960
+ * - `NoPendingTransfer` when cancelling and no pending transfer exists
961
+ * - `InvalidTtl` if ttl exceeds max TTL
962
+ * - `InvalidPendingOwner` when cancelling with wrong new_owner address
952
963
  */
953
- is_ttl_configs_frozen: (txnOptions?: {
964
+ propose_ownership_transfer: ({ new_owner, ttl }: {
965
+ new_owner: string;
966
+ ttl: u32;
967
+ }, txnOptions?: {
954
968
  /**
955
969
  * The fee to pay for the transaction. Default: BASE_FEE
956
970
  */
@@ -963,20 +977,17 @@ export interface Client {
963
977
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
964
978
  */
965
979
  simulate?: boolean;
966
- }) => Promise<AssembledTransaction<boolean>>;
980
+ }) => Promise<AssembledTransaction<null>>;
967
981
  /**
968
- * 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.
969
- * Extends the instance TTL.
982
+ * Construct and simulate a accept_ownership transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
983
+ * Accepts a pending 2-step ownership transfer.
970
984
  *
971
- * # Arguments
985
+ * Must be called by the pending owner before the TTL expires.
972
986
  *
973
- * * `threshold` - The threshold to extend the TTL (if current TTL is below this, extend).
974
- * * `extend_to` - The TTL to extend to.
987
+ * # Panics
988
+ * - `NoPendingTransfer` if there is no pending transfer (or it expired)
975
989
  */
976
- extend_instance_ttl: ({ threshold, extend_to }: {
977
- threshold: u32;
978
- extend_to: u32;
979
- }, txnOptions?: {
990
+ accept_ownership: (txnOptions?: {
980
991
  /**
981
992
  * The fee to pay for the transaction. Default: BASE_FEE
982
993
  */
@@ -991,10 +1002,14 @@ export interface Client {
991
1002
  simulate?: boolean;
992
1003
  }) => Promise<AssembledTransaction<null>>;
993
1004
  /**
994
- * Construct and simulate a owner transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
995
- * Returns the current owner address, or None if no owner is set.
1005
+ * Construct and simulate a renounce_ownership transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1006
+ * Permanently renounces ownership.
1007
+ *
1008
+ * # Panics
1009
+ * - `OwnerNotSet` if no owner is currently set
1010
+ * - `TransferInProgress` if a 2-step transfer is in progress (cancel it first)
996
1011
  */
997
- owner: (txnOptions?: {
1012
+ renounce_ownership: (txnOptions?: {
998
1013
  /**
999
1014
  * The fee to pay for the transaction. Default: BASE_FEE
1000
1015
  */
@@ -1007,12 +1022,20 @@ export interface Client {
1007
1022
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1008
1023
  */
1009
1024
  simulate?: boolean;
1010
- }) => Promise<AssembledTransaction<Option<string>>>;
1025
+ }) => Promise<AssembledTransaction<null>>;
1011
1026
  /**
1012
- * Construct and simulate a pending_owner transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1013
- * Returns the pending owner address for 2-step transfer, or None if no transfer is pending.
1027
+ * 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.
1028
+ * Extends the instance TTL.
1029
+ *
1030
+ * # Arguments
1031
+ *
1032
+ * * `threshold` - The threshold to extend the TTL (if current TTL is below this, extend).
1033
+ * * `extend_to` - The TTL to extend to.
1014
1034
  */
1015
- pending_owner: (txnOptions?: {
1035
+ extend_instance_ttl: ({ threshold, extend_to }: {
1036
+ threshold: u32;
1037
+ extend_to: u32;
1038
+ }, txnOptions?: {
1016
1039
  /**
1017
1040
  * The fee to pay for the transaction. Default: BASE_FEE
1018
1041
  */
@@ -1025,20 +1048,25 @@ export interface Client {
1025
1048
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1026
1049
  */
1027
1050
  simulate?: boolean;
1028
- }) => Promise<AssembledTransaction<Option<string>>>;
1051
+ }) => Promise<AssembledTransaction<null>>;
1029
1052
  /**
1030
- * Construct and simulate a transfer_ownership transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1031
- * Transfers ownership immediately to a new address.
1053
+ * 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.
1054
+ * Sets TTL configs for instance and persistent storage.
1032
1055
  *
1033
- * Use with caution - if you transfer to a wrong address, ownership is lost forever.
1034
- * Consider using `propose_ownership_transfer` instead.
1056
+ * - `None` values remove the corresponding config (disables auto-extension for that type)
1057
+ * - Validates that `threshold <= extend_to <= MAX_TTL`
1058
+ *
1059
+ * # Arguments
1060
+ * - `instance` - TTL config for instance storage
1061
+ * - `persistent` - TTL config for persistent storage
1035
1062
  *
1036
1063
  * # Panics
1037
- * - `OwnerNotSet` if no owner is currently set
1038
- * - `TransferInProgress` if a 2-step transfer is in progress
1064
+ * - `TtlConfigFrozen` if configs are frozen
1065
+ * - `InvalidTtlConfig` if validation fails
1039
1066
  */
1040
- transfer_ownership: ({ new_owner }: {
1041
- new_owner: string;
1067
+ set_ttl_configs: ({ instance, persistent }: {
1068
+ instance: Option<TtlConfig>;
1069
+ persistent: Option<TtlConfig>;
1042
1070
  }, txnOptions?: {
1043
1071
  /**
1044
1072
  * The fee to pay for the transaction. Default: BASE_FEE
@@ -1054,27 +1082,10 @@ export interface Client {
1054
1082
  simulate?: boolean;
1055
1083
  }) => Promise<AssembledTransaction<null>>;
1056
1084
  /**
1057
- * Construct and simulate a propose_ownership_transfer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1058
- * Proposes an ownership transfer to a new address.
1059
- *
1060
- * The new owner must call `accept_ownership()` within `ttl` ledgers
1061
- * to complete the transfer. The pending transfer will automatically expire after.
1062
- *
1063
- * # Arguments
1064
- * - `new_owner` - The proposed new owner
1065
- * - `ttl` - Number of ledgers the new owner has to accept.
1066
- * Use `0` to cancel a pending transfer (new_owner must match pending).
1067
- *
1068
- * # Panics
1069
- * - `OwnerNotSet` if no owner is currently set
1070
- * - `NoPendingTransfer` when cancelling and no pending transfer exists
1071
- * - `InvalidTtl` if ttl exceeds max TTL
1072
- * - `InvalidPendingOwner` when cancelling with wrong new_owner address
1085
+ * Construct and simulate a ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1086
+ * Returns the current TTL configs as (instance_config, persistent_config).
1073
1087
  */
1074
- propose_ownership_transfer: ({ new_owner, ttl }: {
1075
- new_owner: string;
1076
- ttl: u32;
1077
- }, txnOptions?: {
1088
+ ttl_configs: (txnOptions?: {
1078
1089
  /**
1079
1090
  * The fee to pay for the transaction. Default: BASE_FEE
1080
1091
  */
@@ -1087,17 +1098,18 @@ export interface Client {
1087
1098
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1088
1099
  */
1089
1100
  simulate?: boolean;
1090
- }) => Promise<AssembledTransaction<null>>;
1101
+ }) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
1091
1102
  /**
1092
- * Construct and simulate a accept_ownership transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1093
- * Accepts a pending 2-step ownership transfer.
1103
+ * Construct and simulate a freeze_ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1104
+ * Permanently freezes TTL configs, preventing any future modifications.
1094
1105
  *
1095
- * Must be called by the pending owner before the TTL expires.
1106
+ * This is irreversible and provides immutability guarantees to users.
1107
+ * Emits `TtlConfigsFrozen` event.
1096
1108
  *
1097
1109
  * # Panics
1098
- * - `NoPendingTransfer` if there is no pending transfer (or it expired)
1110
+ * - `TtlConfigAlreadyFrozen` if already frozen
1099
1111
  */
1100
- accept_ownership: (txnOptions?: {
1112
+ freeze_ttl_configs: (txnOptions?: {
1101
1113
  /**
1102
1114
  * The fee to pay for the transaction. Default: BASE_FEE
1103
1115
  */
@@ -1112,14 +1124,10 @@ export interface Client {
1112
1124
  simulate?: boolean;
1113
1125
  }) => Promise<AssembledTransaction<null>>;
1114
1126
  /**
1115
- * Construct and simulate a renounce_ownership transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1116
- * Permanently renounces ownership.
1117
- *
1118
- * # Panics
1119
- * - `OwnerNotSet` if no owner is currently set
1120
- * - `TransferInProgress` if a 2-step transfer is in progress (cancel it first)
1127
+ * Construct and simulate a is_ttl_configs_frozen transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1128
+ * Returns whether TTL configs are frozen.
1121
1129
  */
1122
- renounce_ownership: (txnOptions?: {
1130
+ is_ttl_configs_frozen: (txnOptions?: {
1123
1131
  /**
1124
1132
  * The fee to pay for the transaction. Default: BASE_FEE
1125
1133
  */
@@ -1132,7 +1140,7 @@ export interface Client {
1132
1140
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1133
1141
  */
1134
1142
  simulate?: boolean;
1135
- }) => Promise<AssembledTransaction<null>>;
1143
+ }) => Promise<AssembledTransaction<boolean>>;
1136
1144
  }
1137
1145
  export declare class Client extends ContractClient {
1138
1146
  readonly options: ContractClientOptions;
@@ -1173,16 +1181,16 @@ export declare class Client extends ContractClient {
1173
1181
  fee_recipient: (json: string) => AssembledTransaction<string>;
1174
1182
  whitelisted_caller: (json: string) => AssembledTransaction<string>;
1175
1183
  authorizer: (json: string) => AssembledTransaction<string>;
1176
- set_ttl_configs: (json: string) => AssembledTransaction<null>;
1177
- ttl_configs: (json: string) => AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>;
1178
- freeze_ttl_configs: (json: string) => AssembledTransaction<null>;
1179
- is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
1180
- extend_instance_ttl: (json: string) => AssembledTransaction<null>;
1181
1184
  owner: (json: string) => AssembledTransaction<Option<string>>;
1182
1185
  pending_owner: (json: string) => AssembledTransaction<Option<string>>;
1183
1186
  transfer_ownership: (json: string) => AssembledTransaction<null>;
1184
1187
  propose_ownership_transfer: (json: string) => AssembledTransaction<null>;
1185
1188
  accept_ownership: (json: string) => AssembledTransaction<null>;
1186
1189
  renounce_ownership: (json: string) => AssembledTransaction<null>;
1190
+ extend_instance_ttl: (json: string) => AssembledTransaction<null>;
1191
+ set_ttl_configs: (json: string) => AssembledTransaction<null>;
1192
+ ttl_configs: (json: string) => AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>;
1193
+ freeze_ttl_configs: (json: string) => AssembledTransaction<null>;
1194
+ is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
1187
1195
  };
1188
1196
  }