@layerzerolabs/protocol-stellar-v2 0.2.20 → 0.2.22

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 (198) hide show
  1. package/.turbo/turbo-build.log +783 -802
  2. package/.turbo/turbo-lint.log +320 -157
  3. package/.turbo/turbo-test.log +1414 -1457
  4. package/Cargo.lock +109 -108
  5. package/Cargo.toml +32 -18
  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 +2 -2
  9. package/contracts/common-macros/src/lib.rs +27 -10
  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/snapshots/common_macros__tests__auth__snapshot_generated_multisig_code.snap +6 -12
  13. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_ownable_code.snap +12 -17
  14. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_configurable__snapshot_generated_ttl_configurable_code.snap +2 -7
  15. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__upgradeable__snapshot_generated_upgradeable_code.snap +20 -9
  16. package/contracts/common-macros/src/tests/upgradeable.rs +26 -4
  17. package/contracts/common-macros/src/ttl_configurable.rs +2 -10
  18. package/contracts/common-macros/src/ttl_extendable.rs +2 -10
  19. package/contracts/common-macros/src/upgradeable.rs +56 -15
  20. package/contracts/common-macros/src/utils.rs +0 -9
  21. package/contracts/endpoint-v2/src/lib.rs +3 -2
  22. package/contracts/endpoint-v2/src/tests/endpoint_v2/clear.rs +2 -2
  23. package/contracts/endpoint-v2/src/tests/endpoint_v2/lz_receive_alert.rs +3 -3
  24. package/contracts/endpoint-v2/src/tests/endpoint_v2/send.rs +4 -4
  25. package/contracts/endpoint-v2/src/tests/endpoint_v2/set_delegate.rs +17 -5
  26. package/contracts/endpoint-v2/src/tests/endpoint_v2/set_zro.rs +4 -4
  27. package/contracts/endpoint-v2/src/tests/endpoint_v2/verify.rs +2 -2
  28. package/contracts/endpoint-v2/src/tests/message_lib_manager/register_library.rs +2 -2
  29. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_receive_lib_timeout.rs +6 -6
  30. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_receive_library.rs +67 -37
  31. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_send_library.rs +5 -5
  32. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_receive_library.rs +44 -54
  33. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_receive_library_timeout.rs +7 -7
  34. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_send_library.rs +8 -8
  35. package/contracts/endpoint-v2/src/tests/messaging_channel/burn.rs +3 -3
  36. package/contracts/endpoint-v2/src/tests/messaging_channel/nilify.rs +4 -4
  37. package/contracts/endpoint-v2/src/tests/messaging_channel/skip.rs +3 -3
  38. package/contracts/endpoint-v2/src/tests/messaging_composer/clear_compose.rs +2 -2
  39. package/contracts/endpoint-v2/src/tests/messaging_composer/lz_compose_alert.rs +3 -3
  40. package/contracts/endpoint-v2/src/tests/messaging_composer/send_compose.rs +2 -2
  41. package/contracts/layerzero-views/Cargo.toml +0 -1
  42. package/contracts/layerzero-views/src/layerzero_view.rs +1 -13
  43. package/contracts/macro-integration-tests/Cargo.toml +5 -15
  44. package/contracts/macro-integration-tests/tests/runtime/oapp/mod.rs +48 -0
  45. package/contracts/macro-integration-tests/tests/runtime/oapp/oapp_core.rs +170 -0
  46. package/contracts/macro-integration-tests/tests/runtime/oapp/options_type3.rs +154 -0
  47. package/contracts/macro-integration-tests/tests/runtime/oapp/receiver.rs +338 -0
  48. package/contracts/macro-integration-tests/tests/runtime/oapp/sender.rs +435 -0
  49. package/contracts/macro-integration-tests/tests/runtime.rs +1 -0
  50. package/contracts/macro-integration-tests/tests/ui/oapp/fail/custom_wrong_value.rs +8 -0
  51. package/contracts/macro-integration-tests/tests/ui/oapp/fail/custom_wrong_value.stderr +5 -0
  52. package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_lz_receive_internal.rs +8 -0
  53. package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_lz_receive_internal.stderr +71 -0
  54. package/contracts/macro-integration-tests/tests/ui/oapp/fail/non_struct_input.rs +10 -0
  55. package/contracts/macro-integration-tests/tests/ui/oapp/fail/non_struct_input.stderr +5 -0
  56. package/contracts/macro-integration-tests/tests/ui/oapp/fail/unknown_custom_option.rs +8 -0
  57. package/contracts/macro-integration-tests/tests/ui/oapp/fail/unknown_custom_option.stderr +5 -0
  58. package/contracts/macro-integration-tests/tests/ui/oapp/fail/wrong_key.rs +8 -0
  59. package/contracts/macro-integration-tests/tests/ui/oapp/fail/wrong_key.stderr +5 -0
  60. package/contracts/macro-integration-tests/tests/ui/oapp/pass/custom_all.rs +38 -0
  61. package/contracts/macro-integration-tests/tests/ui/oapp/pass/custom_single_trait.rs +96 -0
  62. package/contracts/macro-integration-tests/tests/ui/oapp/pass/minimal_contract.rs +64 -0
  63. package/contracts/macro-integration-tests/tests/ui/oapp/pass/struct_with_fields.rs +46 -0
  64. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.stderr +8 -0
  65. package/contracts/macro-integration-tests/tests/ui/ownable/pass/namespacing_and_imports.rs +1 -1
  66. package/contracts/macro-integration-tests/tests/ui/ownable/pass/only_auth_env_param_variants.rs +1 -1
  67. package/contracts/macro-integration-tests/tests/ui_oapp.rs +11 -0
  68. package/contracts/message-libs/message-lib-common/Cargo.toml +0 -1
  69. package/contracts/message-libs/message-lib-common/src/errors.rs +1 -1
  70. package/contracts/message-libs/treasury/Cargo.toml +0 -2
  71. package/contracts/message-libs/treasury/src/tests/treasury_tests.rs +2 -2
  72. package/contracts/message-libs/uln-302/src/tests/receive_uln302/effective_receive_uln_config.rs +2 -2
  73. package/contracts/message-libs/uln-302/src/tests/receive_uln302/set_default_receive_uln_configs.rs +2 -2
  74. package/contracts/message-libs/uln-302/src/tests/receive_uln302/verify.rs +2 -2
  75. package/contracts/message-libs/uln-302/src/tests/send_uln302/effective_executor_config.rs +2 -2
  76. package/contracts/message-libs/uln-302/src/tests/send_uln302/effective_send_uln_config.rs +2 -2
  77. package/contracts/message-libs/uln-302/src/tests/send_uln302/send.rs +7 -27
  78. package/contracts/message-libs/uln-302/src/tests/send_uln302/set_default_executor_configs.rs +2 -2
  79. package/contracts/message-libs/uln-302/src/tests/send_uln302/set_default_send_uln_configs.rs +2 -2
  80. package/contracts/oapps/counter/Cargo.toml +4 -6
  81. package/contracts/oapps/counter/integration_tests/utils.rs +19 -12
  82. package/contracts/oapps/oapp/src/errors.rs +1 -1
  83. package/contracts/oapps/oapp/src/interfaces/mod.rs +3 -0
  84. package/contracts/oapps/oapp/src/interfaces/oapp_msg_inspector.rs +47 -0
  85. package/contracts/oapps/oapp/src/lib.rs +1 -0
  86. package/contracts/oapps/oapp/src/macro_tests/test_macros.rs +4 -4
  87. package/contracts/oapps/oapp/src/oapp_core.rs +5 -5
  88. package/contracts/oapps/oapp/src/oapp_options_type3.rs +12 -4
  89. package/contracts/oapps/oapp/src/oapp_receiver.rs +14 -9
  90. package/contracts/oapps/oapp/src/tests/mod.rs +4 -4
  91. package/contracts/oapps/oapp/src/tests/{test_oapp_core.rs → oapp_core.rs} +4 -4
  92. package/contracts/oapps/oapp/src/tests/{test_oapp_options_type3.rs → oapp_options_type3.rs} +3 -4
  93. package/contracts/oapps/oapp-macros/Cargo.toml +8 -4
  94. package/contracts/oapps/oapp-macros/src/generators.rs +9 -34
  95. package/contracts/oapps/oapp-macros/src/lib.rs +3 -0
  96. package/contracts/oapps/oapp-macros/src/tests/mod.rs +2 -0
  97. package/contracts/oapps/oapp-macros/src/tests/oapp.rs +88 -0
  98. package/contracts/oapps/oapp-macros/src/tests/parse_custom_impls.rs +86 -0
  99. package/contracts/oapps/oapp-macros/src/tests/snapshots/oapp_macros__tests__oapp__snapshot_generate_oapp.snap +103 -0
  100. package/contracts/oapps/oft/integration-tests/utils.rs +28 -8
  101. package/contracts/oapps/oft/src/extensions/oft_fee.rs +136 -74
  102. package/contracts/oapps/oft/src/extensions/pausable.rs +44 -10
  103. package/contracts/oapps/oft/src/extensions/rate_limiter.rs +170 -130
  104. package/contracts/oapps/oft/src/oft.rs +19 -12
  105. package/contracts/oapps/oft/src/oft_types/lock_unlock.rs +1 -1
  106. package/contracts/oapps/oft/src/oft_types/mint_burn.rs +1 -1
  107. package/contracts/oapps/oft-core/Cargo.toml +1 -4
  108. package/contracts/oapps/oft-core/integration-tests/setup.rs +2 -2
  109. package/contracts/oapps/oft-core/integration-tests/utils.rs +21 -3
  110. package/contracts/oapps/oft-core/src/errors.rs +3 -2
  111. package/contracts/oapps/oft-core/src/events.rs +6 -0
  112. package/contracts/oapps/oft-core/src/lib.rs +1 -1
  113. package/contracts/oapps/oft-core/src/oft_core.rs +115 -60
  114. package/contracts/oapps/oft-core/src/storage.rs +7 -3
  115. package/contracts/oapps/oft-core/src/tests/mod.rs +1 -0
  116. package/contracts/oapps/oft-core/src/tests/test_decimals.rs +37 -2
  117. package/contracts/oapps/oft-core/src/tests/test_lz_receive.rs +2 -2
  118. package/contracts/oapps/oft-core/src/tests/test_msg_inspector.rs +323 -0
  119. package/contracts/oapps/oft-core/src/tests/test_send.rs +2 -2
  120. package/contracts/oapps/oft-core/src/tests/test_utils.rs +59 -14
  121. package/contracts/utils/Cargo.toml +0 -1
  122. package/contracts/utils/src/errors.rs +1 -1
  123. package/contracts/utils/src/multisig.rs +17 -8
  124. package/contracts/utils/src/ownable.rs +6 -6
  125. package/contracts/utils/src/testing_utils.rs +124 -54
  126. package/contracts/utils/src/tests/multisig.rs +12 -12
  127. package/contracts/utils/src/tests/ownable.rs +6 -6
  128. package/contracts/utils/src/tests/testing_utils.rs +50 -167
  129. package/contracts/utils/src/tests/ttl_configurable.rs +5 -5
  130. package/contracts/utils/src/tests/upgradeable.rs +1 -1
  131. package/contracts/utils/src/ttl_configurable.rs +10 -4
  132. package/contracts/utils/src/upgradeable.rs +5 -5
  133. package/contracts/workers/dvn/Cargo.toml +5 -6
  134. package/contracts/workers/dvn/src/dvn.rs +2 -12
  135. package/contracts/workers/dvn-fee-lib/Cargo.toml +1 -1
  136. package/contracts/workers/dvn-fee-lib/src/dvn_fee_lib.rs +37 -19
  137. package/contracts/workers/dvn-fee-lib/src/lib.rs +12 -2
  138. package/contracts/workers/dvn-fee-lib/src/tests/dvn_fee_lib.rs +15 -13
  139. package/contracts/workers/executor/Cargo.toml +3 -0
  140. package/contracts/workers/executor/src/executor.rs +2 -12
  141. package/contracts/workers/executor/src/lib.rs +2 -2
  142. package/contracts/workers/executor/src/tests/auth.rs +394 -0
  143. package/contracts/workers/executor/src/tests/executor.rs +410 -0
  144. package/contracts/workers/executor/src/tests/mod.rs +3 -0
  145. package/contracts/workers/executor/src/tests/setup.rs +250 -0
  146. package/contracts/workers/executor-fee-lib/Cargo.toml +5 -0
  147. package/contracts/workers/executor-fee-lib/src/executor_fee_lib.rs +1 -12
  148. package/contracts/workers/executor-fee-lib/src/lib.rs +8 -2
  149. package/contracts/workers/executor-helper/Cargo.toml +0 -1
  150. package/contracts/workers/price-feed/Cargo.toml +5 -0
  151. package/contracts/workers/price-feed/src/lib.rs +9 -4
  152. package/contracts/workers/price-feed/src/price_feed.rs +1 -11
  153. package/contracts/workers/worker/src/errors.rs +1 -1
  154. package/contracts/workers/worker/src/tests/setup.rs +1 -1
  155. package/contracts/workers/worker/src/tests/worker.rs +55 -41
  156. package/contracts/workers/worker/src/worker.rs +34 -25
  157. package/docs/error-spec.md +55 -0
  158. package/docs/layerzero-v2-on-stellar.md +447 -0
  159. package/docs/oapp-guide.md +212 -0
  160. package/docs/oft-guide.md +314 -0
  161. package/package.json +3 -3
  162. package/sdk/.turbo/turbo-test.log +260 -257
  163. package/sdk/dist/generated/bml.d.ts +3 -3
  164. package/sdk/dist/generated/bml.js +4 -4
  165. package/sdk/dist/generated/counter.d.ts +295 -295
  166. package/sdk/dist/generated/counter.js +43 -43
  167. package/sdk/dist/generated/dvn.d.ts +91 -91
  168. package/sdk/dist/generated/dvn.js +24 -24
  169. package/sdk/dist/generated/dvn_fee_lib.d.ts +92 -92
  170. package/sdk/dist/generated/dvn_fee_lib.js +25 -25
  171. package/sdk/dist/generated/endpoint.d.ts +99 -99
  172. package/sdk/dist/generated/endpoint.js +16 -16
  173. package/sdk/dist/generated/executor.d.ts +91 -91
  174. package/sdk/dist/generated/executor.js +24 -24
  175. package/sdk/dist/generated/executor_fee_lib.d.ts +92 -92
  176. package/sdk/dist/generated/executor_fee_lib.js +25 -25
  177. package/sdk/dist/generated/executor_helper.d.ts +3 -3
  178. package/sdk/dist/generated/executor_helper.js +4 -4
  179. package/sdk/dist/generated/layerzero_view.d.ts +186 -186
  180. package/sdk/dist/generated/layerzero_view.js +35 -35
  181. package/sdk/dist/generated/oft.d.ts +366 -352
  182. package/sdk/dist/generated/oft.js +74 -79
  183. package/sdk/dist/generated/price_feed.d.ts +198 -198
  184. package/sdk/dist/generated/price_feed.js +39 -39
  185. package/sdk/dist/generated/sml.d.ts +99 -99
  186. package/sdk/dist/generated/sml.js +16 -16
  187. package/sdk/dist/generated/treasury.d.ts +99 -99
  188. package/sdk/dist/generated/treasury.js +16 -16
  189. package/sdk/dist/generated/uln302.d.ts +99 -99
  190. package/sdk/dist/generated/uln302.js +16 -16
  191. package/sdk/dist/generated/upgrader.d.ts +3 -3
  192. package/sdk/dist/generated/upgrader.js +3 -3
  193. package/sdk/package.json +1 -1
  194. package/sdk/test/suites/localnet.ts +84 -20
  195. package/contracts/ERROR_SPEC.md +0 -51
  196. package/contracts/endpoint-v2/ARCHITECTURE.md +0 -233
  197. /package/contracts/oapps/oapp/src/tests/{test_oapp_receiver.rs → oapp_receiver.rs} +0 -0
  198. /package/contracts/oapps/oapp/src/tests/{test_oapp_sender.rs → oapp_sender.rs} +0 -0
@@ -6,14 +6,14 @@ export * as contract from '@stellar/stellar-sdk/contract';
6
6
  export * as rpc from '@stellar/stellar-sdk/rpc';
7
7
  /**
8
8
  * Embedded WASM bytecode (base64-encoded)
9
- * Size: 27376 bytes (26.73 KB)
9
+ * Size: 27461 bytes (26.82 KB)
10
10
  */
11
- export declare const WASM_BASE64 = "AGFzbQEAAAABfxZgAn5+AX5gAX4BfmADfn5+AX5gAAF+YAR+fn5+AX5gAAF/YAF/AGACf38AYAF/AX5gAn5+AX9gAABgAn5/AGABfgBgA39/fwBgAn9+AGACf38BfmAEf39/fwF+YAJ+fgBgA39+fgBgBn9+fn5+fwBgBH9+fn8AYAV/fn5+fgACfxUBbAExAAABYQEwAAEBZAFfAAIBbAFfAAIBeAExAAABbAEyAAABeAE3AAMBeAEwAAABbAE3AAQBaQE4AAEBaQE3AAEBYgFqAAABaQE2AAABbQE5AAIBdgFnAAABeAEzAAMBeAE4AAMBbAEwAAABbAE4AAABeAE1AAEBbQFhAAQDSkkFBgcICQoDAwYLCgYMCAYIDQ4EDgUFBgAPCgEHBwwBDwEQAQEAAgMDAwMADgUIAwcHAwMAAwMBEQAKEgMKAwoNDg0NExQVFRQVBQMBABEGIQR/AUGAgMAAC38AQcKBwAALfwBB3oPAAAt/AEHgg8AACweaAxkGbWVtb3J5AgAHZ2V0X2ZlZQAnDV9fY29uc3RydWN0b3IALxFzZXRfbmF0aXZlX2ZlZV9icAAzD3NldF9mZWVfZW5hYmxlZAA3D3NldF96cm9fZmVlX2xpYgA4DndpdGhkcmF3X3Rva2VuADoNbmF0aXZlX2ZlZV9icAA7C2ZlZV9lbmFibGVkADwLenJvX2ZlZV9saWIAPQphdXRob3JpemVyAD4Pc2V0X3R0bF9jb25maWdzAD8LdHRsX2NvbmZpZ3MAQxJmcmVlemVfdHRsX2NvbmZpZ3MARhVpc190dGxfY29uZmlnc19mcm96ZW4ARxNleHRlbmRfaW5zdGFuY2VfdHRsAEgFb3duZXIASQ1wZW5kaW5nX293bmVyAEoSdHJhbnNmZXJfb3duZXJzaGlwAEsacHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXIATRBhY2NlcHRfb3duZXJzaGlwAFAScmVub3VuY2Vfb3duZXJzaGlwAFIBXwMBCl9fZGF0YV9lbmQDAgtfX2hlYXBfYmFzZQMDCtNJSYsBAgJ/AX4jgICAgABBEGsiACSAgICAACAAQQRqEJaAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBCXgICAAAtBACEBAkBBABCYgICAACICQgIQmYCAgABFDQBBASEBAkACQCACQgIQgICAgACnQf8BcQ4CAQIACwALQQAhAQsgAEEQaiSAgICAACABCwwAIABBARDEgICAAAsbACAArUIghkIEhCABrUIghkIEhBCSgICAABoLwgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkACQAJAIABB/wFxDgMAAQIACyABQcaDwIAAQQYQpYCAgAAgASgCAA0DIAEgASkDCBCmgICAAAwCCyABQcyDwIAAQQgQpYCAgAAgASgCAA0CIAEgASkDCBCmgICAAAwBCyABQdSDwIAAQQoQpYCAgAAgASgCAA0BIAEgASkDCBCmgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACCw8AIAAgARCRgICAAEIBUQsPABCbgICAABCBgICAABoLZgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCWgICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQl4CAgAALIAAQnYCAgAAgACkDCCEBIAApAwBBiggQnoCAgAAgAEEQaiSAgICAACABC0oCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQnYCAgAAgACkDCCEBIAApAwBBiggQnoCAgAAgARCBgICAABogAEEQaiSAgICAACABC1ABAX8jgICAgABBEGsiASSAgICAACABQQRqEJaAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCXgICAAAsgABCjgICAACABQRBqJICAgIAACykAAkAgAKdBAXFFDQAPCyABQfp3aq1CIIZCg4CAgOCAAXwQoYCAgAAAC0IBAX8jgICAgABBEGsiACSAgICAACAAEKCAgIAAAkAgACkDAFANAEKDgICAsIEBEKGAgIAAAAsgAEEQaiSAgICAAAuTAQIBfwJ+I4CAgIAAQRBrIgEkgICAgAAgAUEEahCWgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQl4CAgAALQgAhAgJAAkBBARCigICAACIDQgAQmYCAgABFDQAgA0IAEICAgIAAIgJC/wGDQs0AUg0BIAAgAjcDCEIBIQILIAAgAjcDACABQRBqJICAgIAADwsACwsAIAAQk4CAgAAaC5IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAIABBAXFFDQAgAUHZgsCAAEEMEKWAgIAAIAEoAgANAiABIAEpAwgQpoCAgAAMAQsgAUHUgsCAAEEFEKWAgIAAIAEoAgANASABIAEpAwgQpoCAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgtNAQJ+QgAhAQJAAkBBABCigICAACICQgIQmYCAgABFDQAgAkICEICAgIAAIgFC/wGDQs0AUg0BIAAgATcDCEIBIQELIAAgATcDAA8LAAvCAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkAgAEH/AXEOAwABAgALIAFBpIHAgABBCxClgICAACABKAIADQMgASABKQMIEKaAgIAADAILIAFBr4HAgABBChClgICAACABKAIADQIgASABKQMIEKaAgIAADAELIAFBuYHAgABBCRClgICAACABKAIADQEgASABKQMIEKaAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILUQIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABIAIQ1ICAgABCASEEAkAgAygCAA0AIAAgAykDCDcDCEIAIQQLIAAgBDcDACADQRBqJICAgIAAC0QBAX8jgICAgABBEGsiAiSAgICAACACIAE3AwggAkEIakEBEK2AgIAAIQEgAEIANwMAIAAgATcDCCACQRBqJICAgIAAC94EAgJ/A34jgICAgABB8ABrIgQkgICAgAACQAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgBEHQAGogAhCogICAACAEKAJQQQFGDQBBASADp0H/AXEiBUEAR0EBdCAFQQFGGyIFQQJGDQAgBCkDaCEGIAQpA2AhByAEQdAAahCWgICAAAJAIAQoAlBBAUcNACAEKAJUIAQoAlgQl4CAgAALAkAgBkJ/Vw0AQgAhA0IAIQIQqYCAgABFDQIgBEEANgIsIARBEGogByAGEKqAgIAArUIAIARBLGoQ2ICAgAACQCAEKAIsDQAgBCAEKQMQIAQpAxhCkM4AQgAQ24CAgAAgBCkDCCECIAQpAwAhAyAFQQFxRQ0DIARB0ABqEKuAgIAAAkAgBCgCUEUNACAEKQNYIQggByAGEKyAgIAAIQYgBCADIAIQrICAgAA3A0ggBCAGNwNAIAQgAUKEgICAcIM3AzggBCAANwMwQQAhBQJAA0ACQCAFQSBHDQBBACEFAkADQCAFQSBGDQEgBEHQAGogBWogBEEwaiAFaikDADcDACAFQQhqIQUMAAsLIARB0ABqIAhCjtTqtZDXsgEgBEHQAGpBBBCtgICAABCCgICAABCogICAACAEKAJQQQFGDQQgBCkDaCICQn9XDQIgBCkDYCEDDAcLIARB0ABqIAVqQgI3AwAgBUEIaiEFDAALC0KDgICAMBChgICAAAALQoOAgIDAABChgICAAAALEK6AgIAAAAtCg4CAgCAQoYCAgAAACwALIAMgAhCsgICAACECIARB8ABqJICAgIAAIAILfQIBfwF+AkACQAJAAkAgAadB/wFxIgJBxQBGDQAgAkELRw0CIAAgAUI/hzcDGCAAIAFCCIc3AxAMAQsgARCJgICAACEDIAEQioCAgAAhASAAIAM3AxggACABNwMQC0IAIQEMAQsgAEKDkICAgAE3AwhCASEBCyAAIAE3AwALiwECAn8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQloCAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMEJeAgIAAC0EAIQECQEEBEKSAgIAAIgJCAhCZgICAAEUNAEEBIQECQAJAIAJCAhCAgICAAKdB/wFxDgIBAgALAAtBACEBCyAAQRBqJICAgIAAIAELigECAn8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQloCAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMEJeAgIAAC0EAIQECQAJAQQAQpICAgAAiAkICEJmAgIAARQ0AIAJCAhCAgICAACICQv8Bg0IEUg0BIAJCIIinIQELIABBEGokgICAgAAgAQ8LAAuTAQIBfwJ+I4CAgIAAQRBrIgEkgICAgAAgAUEEahCWgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQl4CAgAALQgAhAgJAAkBBAhCkgICAACIDQgIQmYCAgABFDQAgA0ICEICAgIAAIgJC/wGDQs0AUg0BIAAgAjcDCEIBIQILIAAgAjcDACABQRBqJICAgIAADwsAC0UAAkAgAEKAgICAgICAwAB8Qv//////////AFYNACAAIACFIAEgAEI/h4WEQgBSDQAgAEIIhkILhA8LIAEgABCMgICAAAsaACAArUIghkIEhCABrUIghkIEhBCOgICAAAsJABDTgICAAAALXQACQAJAIABC/wGDQs0AUg0AQYDLHkGA0h8QsICAgABBgMseQYDSHxCxgICAAEEAEKKAgIAAQgIQmYCAgAANASAAELKAgIAAQgIPCwALQoOAgICQgQEQoYCAgAAACw4AQQEgACABENeAgIAACw4AQQIgACABENeAgIAACw4AQQAgAEICEM+AgIAAC9IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkAgAEL/AYNCBFINABCagICAACABEJaAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBCXgICAAAsgAEKAgICAkOIJWg0BQQAQpICAgAAgAEKEgICA8P8PgyIAQgIQg4CAgAAaQYCAwIAAQREQtICAgAAQtYCAgAAhAiABIAA3AwAgAkGggMCAAEEBIAFBARC2gICAABCEgICAABogAUEQaiSAgICAAEICDwsAC0KDgICAEBChgICAAAALRQIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAiAAIAEQ1ICAgAACQCACKAIAQQFHDQAACyACKQMIIQMgAkEQaiSAgICAACADC2MDAX8BfgF/I4CAgIAAQRBrIgEkgICAgAAgASAANwMAQgIhAkEBIQMCQANAIANFDQEgA0F/aiEDIAAhAgwACwsgASACNwMIIAFBCGpBARCtgICAACEAIAFBEGokgICAgAAgAAsuAAJAIAEgA0YNAAALIACtQiCGQgSEIAKtQiCGQgSEIAGtQiCGQgSEEI2AgIAAC8ABAgJ/AX4jgICAgABBEGsiASSAgICAAAJAQQEgAKdB/wFxIgJBAEdBAXQgAkEBRhsiAkECRg0AEJqAgIAAIAEQloCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIEJeAgIAAC0EBEKSAgIAAIAKtIgBCAhCDgICAABpBqIDAgABBDxC0gICAABC1gICAACEDIAEgADcDACADQcSAwIAAQQEgAUEBELaAgIAAEISAgIAAGiABQRBqJICAgIAAQgIPCwAL4wECAX8CfiOAgICAAEEQayIBJICAgIAAAkACQCAAQgJRDQAgAEL/AYNCzQBSDQELEJqAgIAAIAEQloCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIEJeAgIAAC0ECEKSAgIAAIQICQAJAIABCAlINACACQgIQhYCAgAAaQgAhAgwBCyACIABCAhCDgICAABpCASECC0HMgMCAAEEPELSAgIAAELWAgIAAIQMgASACIAAQuYCAgAA3AwAgA0HogMCAAEEBIAFBARC2gICAABCEgICAABogAUEQaiSAgICAAEICDwsACw0AIAFCAiAAp0EBcRsLiQMDAX8CfgF/I4CAgIAAQcAAayIDJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCzQBSDQAgAyACEKiAgIAAIAMoAgBBAUYNACADKQMYIQIgAykDECEEEJqAgIAAIAMQloCAgAACQCADKAIAQQFHDQAgAygCBCADKAIIEJeAgIAACxCGgICAACEFIAMgBCACEKyAgIAANwM4IAMgATcDMCADIAU3AyhBACEGAkADQAJAIAZBGEcNAEEAIQYCQANAIAZBGEYNASADIAZqIANBKGogBmopAwA3AwAgBkEIaiEGDAALCyAAQo7u6pW+tt7zACADQQMQrYCAgAAQgoCAgABC/wGDQgJSDQJB8IDAgABBDxC0gICAABC1gICAACEFIAQgAhCsgICAACECIAMgADcDECADIAE3AwggAyACNwMAIAVBjIHAgABBAyADQQMQtoCAgAAQhICAgAAaIANBwABqJICAgIAAQgIPCyADIAZqQgI3AwAgBkEIaiEGDAALCxCugICAAAALAAsPABCqgICAAK1CIIZCBIQLCQAQqYCAgACtCz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQq4CAgAAgACkDACAAKQMIELmAgIAAIQEgAEEQaiSAgICAACABCwgAEJuAgIAAC94EAQV/I4CAgIAAQdAAayICJICAgIAAIAJBKGogABDAgICAAAJAIAIoAihBAkYNACACQQhqQQhqIAJBKGpBCGoiAygCADYCACACIAIpAig3AwggAkEoaiABEMCAgIAAIAIoAihBAkYNACACQRhqQQhqIAMoAgA2AgAgAiACKQIoNwMYIAJBKGoQloCAgAACQCACKAIoQQFHDQAgAigCLCACKAIwEJeAgIAACxCagICAAAJAAkACQBCVgICAAA0AEMGAgIAAIgNBgPuAAyADQYD7gANJGyEEIAIgAkEYajYCLCACIAJBCGo2AihBACEDA0AgA0EIRg0DAkAgAkEoaiADaigCACIFKAIAQQFxRQ0AIAUoAggiBiAESw0DIAUoAgQgBksNAwsgA0EEaiEDDAALC0KDgICA0P8AEKGAgIAAAAtCg4CAgMD/ABChgICAAAALAkACQCACKAIIQQFHDQAgAigCDCACKAIQELCAgIAADAELQQEQmICAgABCAhCFgICAABoLAkACQCACKAIYQQFHDQAgAigCHCACKAIgELGAgIAADAELQQIQmICAgABCAhCFgICAABoLIAJBKGpBCGogAkEIakEIaigCADYCACACQTxqIAJBGGpBCGooAgA2AgAgAiACKQMINwMoIAIgAikDGDcCNEGAg8CAAEEPELSAgIAAELWAgIAAIQAgAkEoahDCgICAACEBIAIgAkE0ahDCgICAADcDSCACIAE3A0AgAEGkg8CAAEECIAJBwABqQQIQtoCAgAAQhICAgAAaIAJB0ABqJICAgIAAQgIPCwALaAEBfyOAgICAAEEQayICJICAgIAAAkACQCABQgJRDQAgAkEEaiABENWAgIAAAkAgAigCBEUNACAAQQI2AgAMAgsgACACKQIINwIEIABBATYCAAwBCyAAQQA2AgALIAJBEGokgICAgAALMwECfhCPgICAACEAAkAQkICAgABCIIgiASAAQiCIIgBUDQAgAacgAKdrDwsQroCAgAAAC0MCAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABDFgICAAAJAIAEoAgBBAUcNAAALIAEpAwghAiABQRBqJICAgIAAIAILxAECAn8BfiOAgICAAEHAAGsiACSAgICAACAAQQhqEJaAgIAAAkAgACgCCEEBRw0AIAAoAgwgACgCEBCXgICAAAsgAEEIahCWgICAACAAQRRqIgFBAhDEgICAACAAQTBqIABBCGoQxYCAgAACQAJAIAAoAjANACAAKQM4IQIgAEEwaiABEMWAgIAAIAAoAjBBAUcNAQsACyAAIAApAzg3AyggACACNwMgIABBIGpBAhCtgICAACECIABBwABqJICAgIAAIAILdwICfwF+I4CAgIAAQRBrIgIkgICAgABBACEDAkACQCABEJiAgIAAIgRCAhCZgICAAEUNACACQQRqIARCAhCAgICAABDVgICAAEEBIQMgAigCBEEBRg0BIAAgAikCCDcCBAsgACADNgIAIAJBEGokgICAgAAPCwALMAACQCABKAIAQQFHDQAgACABKAIEIAEoAggQ1oCAgAAPCyAAQgA3AwAgAEICNwMIC6oBAQF/I4CAgIAAQSBrIgAkgICAgAAgAEEMahCWgICAAAJAIAAoAgxBAUcNACAAKAIQIAAoAhQQl4CAgAALEJqAgIAAAkAQlYCAgABFDQBCg4CAgOD/ABChgICAAAALQQAQmICAgABCAUICEIOAgIAAGkG0g8CAAEESELSAgIAAELWAgIAAQQRBACAAQRhqQQAQtoCAgAAQhICAgAAaIABBIGokgICAgABCAgsJABCVgICAAK0LMQACQCAAQv8Bg0IEUg0AIAFC/wGDQgRSDQAgAEIgiKcgAUIgiKcQl4CAgABCAg8LAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAEJ2AgIAAIAApAwAgACkDCBC5gICAACEBIABBEGokgICAgAAgAQs+AgF/AX4jgICAgABBEGsiACSAgICAACAAEKCAgIAAIAApAwAgACkDCBC5gICAACEBIABBEGokgICAgAAgAQt9AgF/AX4jgICAgABBEGsiASSAgICAAAJAIABC/wGDQs0AUg0AIAFBBGoQloCAgAACQCABKAIEQQFHDQAgASgCCCABKAIMEJeAgIAACxCcgICAACECEJ+AgIAAIAAQsoCAgAAgAiAAEMyAgIAAIAFBEGokgICAgABCAg8LAAthAgF/AX4jgICAgABBEGsiAiSAgICAAEHLgcCAAEEVELSAgIAAELWAgIAAIQMgAiAANwMIIAIgATcDACADQfSBwIAAQQIgAkECELaAgIAAEISAgIAAGiACQRBqJICAgIAAC90CAgF/An4jgICAgABBIGsiAiSAgICAAAJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0IEUg0AIAJBCGoQloCAgAACQCACKAIIQQFHDQAgAigCDCACKAIQEJeAgIAACxCcgICAACEDAkACQCABQv////8PVg0AIAJBCGoQoICAgAAgAikDECEBIAIpAwhBiAgQnoCAgAAgASAAEIeAgIAAUEUNAxDOgICAAAwBCxDBgICAACABQiCIp0kNA0EBIABCABDPgICAAEEBEKKAgIAAQgAgAUKEgICAcIMiASABEIiAgIAAGkGEgsCAAEEWELSAgIAAELWAgIAAIQQgAiABNwMYIAIgAzcDECACIAA3AwggBEGggsCAAEEDIAJBCGpBAxC2gICAABCEgICAABoLIAJBIGokgICAgABCAg8LAAtCg4CAgOCAARChgICAAAALQoOA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ZXRfZmVlAAAAAAQAAAAAAAAABnNlbmRlcgAAAAAAEwAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAABB0b3RhbF9uYXRpdmVfZmVlAAAACwAAAAAAAAAKcGF5X2luX3pybwAAAAAAAQAAAAEAAAALAAAAAAAAAAAAAAANX19jb25zdHJ1Y3RvcgAAAAAAAAEAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAAAAAAAjVNldHMgdGhlIG5hdGl2ZSBmZWUgcGVyY2VudGFnZSBpbiBiYXNpcyBwb2ludHMuCgojIEFyZ3VtZW50cwoqIGBuYXRpdmVfZmVlX2JwYCAtIEZlZSBwZXJjZW50YWdlIGluIGJhc2lzIHBvaW50cyAoMC0xMDAwMCwgd2hlcmUgMTAwMDAgPSAxMDAlKQAAAAAAABFzZXRfbmF0aXZlX2ZlZV9icAAAAAAAAAEAAAAAAAAADW5hdGl2ZV9mZWVfYnAAAAAAAAAEAAAAAAAAAAAAAABtRW5hYmxlcyBvciBkaXNhYmxlcyBmZWUgY29sbGVjdGlvbiBnbG9iYWxseS4KCiMgQXJndW1lbnRzCiogYGZlZV9lbmFibGVkYCAtIFdoZXRoZXIgZmVlIGNvbGxlY3Rpb24gaXMgZW5hYmxlZAAAAAAAAA9zZXRfZmVlX2VuYWJsZWQAAAAAAQAAAAAAAAALZmVlX2VuYWJsZWQAAAAAAQAAAAAAAAAAAAAAo1NldHMgb3IgcmVtb3ZlcyB0aGUgWlJPIGZlZSBsaWJyYXJ5IGZvciBjdXN0b20gWlJPIHRva2VuIGZlZSBjYWxjdWxhdGlvbnMuCgojIEFyZ3VtZW50cwoqIGB6cm9fZmVlX2xpYmAgLSBUaGUgWlJPIGZlZSBsaWJyYXJ5IGNvbnRyYWN0IGFkZHJlc3MsIG9yIGBOb25lYCB0byByZW1vdmUAAAAAD3NldF96cm9fZmVlX2xpYgAAAAABAAAAAAAAAAt6cm9fZmVlX2xpYgAAAAPoAAAAEwAAAAAAAAAAAAABN1dpdGhkcmF3cyBhbnkgdG9rZW4gKGluY2x1ZGluZyBuYXRpdmUgWExNKSBmcm9tIHRoZSBjb250cmFjdCB0byBhIHNwZWNpZmllZCBhZGRyZXNzLgoKT25seSB0aGUgY29udHJhY3Qgb3duZXIgY2FuIGV4ZWN1dGUgdGhpcyBtZXRob2QuCgojIEFyZ3VtZW50cwoqIGB0b2tlbmAgLSBUaGUgdG9rZW4gY29udHJhY3QgYWRkcmVzcyAoY2FuIGJlIG5hdGl2ZSBYTE0gb3IgYW55IG90aGVyIHRva2VuKQoqIGB0b2AgLSBUaGUgcmVjaXBpZW50IGFkZHJlc3MKKiBgYW1vdW50YCAtIFRoZSBhbW91bnQgdG8gd2l0aGRyYXcgKG11c3QgYmUgcG9zaXRpdmUpAAAAAA53aXRoZHJhd190b2tlbgAAAAAAAwAAAAAAAAAFdG9rZW4AAAAAAAATAAAAAAAAAAJ0bwAAAAAAEwAAAAAAAAAGYW1vdW50AAAAAAALAAAAAAAAAAAAAAAyUmV0dXJucyB0aGUgbmF0aXZlIGZlZSBwZXJjZW50YWdlIGluIGJhc2lzIHBvaW50cy4AAAAAAA1uYXRpdmVfZmVlX2JwAAAAAAAAAAAAAAEAAAAEAAAAAAAAACpSZXR1cm5zIHdoZXRoZXIgZmVlIGNvbGxlY3Rpb24gaXMgZW5hYmxlZC4AAAAAAAtmZWVfZW5hYmxlZAAAAAAAAAAAAQAAAAEAAAAAAAAAK1JldHVybnMgdGhlIFpSTyBmZWUgbGlicmFyeSBhZGRyZXNzIGlmIHNldC4AAAAAC3pyb19mZWVfbGliAAAAAAAAAAABAAAD6AAAABMAAAAAAAAAAAAAAAphdXRob3JpemVyAAAAAAAAAAAAAQAAABMAAAACAAAAAAAAAAAAAAAPVHJlYXN1cnlTdG9yYWdlAAAAAAMAAAAAAAAAAAAAAAtOYXRpdmVGZWVCcAAAAAAAAAAAAAAAAApGZWVFbmFibGVkAAAAAAAAAAAAAAAAAAlacm9GZWVMaWIAAAAAAAAAAAABj1NldHMgVFRMIGNvbmZpZ3MgZm9yIGluc3RhbmNlIGFuZCBwZXJzaXN0ZW50IHN0b3JhZ2UuCgotIGBOb25lYCB2YWx1ZXMgcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGNvbmZpZyAoZGlzYWJsZXMgYXV0by1leHRlbnNpb24gZm9yIHRoYXQgdHlwZSkKLSBWYWxpZGF0ZXMgdGhhdCBgdGhyZXNob2xkIDw9IGV4dGVuZF90byA8PSBNQVhfVFRMYAoKIyBBcmd1bWVudHMKLSBgaW5zdGFuY2VgIC0gVFRMIGNvbmZpZyBmb3IgaW5zdGFuY2Ugc3RvcmFnZQotIGBwZXJzaXN0ZW50YCAtIFRUTCBjb25maWcgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZQoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnRnJvemVuYCBpZiBjb25maWdzIGFyZSBmcm96ZW4KLSBgSW52YWxpZFR0bENvbmZpZ2AgaWYgdmFsaWRhdGlvbiBmYWlscwAAAAAPc2V0X3R0bF9jb25maWdzAAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAADhUGVybWFuZW50bHkgZnJlZXplcyBUVEwgY29uZmlncywgcHJldmVudGluZyBhbnkgZnV0dXJlIG1vZGlmaWNhdGlvbnMuCgpUaGlzIGlzIGlycmV2ZXJzaWJsZSBhbmQgcHJvdmlkZXMgaW1tdXRhYmlsaXR5IGd1YXJhbnRlZXMgdG8gdXNlcnMuCkVtaXRzIGBUdGxDb25maWdzRnJvemVuYCBldmVudC4KCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0FscmVhZHlGcm96ZW5gIGlmIGFscmVhZHkgZnJvemVuAAAAAAAAEmZyZWV6ZV90dGxfY29uZmlncwAAAAAAAAAAAAAAAAAAAAAAJ1JldHVybnMgd2hldGhlciBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAKVFeHRlbmRzIHRoZSBpbnN0YW5jZSBUVEwuCgojIEFyZ3VtZW50cwoKKiBgdGhyZXNob2xkYCAtIFRoZSB0aHJlc2hvbGQgdG8gZXh0ZW5kIHRoZSBUVEwgKGlmIGN1cnJlbnQgVFRMIGlzIGJlbG93IHRoaXMsIGV4dGVuZCkuCiogYGV4dGVuZF90b2AgLSBUaGUgVFRMIHRvIGV4dGVuZCB0by4AAAAAAAATZXh0ZW5kX2luc3RhbmNlX3R0bAAAAAACAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAlleHRlbmRfdG8AAAAAAAAEAAAAAAAAAAAAAAA+UmV0dXJucyB0aGUgY3VycmVudCBvd25lciBhZGRyZXNzLCBvciBOb25lIGlmIG5vIG93bmVyIGlzIHNldC4AAAAAAAVvd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAAAWVJldHVybnMgdGhlIHBlbmRpbmcgb3duZXIgYWRkcmVzcyBmb3IgMi1zdGVwIHRyYW5zZmVyLCBvciBOb25lIGlmIG5vIHRyYW5zZmVyIGlzIHBlbmRpbmcuAAAAAAAADXBlbmRpbmdfb3duZXIAAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAStUcmFuc2ZlcnMgb3duZXJzaGlwIGltbWVkaWF0ZWx5IHRvIGEgbmV3IGFkZHJlc3MuCgpVc2Ugd2l0aCBjYXV0aW9uIC0gaWYgeW91IHRyYW5zZmVyIHRvIGEgd3JvbmcgYWRkcmVzcywgb3duZXJzaGlwIGlzIGxvc3QgZm9yZXZlci4KQ29uc2lkZXIgdXNpbmcgYHByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyYCBpbnN0ZWFkLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgVHJhbnNmZXJJblByb2dyZXNzYCBpZiBhIDItc3RlcCB0cmFuc2ZlciBpcyBpbiBwcm9ncmVzcwAAAAASdHJhbnNmZXJfb3duZXJzaGlwAAAAAAABAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAJcUHJvcG9zZXMgYW4gb3duZXJzaGlwIHRyYW5zZmVyIHRvIGEgbmV3IGFkZHJlc3MuCgpUaGUgbmV3IG93bmVyIG11c3QgY2FsbCBgYWNjZXB0X293bmVyc2hpcCgpYCB3aXRoaW4gYHR0bGAgbGVkZ2Vycwp0byBjb21wbGV0ZSB0aGUgdHJhbnNmZXIuIFRoZSBwZW5kaW5nIHRyYW5zZmVyIHdpbGwgYXV0b21hdGljYWxseSBleHBpcmUgYWZ0ZXIuCgojIEFyZ3VtZW50cwotIGBuZXdfb3duZXJgIC0gVGhlIHByb3Bvc2VkIG5ldyBvd25lcgotIGB0dGxgIC0gTnVtYmVyIG9mIGxlZGdlcnMgdGhlIG5ldyBvd25lciBoYXMgdG8gYWNjZXB0LgpVc2UgYDBgIHRvIGNhbmNlbCBhIHBlbmRpbmcgdHJhbnNmZXIgKG5ld19vd25lciBtdXN0IG1hdGNoIHBlbmRpbmcpLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIHdoZW4gY2FuY2VsbGluZyBhbmQgbm8gcGVuZGluZyB0cmFuc2ZlciBleGlzdHMKLSBgSW52YWxpZFR0bGAgaWYgdHRsIGV4Y2VlZHMgbWF4IFRUTAotIGBJbnZhbGlkUGVuZGluZ093bmVyYCB3aGVuIGNhbmNlbGxpbmcgd2l0aCB3cm9uZyBuZXdfb3duZXIgYWRkcmVzcwAAABpwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcgAAAAAAAgAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAAAAALlBY2NlcHRzIGEgcGVuZGluZyAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyLgoKTXVzdCBiZSBjYWxsZWQgYnkgdGhlIHBlbmRpbmcgb3duZXIgYmVmb3JlIHRoZSBUVEwgZXhwaXJlcy4KCiMgUGFuaWNzCi0gYE5vUGVuZGluZ1RyYW5zZmVyYCBpZiB0aGVyZSBpcyBubyBwZW5kaW5nIHRyYW5zZmVyIChvciBpdCBleHBpcmVkKQAAAAAAABBhY2NlcHRfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAApFBlcm1hbmVudGx5IHJlbm91bmNlcyBvd25lcnNoaXAuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzIChjYW5jZWwgaXQgZmlyc3QpAAAAEnJlbm91bmNlX293bmVyc2hpcAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAANRW5kcG9pbnRFcnJvcgAAAAAAABkAAAAAAAAAEUFscmVhZHlSZWdpc3RlcmVkAAAAAAAAAQAAAAAAAAANQ29tcG9zZUV4aXN0cwAAAAAAAAIAAAAAAAAAD0NvbXBvc2VOb3RGb3VuZAAAAAADAAAAAAAAABxEZWZhdWx0UmVjZWl2ZUxpYlVuYXZhaWxhYmxlAAAABAAAAAAAAAAZRGVmYXVsdFNlbmRMaWJVbmF2YWlsYWJsZQAAAAAAAAUAAAAAAAAAFUluc3VmZmljaWVudE5hdGl2ZUZlZQAAAAAAAAYAAAAAAAAAEkluc3VmZmljaWVudFpyb0ZlZQAAAAAABwAAAAAAAAAQSW52YWxpZEZlZUFtb3VudAAAAAgAAAAAAAAADUludmFsaWRFeHBpcnkAAAAAAAAJAAAAAAAAAAxJbnZhbGlkSW5kZXgAAAAKAAAAAAAAAAxJbnZhbGlkTm9uY2UAAAALAAAAAAAAABJJbnZhbGlkUGF5bG9hZEhhc2gAAAAAAAwAAAAAAAAAFUludmFsaWRSZWNlaXZlTGlicmFyeQAAAAAAAA0AAAAAAAAAEU9ubHlOb25EZWZhdWx0TGliAAAAAAAADgAAAAAAAAAOT25seVJlY2VpdmVMaWIAAAAAAA8AAAAAAAAAEU9ubHlSZWdpc3RlcmVkTGliAAAAAAAAEAAAAAAAAAALT25seVNlbmRMaWIAAAAAEQAAAAAAAAAUUGF0aE5vdEluaXRpYWxpemFibGUAAAASAAAAAAAAABFQYXRoTm90VmVyaWZpYWJsZQAAAAAAABMAAAAAAAAAE1BheWxvYWRIYXNoTm90Rm91bmQAAAAAFAAAAAAAAAAJU2FtZVZhbHVlAAAAAAAAFQAAAAAAAAAMVW5hdXRob3JpemVkAAAAFgAAAAAAAAAOVW5zdXBwb3J0ZWRFaWQAAAAAABcAAAAAAAAAClplcm9acm9GZWUAAAAAABgAAAAAAAAADlpyb1VuYXZhaWxhYmxlAAAAAAAZAAAABQAAAAAAAAAAAAAAClBhY2tl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cyBvbiB0aGUgc291cmNlIGNoYWluICgzMiBieXRlcykuAAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAACZTb3VyY2UgZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAAB3NyY19laWQAAAAABAAAAAEAAAAoRmVlIHN0cnVjdHVyZSBmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnaW5nLgAAAAAAAAAMTWVzc2FnaW5nRmVlAAAAAgAAAB9GZWUgcGFpZCBpbiBuYXRpdmUgdG9rZW4gKFhMTSkuAAAAAApuYXRpdmVfZmVlAAAAAAALAAAAKEZlZSBwYWlkIGluIFpSTyB0b2tlbiAoTGF5ZXJaZXJvIHRva2VuKS4AAAAHenJvX2ZlZQAAAAALAAAAAQAAAEJSZWNlaXB0IHJldHVybmVkIGFmdGVyIHN1Y2Nlc3NmdWxseSBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAQTWVzc2FnaW5nUmVjZWlwdAAAAAMAAAApVGhlIGZlZXMgY2hhcmdlZCBmb3Igc2VuZGluZyB0aGUgbWVzc2FnZS4AAAAAAAADZmVlAAAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAK0dsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgbWVzc2FnZS4AAAAABGd1aWQAAAPuAAAAIAAAACRUaGUgb3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAAgAAADhUeXBlIG9mIG1lc3NhZ2UgbGlicmFyeSBpbmRpY2F0aW5nIHN1cHBvcnRlZCBvcGVyYXRpb25zLgAAAAAAAAAOTWVzc2FnZUxpYlR5cGUAAAAAAAMAAAAAAAAAH1N1cHBvcnRzIG9ubHkgc2VuZGluZyBtZXNzYWdlcy4AAAAABFNlbmQAAAAAAAAAIVN1cHBvcnRzIG9ubHkgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAAdSZWNlaXZlAAAAAAAAAAAtU3VwcG9ydHMgYm90aCBzZW5kaW5nIGFuZCByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAADlNlbmRBbmRSZWNlaXZlAAAAAAABAAAAt1ZlcnNpb24gaW5mb3JtYXRpb24gZm9yIGEgbWVzc2FnZSBsaWJyYXJ5LgoKTm90ZTogYG1pbm9yYCBhbmQgYGVuZHBvaW50X3ZlcnNpb25gIHVzZSBgdTMyYCBpbnN0ZWFkIG9mIGB1OGAgYmVjYXVzZSBTdGVsbGFyIGRvZXMgbm90CnN1cHBvcnQgYHU4YCB0eXBlcyBpbiBjb250cmFjdCBpbnRlcmZhY2UgZnVuY3Rpb25zLgAAAAAAAAAAEU1lc3NhZ2VMaWJWZXJzaW9uAAAAAAAAAwAAADNFbmRwb2ludCB2ZXJzaW9uIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAAEGVuZHBvaW50X3ZlcnNpb24AAAAEAAAAFU1ham9yIHZlcnNpb24gbnVtYmVyLgAAAAAAAAVtYWpvcgAAAAAAAAYAAAA3TWlub3IgdmVyc2lvbiBudW1iZXIgKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAFbWlub3IAAAAAAAAEAAAAAQAAADZUaW1lb3V0IGNvbmZpZ3VyYXRpb24gZm9yIHJlY2VpdmUgbGlicmFyeSB0cmFuc2l0aW9ucy4AAAAAAAAAAAAHVGltZW91dAAAAAACAAAAKFVuaXggdGltZXN0YW1wIHdoZW4gdGhlIHRpbWVvdXQgZXhwaXJlcy4AAAAGZXhwaXJ5AAAAAAAGAAAAKVRoZSBuZXcgbGlicmFyeSBhZGRyZXNzIHRvIHRyYW5zaXRpb24gdG8uAAAAAAAAA2xpYgAAAAATAAAAAQAAADVQYXJhbWV0ZXJzIGZvciBzZXR0aW5nIG1lc3NhZ2UgbGlicmFyeSBjb25maWd1cmF0aW9uLgAAAAAAAAAAAAAOU2V0Q29uZmlnUGFyYW0AAAAAAAMAAAAfWERSLWVuY29kZWQgY29uZmlndXJhdGlvbiBkYXRhLgAAAAAGY29uZmlnAAAAAAAOAAAAMFRoZSB0eXBlIG9mIGNvbmZpZ3VyYXRpb24gKGUuZy4sIGV4ZWN1dG9yLCBVTE4pLgAAAAtjb25maWdfdHlwZQAAAAAEAAAAJ1RoZSBlbmRwb2ludCBJRCB0aGlzIGNvbmZpZyBhcHBsaWVzIHRvLgAAAAADZWlkAAAAAAQAAAABAAAAMVJlc29sdmVkIGxpYnJhcnkgaW5mb3JtYXRpb24gd2l0aCBkZWZhdWx0IHN0YXR1cy4AAAAAAAAAAAAAD1Jlc29sdmVkTGlicmFyeQAAAAACAAAARFdoZXRoZXIgdGhpcyBpcyB0aGUgZGVmYXVsdCBsaWJyYXJ5ICh0cnVlKSBvciBPQXBwLXNwZWNpZmljIChmYWxzZSkuAAAACmlzX2RlZmF1bHQAAAAAAAEAAAAdVGhlIHJlc29sdmVkIGxpYnJhcnkgYWRkcmVzcy4AAAAAAAADbGliAAAAABMAAAABAAAASE91dGJvdW5kIHBhY2tldCBjb250YWluaW5nIGFsbCBpbmZvcm1hdGlvbiBmb3IgY3Jvc3MtY2hhaW4gdHJhbnNtaXNzaW9uLgAAAAAAAAAOT3V0Ym91bmRQYWNrZXQAAAAAAAcAAAAYRGVzdGluYXRpb24gZW5kcG9pbnQgSUQuAAAAB2RzdF9laWQAAAAABAAAACxHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBtZXNzYWdlLgAAAARndWlkAAAD7gAAACAAAAAUVGhlIG1lc3NhZ2UgcGF5bG9hZC4AAAAHbWVzc2FnZQAAAAAOAAAAIE91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAADFSZWNlaXZlciBhZGRyZXNzIG9uIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAAfU2VuZGVyIGFkZHJlc3Mgb24gc291cmNlIGNoYWluLgAAAAAGc2VuZGVyAAAAAAATAAAAE1NvdXJjZSBlbmRwb2ludCBJRC4AAAAAB3NyY19laWQAAAAABAAAAAEAAAArQSBmZWUgcmVjaXBpZW50IHdpdGggdGhlIGFtb3VudCB0byBiZSBwYWlkLgAAAAAAAAAADEZlZVJlY2lwaWVudAAAAAIAAAAVQW1vdW50IG9mIGZlZSB0byBwYXkuAAAAAAAABmFtb3VudAAAAAAACwAAAB9UaGUgYWRkcmVzcyB0byBzZW5kIHRoZSBmZWUgdG8uAAAAAAJ0bwAAAAAAEwAAAAEAAAA8UmVzdWx0IG9mIHNlbmQgb3BlcmF0aW9uIGNvbnRhaW5pbmcgZmVlcyBhbmQgZW5jb2RlZCBwYWNrZXQuAAAAAAAAAA1GZWVzQW5kUGFja2V0AAAAAAAAAwAAACpUaGUgZW5jb2RlZCBwYWNrZXQgcmVhZHkgZm9yIHRyYW5zbWlzc2lvbi4AAAAAAA5lbmNvZGVkX3BhY2tldAAAAAAADgAAAD9MaXN0IG9mIG5hdGl2ZSB0b2tlbiBmZWUgcmVjaXBpZW50cyAoZXhlY3V0b3IsIERWTnMsIHRyZWFzdXJ5KS4AAAAAFW5hdGl2ZV9mZWVfcmVjaXBpZW50cwAAAAAAA+oAAAfQAAAADEZlZVJlY2lwaWVudAAAACxMaXN0IG9mIFpSTyB0b2tlbiBmZWUgcmVjaXBpZW50cyAodHJlYXN1cnkpLgAAABJ6cm9fZmVlX3JlY2lwaWVudHMAAAAAA+oAAAfQAAAADEZlZVJlY2lwaWVudAAAAAQAAAAdUGFja2V0Q29kZWNWMUVycm9yOiAxMTAwLTExMDkAAAAAAAAAAAAAElBhY2tldENvZGVjVjFFcnJvcgAAAAAAAgAAAAAAAAATSW52YWxpZFBhY2tldEhlYWRlcgAAAARMAAAAAAAAABRJbnZhbGlkUGFja2V0VmVyc2lvbgAABE0AAAAEAAAAHVdvcmtlck9wdGlvbnNFcnJvcjogMTExMC0xMTE5AAAAAAAAAAAAABJXb3JrZXJPcHRpb25zRXJyb3IAAAAAAAkAAAAAAAAAEkludmFsaWRCeXRlc0xlbmd0aAAAAAAEVgAAAAAAAAAZSW52YWxpZExlZ2FjeU9wdGlvbnNUeXBlMQAAAAAABFcAAAAAAAAAGUludmFsaWRMZWdhY3lPcHRpb25zVHlwZTIAAAAAAARYAAAAAAAAABFJbnZhbGlkT3B0aW9uVHlwZQAAAAAABFkAAAAAAAAADkludmFsaWRPcHRpb25zAAAAAARaAAAAAAAAAA9JbnZhbGlkV29ya2VySWQAAAAEWwAAAAAAAAAdTGVnYWN5T3B0aW9uc1R5cGUxR2FzT3ZlcmZsb3cAAAAAAARcAAAAAAAAACBMZWdhY3lPcHRpb25zVHlwZTJBbW91bnRPdmVyZmxvdwAABF0AAAAAAAAAHUxlZ2FjeU9wdGlvbnNUeXBlMkdhc092ZXJmbG93AAAAAAAEXgAAAAQAAAAcQnVmZmVyUmVhZGVyRXJyb3I6IDEwMDAtMTAwOQAAAAAAAAARQnVmZmVyUmVhZGVyRXJyb3IAAAAAAAACAAAAAAAAAA1JbnZhbGlkTGVuZ3RoAAAAAAAD6AAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD6QAAAAQAAAAcQnVmZmVyV3JpdGVyRXJyb3I6IDEwMTAtMTAxOQAAAAAAAAARQnVmZmVyV3JpdGVyRXJyb3IAAAAAAAABAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPyAAAABAAAAB9UdGxDb25maWd1cmFibGVFcnJvcjogMTAyMC0xMDI5AAAAAAAAAAAUVHRsQ29uZmlndXJhYmxlRXJyb3IAAAADAAAAAAAAABBJbnZhbGlkVHRsQ29uZmlnAAAD/AAAAAAAAAAPVHRsQ29uZmlnRnJvemVuAAAAA/0AAAAAAAAAFlR0bENvbmZpZ0FscmVhZHlGcm96ZW4AAAAAA/4AAAAEAAAAF093bmFibGVFcnJvcjogMTAzMC0xMDM5AAAAAAAAAAAMT3duYWJsZUVycm9yAAAABgAAAAAAAAATSW52YWxpZFBlbmRpbmdPd25lcgAAAAQGAAAAAAAAAApJbnZhbGlkVHRsAAAAAAQHAAAAAAAAABFOb1BlbmRpbmdUcmFuc2ZlcgAAAAAABAgAAAAAAAAAD093bmVyQWxyZWFkeVNldAAAAAQJAAAAAAAAAAtPd25lck5vdFNldAAAAAQKAAAAAAAAABJUcmFuc2ZlckluUHJvZ3Jlc3MAAAAABAsAAAAEAAAAGEJ5dGVzRXh0RXJyb3I6IDEwNDAtMTA0OQAAAAAAAAANQnl0ZXNFeHRFcnJvcgAAAAAAAAEAAAAAAAAADkxlbmd0aE1pc21hdGNoAAAAAAQQAAAABAAAABtVcGdyYWRlYWJsZUVycm9yOiAxMDUwLTEwNTkAAAAAAAAAABBVcGdyYWRlYWJsZUVycm9yAAAAAwAAAAAAAAAUSW52YWxpZE1pZ3JhdGlvbkRhdGEAAAQaAAAAAAAAABNNaWdyYXRpb25Ob3RBbGxvd2VkAAAABBsAAAAAAAAADlVwZ3JhZGVzRnJvemVuAAAAAAQcAAAABAAAABhNdWx0aXNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpc2lnRXJyb3IAAAAAAAAIAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAADUludmFsaWRTaWduZXIAAAAAAAQlAAAAAAAAAA5TaWduYXR1cmVFcnJvcgAAAAAEJgAAAAAAAAATU2lnbmVyQWxyZWFkeUV4aXN0cwAAAAQnAAAAAAAAAA5TaWduZXJOb3RGb3VuZAAAAAAEKAAAAAAAAAAdVG90YWxTaWduZXJzTGVzc1RoYW5UaHJlc2hvbGQAAAAAAAQpAAAAAAAAAA9VbnNvcnRlZFNpZ25lcnMAAAAEKgAAAAAAAAANWmVyb1RocmVzaG9sZAAAAAAABCsAAAAFAAAAMEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHNpZ25lciBpcyBhZGRlZCBvciByZW1vdmVkLgAAAAAAAAAJU2lnbmVyU2V0AAAAAAAAAQAAAApzaWduZXJfc2V0AAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAQAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAANkV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2lnbmF0dXJlIHRocmVzaG9sZCBpcyBjaGFuZ2VkLgAAAAAAAAAAAAxUaHJlc2hvbGRTZXQAAAABAAAADXRocmVzaG9sZF9zZXQAAAAAAAABAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAPTXVsdGlzaWdTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAdTaWduZXJzAAAAAAAAAAAAAAAACVRocmVzaG9sZAAAAAAAAAUAAABXRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyB0cmFuc2ZlcnJlZCAoYm90aCBzaW5nbGUtc3RlcCBhbmQgdHdvLXN0ZXAgY29tcGxldGlvbikuAAAAAAAAAAAUT3duZXJzaGlwVHJhbnNmZXJyZWQAAAABAAAAFW93bmVyc2hpcF90cmFuc2ZlcnJlZAAAAAAAAAIAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAIAAAAFAAAAO0V2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgcHJvcG9zZWQuAAAAAAAAAAAVT3duZXJzaGlwVHJhbnNmZXJyaW5nAAAAAAAAAQAAABZvd25lcnNoaXBfdHJhbnNmZXJyaW5nAAAAAAADAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgcmVub3VuY2VkLgAAAAAAAAAAABJPd25lcnNoaXBSZW5vdW5jZWQAAAAAAAEAAAATb3duZXJzaGlwX3Jlbm91bmNlZAAAAAABAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAOT3duYWJsZVN0b3JhZ2UAAAAAAAIAAAAAAAAAAAAAAAVPd25lcgAAAAAAAAAAAAAAAAAADFBlbmRpbmdPd25lcgAAAAEAAABJVFRMIGNvbmZpZ3VyYXRpb246IHRocmVzaG9sZCAod2hlbiB0byBleHRlbmQpIGFuZCBleHRlbmRfdG8gKHRhcmdldCBUVEwpLgAAAAAAAAAAAAAJVHRsQ29uZmlnAAAAAAAAAgAAAChUYXJnZXQgVFRMIGFmdGVyIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAACWV4dGVuZF90bwAAAAAAAAQAAAAzVFRMIHRocmVzaG9sZCB0aGF0IHRyaWdnZXJzIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAABQAAACdFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIHNldC4AAAAAAAAAAA1UdGxDb25maWdzU2V0AAAAAAAAAQAAAA90dGxfY29uZmlnc19zZXQAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAAAAAAAAAEFR0bENvbmZpZ3NGcm96ZW4AAAABAAAAEnR0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAQVHRsQ29uZmlnU3RvcmFnZQAAAAMAAAAAAAAAAAAAAAZGcm96ZW4AAAAAAAAAAAAAAAAACEluc3RhbmNlAAAAAAAAAAAAAAAKUGVyc2lzdGVudAAAAAAAAgAAAAAAAAAAAAAAElVwZ3JhZGVhYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAJTWlncmF0aW5nAAAAAB4RY29udHJhY3RlbnZtZXRhdjAAAAAAAAAAFwAAAAAAbw5jb250cmFjdG1ldGF2MAAAAAAAAAAFcnN2ZXIAAAAAAAAGMS45MC4wAAAAAAAAAAAACHJzc2RrdmVyAAAALzIzLjQuMCM2NzNkNmM0ZjIzNjhkMjgyZDI1ZGEyOWJkYTU1YzIxYjhiZTY5Y2E2AA==";
11
+ export declare const WASM_BASE64 = "AGFzbQEAAAABfxZgAn5+AX5gAX4BfmADfn5+AX5gAAF+YAR+fn5+AX5gAAF/YAF/AGACf38AYAF/AX5gAn5+AX9gAABgAn5/AGABfgBgA39/fwBgAn9+AGACf38BfmAEf39/fwF+YAJ+fgBgA39+fgBgBn9+fn5+fwBgBH9+fn8AYAV/fn5+fgACfxUBbAExAAABYQEwAAEBZAFfAAIBbAFfAAIBeAExAAABbAEyAAABeAE3AAMBeAEwAAABbAE3AAQBaQE4AAEBaQE3AAEBYgFqAAABaQE2AAABbQE5AAIBdgFnAAABeAEzAAMBeAE4AAMBbAEwAAABbAE4AAABeAE1AAEBbQFhAAQDSkkFBgcICQoDAwYLCgYMCAYIDQ4EDgUFBgAPCgEHBwwBDwEQAQEAAgMDAwMDAwERAAoFEgMKAwAADggDBwcDAwoNDg0NExQVFRQVBQMBABEGIQR/AUGAgMAAC38AQcKBwAALfwBB3oPAAAt/AEHgg8AACweaAxkGbWVtb3J5AgAHZ2V0X2ZlZQAnDV9fY29uc3RydWN0b3IALxFzZXRfbmF0aXZlX2ZlZV9icAAzD3NldF9mZWVfZW5hYmxlZAA3D3NldF96cm9fZmVlX2xpYgA4DndpdGhkcmF3X3Rva2VuADoNbmF0aXZlX2ZlZV9icAA7C2ZlZV9lbmFibGVkADwLenJvX2ZlZV9saWIAPQphdXRob3JpemVyAD4Fb3duZXIAPw1wZW5kaW5nX293bmVyAEASdHJhbnNmZXJfb3duZXJzaGlwAEEacHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXIAQxBhY2NlcHRfb3duZXJzaGlwAEcScmVub3VuY2Vfb3duZXJzaGlwAEkTZXh0ZW5kX2luc3RhbmNlX3R0bABKD3NldF90dGxfY29uZmlncwBLC3R0bF9jb25maWdzAE4SZnJlZXplX3R0bF9jb25maWdzAFEVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAFIBXwMBCl9fZGF0YV9lbmQDAgtfX2hlYXBfYmFzZQMDCtNJSYsBAgJ/AX4jgICAgABBEGsiACSAgICAACAAQQRqEJaAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBCXgICAAAtBACEBAkBBABCYgICAACICQgIQmYCAgABFDQBBASEBAkACQCACQgIQgICAgACnQf8BcQ4CAQIACwALQQAhAQsgAEEQaiSAgICAACABCwwAIABBARDPgICAAAsbACAArUIghkIEhCABrUIghkIEhBCSgICAABoLwgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkACQAJAIABB/wFxDgMAAQIACyABQcaDwIAAQQYQpYCAgAAgASgCAA0DIAEgASkDCBCmgICAAAwCCyABQcyDwIAAQQgQpYCAgAAgASgCAA0CIAEgASkDCBCmgICAAAwBCyABQdSDwIAAQQoQpYCAgAAgASgCAA0BIAEgASkDCBCmgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACCw8AIAAgARCRgICAAEIBUQsPABCbgICAABCBgICAABoLZgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCWgICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQl4CAgAALIAAQnYCAgAAgACkDCCEBIAApAwBBiggQnoCAgAAgAEEQaiSAgICAACABC0oCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQnYCAgAAgACkDCCEBIAApAwBBiggQnoCAgAAgARCBgICAABogAEEQaiSAgICAACABC1ABAX8jgICAgABBEGsiASSAgICAACABQQRqEJaAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCXgICAAAsgABCjgICAACABQRBqJICAgIAACykAAkAgAKdBAXFFDQAPCyABQfp3aq1CIIZCg4CAgOCAAXwQoYCAgAAAC0IBAX8jgICAgABBEGsiACSAgICAACAAEKCAgIAAAkAgACkDAFANAEKDgICAsIEBEKGAgIAAAAsgAEEQaiSAgICAAAuTAQIBfwJ+I4CAgIAAQRBrIgEkgICAgAAgAUEEahCWgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQl4CAgAALQgAhAgJAAkBBARCigICAACIDQgAQmYCAgABFDQAgA0IAEICAgIAAIgJC/wGDQs0AUg0BIAAgAjcDCEIBIQILIAAgAjcDACABQRBqJICAgIAADwsACwsAIAAQk4CAgAAaC5IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAIABBAXFFDQAgAUHZgsCAAEEMEKWAgIAAIAEoAgANAiABIAEpAwgQpoCAgAAMAQsgAUHUgsCAAEEFEKWAgIAAIAEoAgANASABIAEpAwgQpoCAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgtNAQJ+QgAhAQJAAkBBABCigICAACICQgIQmYCAgABFDQAgAkICEICAgIAAIgFC/wGDQs0AUg0BIAAgATcDCEIBIQELIAAgATcDAA8LAAvCAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkAgAEH/AXEOAwABAgALIAFBpIHAgABBCxClgICAACABKAIADQMgASABKQMIEKaAgIAADAILIAFBr4HAgABBChClgICAACABKAIADQIgASABKQMIEKaAgIAADAELIAFBuYHAgABBCRClgICAACABKAIADQEgASABKQMIEKaAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILUQIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABIAIQ1ICAgABCASEEAkAgAygCAA0AIAAgAykDCDcDCEIAIQQLIAAgBDcDACADQRBqJICAgIAAC0QBAX8jgICAgABBEGsiAiSAgICAACACIAE3AwggAkEIakEBEK2AgIAAIQEgAEIANwMAIAAgATcDCCACQRBqJICAgIAAC94EAgJ/A34jgICAgABB8ABrIgQkgICAgAACQAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgBEHQAGogAhCogICAACAEKAJQQQFGDQBBASADp0H/AXEiBUEAR0EBdCAFQQFGGyIFQQJGDQAgBCkDaCEGIAQpA2AhByAEQdAAahCWgICAAAJAIAQoAlBBAUcNACAEKAJUIAQoAlgQl4CAgAALAkAgBkJ/Vw0AQgAhA0IAIQIQqYCAgABFDQIgBEEANgIsIARBEGogByAGEKqAgIAArUIAIARBLGoQ2ICAgAACQCAEKAIsDQAgBCAEKQMQIAQpAxhCkM4AQgAQ24CAgAAgBCkDCCECIAQpAwAhAyAFQQFxRQ0DIARB0ABqEKuAgIAAAkAgBCgCUEUNACAEKQNYIQggByAGEKyAgIAAIQYgBCADIAIQrICAgAA3A0ggBCAGNwNAIAQgAUKEgICAcIM3AzggBCAANwMwQQAhBQJAA0ACQCAFQSBHDQBBACEFAkADQCAFQSBGDQEgBEHQAGogBWogBEEwaiAFaikDADcDACAFQQhqIQUMAAsLIARB0ABqIAhCjtTqtZDXsgEgBEHQAGpBBBCtgICAABCCgICAABCogICAACAEKAJQQQFGDQQgBCkDaCICQn9XDQIgBCkDYCEDDAcLIARB0ABqIAVqQgI3AwAgBUEIaiEFDAALC0KDgICAMBChgICAAAALQoOAgIDAABChgICAAAALEK6AgIAAAAtCg4CAgCAQoYCAgAAACwALIAMgAhCsgICAACECIARB8ABqJICAgIAAIAILfQIBfwF+AkACQAJAAkAgAadB/wFxIgJBxQBGDQAgAkELRw0CIAAgAUI/hzcDGCAAIAFCCIc3AxAMAQsgARCJgICAACEDIAEQioCAgAAhASAAIAM3AxggACABNwMQC0IAIQEMAQsgAEKDkICAgAE3AwhCASEBCyAAIAE3AwALiwECAn8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQloCAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMEJeAgIAAC0EAIQECQEEBEKSAgIAAIgJCAhCZgICAAEUNAEEBIQECQAJAIAJCAhCAgICAAKdB/wFxDgIBAgALAAtBACEBCyAAQRBqJICAgIAAIAELigECAn8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQloCAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMEJeAgIAAC0EAIQECQAJAQQAQpICAgAAiAkICEJmAgIAARQ0AIAJCAhCAgICAACICQv8Bg0IEUg0BIAJCIIinIQELIABBEGokgICAgAAgAQ8LAAuTAQIBfwJ+I4CAgIAAQRBrIgEkgICAgAAgAUEEahCWgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQl4CAgAALQgAhAgJAAkBBAhCkgICAACIDQgIQmYCAgABFDQAgA0ICEICAgIAAIgJC/wGDQs0AUg0BIAAgAjcDCEIBIQILIAAgAjcDACABQRBqJICAgIAADwsAC0UAAkAgAEKAgICAgICAwAB8Qv//////////AFYNACAAIACFIAEgAEI/h4WEQgBSDQAgAEIIhkILhA8LIAEgABCMgICAAAsaACAArUIghkIEhCABrUIghkIEhBCOgICAAAsJABDTgICAAAALXQACQAJAIABC/wGDQs0AUg0AQYDLHkGA0h8QsICAgABBgMseQYDSHxCxgICAAEEAEKKAgIAAQgIQmYCAgAANASAAELKAgIAAQgIPCwALQoOAgICQgQEQoYCAgAAACw4AQQEgACABENeAgIAACw4AQQIgACABENeAgIAACw4AQQAgAEICEMaAgIAAC9IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkAgAEL/AYNCBFINABCagICAACABEJaAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBCXgICAAAsgAEKAgICAkOIJWg0BQQAQpICAgAAgAEKEgICA8P8PgyIAQgIQg4CAgAAaQYCAwIAAQREQtICAgAAQtYCAgAAhAiABIAA3AwAgAkGggMCAAEEBIAFBARC2gICAABCEgICAABogAUEQaiSAgICAAEICDwsAC0KDgICAEBChgICAAAALRQIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAiAAIAEQ1ICAgAACQCACKAIAQQFHDQAACyACKQMIIQMgAkEQaiSAgICAACADC2MDAX8BfgF/I4CAgIAAQRBrIgEkgICAgAAgASAANwMAQgIhAkEBIQMCQANAIANFDQEgA0F/aiEDIAAhAgwACwsgASACNwMIIAFBCGpBARCtgICAACEAIAFBEGokgICAgAAgAAsuAAJAIAEgA0YNAAALIACtQiCGQgSEIAKtQiCGQgSEIAGtQiCGQgSEEI2AgIAAC8ABAgJ/AX4jgICAgABBEGsiASSAgICAAAJAQQEgAKdB/wFxIgJBAEdBAXQgAkEBRhsiAkECRg0AEJqAgIAAIAEQloCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIEJeAgIAAC0EBEKSAgIAAIAKtIgBCAhCDgICAABpBqIDAgABBDxC0gICAABC1gICAACEDIAEgADcDACADQcSAwIAAQQEgAUEBELaAgIAAEISAgIAAGiABQRBqJICAgIAAQgIPCwAL4wECAX8CfiOAgICAAEEQayIBJICAgIAAAkACQCAAQgJRDQAgAEL/AYNCzQBSDQELEJqAgIAAIAEQloCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIEJeAgIAAC0ECEKSAgIAAIQICQAJAIABCAlINACACQgIQhYCAgAAaQgAhAgwBCyACIABCAhCDgICAABpCASECC0HMgMCAAEEPELSAgIAAELWAgIAAIQMgASACIAAQuYCAgAA3AwAgA0HogMCAAEEBIAFBARC2gICAABCEgICAABogAUEQaiSAgICAAEICDwsACw0AIAFCAiAAp0EBcRsLiQMDAX8CfgF/I4CAgIAAQcAAayIDJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCzQBSDQAgAyACEKiAgIAAIAMoAgBBAUYNACADKQMYIQIgAykDECEEEJqAgIAAIAMQloCAgAACQCADKAIAQQFHDQAgAygCBCADKAIIEJeAgIAACxCGgICAACEFIAMgBCACEKyAgIAANwM4IAMgATcDMCADIAU3AyhBACEGAkADQAJAIAZBGEcNAEEAIQYCQANAIAZBGEYNASADIAZqIANBKGogBmopAwA3AwAgBkEIaiEGDAALCyAAQo7u6pW+tt7zACADQQMQrYCAgAAQgoCAgABC/wGDQgJSDQJB8IDAgABBDxC0gICAABC1gICAACEFIAQgAhCsgICAACECIAMgADcDECADIAE3AwggAyACNwMAIAVBjIHAgABBAyADQQMQtoCAgAAQhICAgAAaIANBwABqJICAgIAAQgIPCyADIAZqQgI3AwAgBkEIaiEGDAALCxCugICAAAALAAsPABCqgICAAK1CIIZCBIQLCQAQqYCAgACtCz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQq4CAgAAgACkDACAAKQMIELmAgIAAIQEgAEEQaiSAgICAACABCwgAEJuAgIAACz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQnYCAgAAgACkDACAAKQMIELmAgIAAIQEgAEEQaiSAgICAACABCz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQoICAgAAgACkDACAAKQMIELmAgIAAIQEgAEEQaiSAgICAACABC30CAX8BfiOAgICAAEEQayIBJICAgIAAAkAgAEL/AYNCzQBSDQAgAUEEahCWgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQl4CAgAALEJyAgIAAIQIQn4CAgAAgABCygICAACACIAAQwoCAgAAgAUEQaiSAgICAAEICDwsAC2ECAX8BfiOAgICAAEEQayICJICAgIAAQcuBwIAAQRUQtICAgAAQtYCAgAAhAyACIAA3AwggAiABNwMAIANB9IHAgABBAiACQQIQtoCAgAAQhICAgAAaIAJBEGokgICAgAAL3QICAX8CfiOAgICAAEEgayICJICAgIAAAkACQAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgAkEIahCWgICAAAJAIAIoAghBAUcNACACKAIMIAIoAhAQl4CAgAALEJyAgIAAIQMCQAJAIAFC/////w9WDQAgAkEIahCggICAACACKQMQIQEgAikDCEGICBCegICAACABIAAQh4CAgABQRQ0DEMSAgIAADAELEMWAgIAAIAFCIIinSQ0DQQEgAEIAEMaAgIAAQQEQooCAgABCACABQoSAgIBwgyIBIAEQiICAgAAaQYSCwIAAQRYQtICAgAAQtYCAgAAhBCACIAE3AxggAiADNwMQIAIgADcDCCAEQaCCwIAAQQMgAkEIakEDELaAgIAAEISAgIAAGgsgAkEgaiSAgICAAEICDwsAC0KDgICA4IABEKGAgIAAAAtCg4CAgPCAARChgICAAAALEwBBARCigICAAEIAEIWAgIAAGgszAQJ+EI+AgIAAIQACQBCQgICAAEIgiCIBIABCIIgiAFQNACABpyAAp2sPCxCugICAAAALFQAgABCigICAACABIAIQg4CAgAAaC6cBAgF/An4jgICAgABBEGsiACSAgICAACAAEJaAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBCXgICAAAsgABCggICAACAAKQMIIQEgACkDAEGICBCegICAACABEIGAgIAAGiAAEKOAgIAAAkAgACgCAA0AEMiAgIAAAAsgACkDCCECEMSAgIAAIAEQsoCAgAAgAiABEMKAgIAAIABBEGokgICAgABCAgsJABCugICAAAALoAECAX8CfiOAgICAAEEQayIAJICAgIAAIAAQloCAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEJeAgIAACxCcgICAACEBEJ+AgIAAQQAQooCAgABCAhCFgICAABpBuILAgABBExC0gICAABC1gICAACECIAAgATcDACACQcyCwIAAQQEgAEEBELaAgIAAEISAgIAAGiAAQRBqJICAgIAAQgILMQACQCAAQv8Bg0IEUg0AIAFC/wGDQgRSDQAgAEIgiKcgAUIgiKcQl4CAgABCAg8LAAveBAEFfyOAgICAAEHQAGsiAiSAgICAACACQShqIAAQzICAgAACQCACKAIoQQJGDQAgAkEIakEIaiACQShqQQhqIgMoAgA2AgAgAiACKQIoNwMIIAJBKGogARDMgICAACACKAIoQQJGDQAgAkEYakEIaiADKAIANgIAIAIgAikCKDcDGCACQShqEJaAgIAAAkAgAigCKEEBRw0AIAIoAiwgAigCMBCXgICAAAsQmoCAgAACQAJAAkAQlYCAgAANABDFgICAACIDQYD7gAMgA0GA+4ADSRshBCACIAJBGGo2AiwgAiACQQhqNgIoQQAhAwNAIANBCEYNAwJAIAJBKGogA2ooAgAiBSgCAEEBcUUNACAFKAIIIgYgBEsNAyAFKAIEIAZLDQMLIANBBGohAwwACwtCg4CAgND/ABChgICAAAALQoOAgIDA/wAQoYCAgAAACwJAAkAgAigCCEEBRw0AIAIoAgwgAigCEBCwgICAAAwBC0EBEJiAgIAAQgIQhYCAgAAaCwJAAkAgAigCGEEBRw0AIAIoAhwgAigCIBCxgICAAAwBC0ECEJiAgIAAQgIQhYCAgAAaCyACQShqQQhqIAJBCGpBCGooAgA2AgAgAkE8aiACQRhqQQhqKAIANgIAIAIgAikDCDcDKCACIAIpAxg3AjRBgIPAgABBDxC0gICAABC1gICAACEAIAJBKGoQzYCAgAAhASACIAJBNGoQzYCAgAA3A0ggAiABNwNAIABBpIPAgABBAiACQcAAakECELaAgIAAEISAgIAAGiACQdAAaiSAgICAAEICDwsAC2gBAX8jgICAgABBEGsiAiSAgICAAAJAAkAgAUICUQ0AIAJBBGogARDVgICAAAJAIAIoAgRFDQAgAEECNgIADAILIAAgAikCCDcCBCAAQQE2AgAMAQsgAEEANgIACyACQRBqJICAgIAAC0MCAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABDQgICAAAJAIAEoAgBBAUcNAAALIAEpAwghAiABQRBqJICAgIAAIAILxAECAn8BfiOAgICAAEHAAGsiACSAgICAACAAQQhqEJaAgIAAAkAgACgCCEEBRw0AIAAoAgwgACgCEBCXgICAAAsgAEEIahCWgICAACAAQRRqIgFBAhDPgICAACAAQTBqIABBCGoQ0ICAgAACQAJAIAAoAjANACAAKQM4IQIgAEEwaiABENCAgIAAIAAoAjBBAUcNAQsACyAA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ZXRfZmVlAAAAAAQAAAAAAAAABnNlbmRlcgAAAAAAEwAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAABB0b3RhbF9uYXRpdmVfZmVlAAAACwAAAAAAAAAKcGF5X2luX3pybwAAAAAAAQAAAAEAAAALAAAAAAAAAAAAAAANX19jb25zdHJ1Y3RvcgAAAAAAAAEAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAAAAAAAjVNldHMgdGhlIG5hdGl2ZSBmZWUgcGVyY2VudGFnZSBpbiBiYXNpcyBwb2ludHMuCgojIEFyZ3VtZW50cwoqIGBuYXRpdmVfZmVlX2JwYCAtIEZlZSBwZXJjZW50YWdlIGluIGJhc2lzIHBvaW50cyAoMC0xMDAwMCwgd2hlcmUgMTAwMDAgPSAxMDAlKQAAAAAAABFzZXRfbmF0aXZlX2ZlZV9icAAAAAAAAAEAAAAAAAAADW5hdGl2ZV9mZWVfYnAAAAAAAAAEAAAAAAAAAAAAAABtRW5hYmxlcyBvciBkaXNhYmxlcyBmZWUgY29sbGVjdGlvbiBnbG9iYWxseS4KCiMgQXJndW1lbnRzCiogYGZlZV9lbmFibGVkYCAtIFdoZXRoZXIgZmVlIGNvbGxlY3Rpb24gaXMgZW5hYmxlZAAAAAAAAA9zZXRfZmVlX2VuYWJsZWQAAAAAAQAAAAAAAAALZmVlX2VuYWJsZWQAAAAAAQAAAAAAAAAAAAAAo1NldHMgb3IgcmVtb3ZlcyB0aGUgWlJPIGZlZSBsaWJyYXJ5IGZvciBjdXN0b20gWlJPIHRva2VuIGZlZSBjYWxjdWxhdGlvbnMuCgojIEFyZ3VtZW50cwoqIGB6cm9fZmVlX2xpYmAgLSBUaGUgWlJPIGZlZSBsaWJyYXJ5IGNvbnRyYWN0IGFkZHJlc3MsIG9yIGBOb25lYCB0byByZW1vdmUAAAAAD3NldF96cm9fZmVlX2xpYgAAAAABAAAAAAAAAAt6cm9fZmVlX2xpYgAAAAPoAAAAEwAAAAAAAAAAAAABN1dpdGhkcmF3cyBhbnkgdG9rZW4gKGluY2x1ZGluZyBuYXRpdmUgWExNKSBmcm9tIHRoZSBjb250cmFjdCB0byBhIHNwZWNpZmllZCBhZGRyZXNzLgoKT25seSB0aGUgY29udHJhY3Qgb3duZXIgY2FuIGV4ZWN1dGUgdGhpcyBtZXRob2QuCgojIEFyZ3VtZW50cwoqIGB0b2tlbmAgLSBUaGUgdG9rZW4gY29udHJhY3QgYWRkcmVzcyAoY2FuIGJlIG5hdGl2ZSBYTE0gb3IgYW55IG90aGVyIHRva2VuKQoqIGB0b2AgLSBUaGUgcmVjaXBpZW50IGFkZHJlc3MKKiBgYW1vdW50YCAtIFRoZSBhbW91bnQgdG8gd2l0aGRyYXcgKG11c3QgYmUgcG9zaXRpdmUpAAAAAA53aXRoZHJhd190b2tlbgAAAAAAAwAAAAAAAAAFdG9rZW4AAAAAAAATAAAAAAAAAAJ0bwAAAAAAEwAAAAAAAAAGYW1vdW50AAAAAAALAAAAAAAAAAAAAAAyUmV0dXJucyB0aGUgbmF0aXZlIGZlZSBwZXJjZW50YWdlIGluIGJhc2lzIHBvaW50cy4AAAAAAA1uYXRpdmVfZmVlX2JwAAAAAAAAAAAAAAEAAAAEAAAAAAAAACpSZXR1cm5zIHdoZXRoZXIgZmVlIGNvbGxlY3Rpb24gaXMgZW5hYmxlZC4AAAAAAAtmZWVfZW5hYmxlZAAAAAAAAAAAAQAAAAEAAAAAAAAAK1JldHVybnMgdGhlIFpSTyBmZWUgbGlicmFyeSBhZGRyZXNzIGlmIHNldC4AAAAAC3pyb19mZWVfbGliAAAAAAAAAAABAAAD6AAAABMAAAAAAAAAAAAAAAphdXRob3JpemVyAAAAAAAAAAAAAQAAABMAAAAAAAAAPlJldHVybnMgdGhlIGN1cnJlbnQgb3duZXIgYWRkcmVzcywgb3IgTm9uZSBpZiBubyBvd25lciBpcyBzZXQuAAAAAAAFb3duZXIAAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAFlSZXR1cm5zIHRoZSBwZW5kaW5nIG93bmVyIGFkZHJlc3MgZm9yIDItc3RlcCB0cmFuc2Zlciwgb3IgTm9uZSBpZiBubyB0cmFuc2ZlciBpcyBwZW5kaW5nLgAAAAAAAA1wZW5kaW5nX293bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAAErVHJhbnNmZXJzIG93bmVyc2hpcCBpbW1lZGlhdGVseSB0byBhIG5ldyBhZGRyZXNzLgoKVXNlIHdpdGggY2F1dGlvbiAtIGlmIHlvdSB0cmFuc2ZlciB0byBhIHdyb25nIGFkZHJlc3MsIG93bmVyc2hpcCBpcyBsb3N0IGZvcmV2ZXIuCkNvbnNpZGVyIHVzaW5nIGBwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcmAgaW5zdGVhZC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MAAAAAEnRyYW5zZmVyX293bmVyc2hpcAAAAAAAAQAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAACXFByb3Bvc2VzIGFuIG93bmVyc2hpcCB0cmFuc2ZlciB0byBhIG5ldyBhZGRyZXNzLgoKVGhlIG5ldyBvd25lciBtdXN0IGNhbGwgYGFjY2VwdF9vd25lcnNoaXAoKWAgd2l0aGluIGB0dGxgIGxlZGdlcnMKdG8gY29tcGxldGUgdGhlIHRyYW5zZmVyLiBUaGUgcGVuZGluZyB0cmFuc2ZlciB3aWxsIGF1dG9tYXRpY2FsbHkgZXhwaXJlIGFmdGVyLgoKIyBBcmd1bWVudHMKLSBgbmV3X293bmVyYCAtIFRoZSBwcm9wb3NlZCBuZXcgb3duZXIKLSBgdHRsYCAtIE51bWJlciBvZiBsZWRnZXJzIHRoZSBuZXcgb3duZXIgaGFzIHRvIGFjY2VwdC4KVXNlIGAwYCB0byBjYW5jZWwgYSBwZW5kaW5nIHRyYW5zZmVyIChuZXdfb3duZXIgbXVzdCBtYXRjaCBwZW5kaW5nKS4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYE5vUGVuZGluZ1RyYW5zZmVyYCB3aGVuIGNhbmNlbGxpbmcgYW5kIG5vIHBlbmRpbmcgdHJhbnNmZXIgZXhpc3RzCi0gYEludmFsaWRUdGxgIGlmIHR0bCBleGNlZWRzIG1heCBUVEwKLSBgSW52YWxpZFBlbmRpbmdPd25lcmAgd2hlbiBjYW5jZWxsaW5nIHdpdGggd3JvbmcgbmV3X293bmVyIGFkZHJlc3MAAAAacHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXIAAAAAAAIAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAAAAAC5QWNjZXB0cyBhIHBlbmRpbmcgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2Zlci4KCk11c3QgYmUgY2FsbGVkIGJ5IHRoZSBwZW5kaW5nIG93bmVyIGJlZm9yZSB0aGUgVFRMIGV4cGlyZXMuCgojIFBhbmljcwotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgaWYgdGhlcmUgaXMgbm8gcGVuZGluZyB0cmFuc2ZlciAob3IgaXQgZXhwaXJlZCkAAAAAAAAQYWNjZXB0X293bmVyc2hpcAAAAAAAAAAAAAAAAAAAAKRQZXJtYW5lbnRseSByZW5vdW5jZXMgb3duZXJzaGlwLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgVHJhbnNmZXJJblByb2dyZXNzYCBpZiBhIDItc3RlcCB0cmFuc2ZlciBpcyBpbiBwcm9ncmVzcyAoY2FuY2VsIGl0IGZpcnN0KQAAABJyZW5vdW5jZV9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAAAAAKVFeHRlbmRzIHRoZSBpbnN0YW5jZSBUVEwuCgojIEFyZ3VtZW50cwoKKiBgdGhyZXNob2xkYCAtIFRoZSB0aHJlc2hvbGQgdG8gZXh0ZW5kIHRoZSBUVEwgKGlmIGN1cnJlbnQgVFRMIGlzIGJlbG93IHRoaXMsIGV4dGVuZCkuCiogYGV4dGVuZF90b2AgLSBUaGUgVFRMIHRvIGV4dGVuZCB0by4AAAAAAAATZXh0ZW5kX2luc3RhbmNlX3R0bAAAAAACAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAlleHRlbmRfdG8AAAAAAAAEAAAAAAAAAAAAAAGPU2V0cyBUVEwgY29uZmlncyBmb3IgaW5zdGFuY2UgYW5kIHBlcnNpc3RlbnQgc3RvcmFnZS4KCi0gYE5vbmVgIHZhbHVlcyByZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgY29uZmlnIChkaXNhYmxlcyBhdXRvLWV4dGVuc2lvbiBmb3IgdGhhdCB0eXBlKQotIFZhbGlkYXRlcyB0aGF0IGB0aHJlc2hvbGQgPD0gZXh0ZW5kX3RvIDw9IE1BWF9UVExgCgojIEFyZ3VtZW50cwotIGBpbnN0YW5jZWAgLSBUVEwgY29uZmlnIGZvciBpbnN0YW5jZSBzdG9yYWdlCi0gYHBlcnNpc3RlbnRgIC0gVFRMIGNvbmZpZyBmb3IgcGVyc2lzdGVudCBzdG9yYWdlCgojIFBhbmljcwotIGBUdGxDb25maWdGcm96ZW5gIGlmIGNvbmZpZ3MgYXJlIGZyb3plbgotIGBJbnZhbGlkVHRsQ29uZmlnYCBpZiB2YWxpZGF0aW9uIGZhaWxzAAAAAA9zZXRfdHRsX2NvbmZpZ3MAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAASFJldHVybnMgdGhlIGN1cnJlbnQgVFRMIGNvbmZpZ3MgYXMgKGluc3RhbmNlX2NvbmZpZywgcGVyc2lzdGVudF9jb25maWcpLgAAAAt0dGxfY29uZmlncwAAAAAAAAAAAQAAA+0AAAACAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAOFQZXJtYW5lbnRseSBmcmVlemVzIFRUTCBjb25maWdzLCBwcmV2ZW50aW5nIGFueSBmdXR1cmUgbW9kaWZpY2F0aW9ucy4KClRoaXMgaXMgaXJyZXZlcnNpYmxlIGFuZCBwcm92aWRlcyBpbW11dGFiaWxpdHkgZ3VhcmFudGVlcyB0byB1c2Vycy4KRW1pdHMgYFR0bENvbmZpZ3NGcm96ZW5gIGV2ZW50LgoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnQWxyZWFkeUZyb3plbmAgaWYgYWxyZWFkeSBmcm96ZW4AAAAAAAASZnJlZXplX3R0bF9jb25maWdzAAAAAAAAAAAAAAAAAAAAAAAnUmV0dXJucyB3aGV0aGVyIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAABVpc190dGxfY29uZmlnc19mcm96ZW4AAAAAAAAAAAAAAQAAAAEAAAACAAAAAAAAAAAA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AAAAAAAADgAAAAAAAAAOT25seVJlY2VpdmVMaWIAAAAAAA8AAAAAAAAAEU9ubHlSZWdpc3RlcmVkTGliAAAAAAAAEAAAAAAAAAALT25seVNlbmRMaWIAAAAAEQAAAAAAAAAUUGF0aE5vdEluaXRpYWxpemFibGUAAAASAAAAAAAAABFQYXRoTm90VmVyaWZpYWJsZQAAAAAAABMAAAAAAAAAE1BheWxvYWRIYXNoTm90Rm91bmQAAAAAFAAAAAAAAAAJU2FtZVZhbHVlAAAAAAAAFQAAAAAAAAAMVW5hdXRob3JpemVkAAAAFgAAAAAAAAAOVW5zdXBwb3J0ZWRFaWQAAAAAABcAAAAAAAAAClplcm9acm9GZWUAAAAAABgAAAAAAAAADlpyb1VuYXZhaWxhYmxlAAAAAAAZAAAAAQAAAC1QYXJhbWV0ZXJzIGZvciBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAAD01lc3NhZ2luZ1BhcmFtcwAAAAAFAAAAK0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAB2RzdF9laWQAAAAABAAAABxUaGUgbWVzc2FnZSBwYXlsb2FkIHRvIHNlbmQuAAAAB21lc3NhZ2UAAAAADgAAACFFbmNvZGVkIGV4ZWN1dG9yIGFuZCBEVk4gb3B0aW9ucy4AAAAAAAAHb3B0aW9ucwAAAAAOAAAAOVdoZXRoZXIgdG8gcGF5IGZlZXMgaW4gWlJPIHRva2VuIGluc3RlYWQgb2YgbmF0aXZlIHRva2VuLgAAAAAAAApwYXlfaW5fenJvAAAAAAABAAAANVJlY2VpdmVyIGFkZHJlc3Mgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAABAAAATVNvdXJjZSBtZXNzYWdlIGluZm9ybWF0aW9uIGlkZW50aWZ5aW5nIHdoZXJlIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZSBjYW1lIGZyb20uAAAAAAAAAAAAAAZPcmlnaW4AAAAAAAMAAAAXTm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAABW5vbmNlAAAAAAAABgAAAC5TZW5kZXIgYWRkcmVzcyBvbiB0aGUgc291cmNlIGNoYWluICgzMiBieXRlcykuAAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAACZTb3VyY2UgZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAAB3NyY19laWQAAAAABAAAAAEAAAAoRmVlIHN0cnVjdHVyZSBmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnaW5nLgAAAAAAAAAMTWVzc2FnaW5nRmVlAAAAAgAAAB9GZWUgcGFpZCBpbiBuYXRpdmUgdG9rZW4gKFhMTSkuAAAAAApuYXRpdmVfZmVlAAAAAAALAAAAKEZlZSBwYWlkIGluIFpSTyB0b2tlbiAoTGF5ZXJaZXJvIHRva2VuKS4AAAAHenJvX2ZlZQAAAAALAAAAAQAAAEJSZWNlaXB0IHJldHVybmVkIGFmdGVyIHN1Y2Nlc3NmdWxseSBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAQTWVzc2FnaW5nUmVjZWlwdAAAAAMAAAApVGhlIGZlZXMgY2hhcmdlZCBmb3Igc2VuZGluZyB0aGUgbWVzc2FnZS4AAAAAAAADZmVlAAAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAK0dsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgbWVzc2FnZS4AAAAABGd1aWQAAAPuAAAAIAAAACRUaGUgb3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAAgAAADhUeXBlIG9mIG1lc3NhZ2UgbGlicmFyeSBpbmRpY2F0aW5nIHN1cHBvcnRlZCBvcGVyYXRpb25zLgAAAAAAAAAOTWVzc2FnZUxpYlR5cGUAAAAAAAMAAAAAAAAAH1N1cHBvcnRzIG9ubHkgc2VuZGluZyBtZXNzYWdlcy4AAAAABFNlbmQAAAAAAAAAIVN1cHBvcnRzIG9ubHkgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAAdSZWNlaXZlAAAAAAAAAAAtU3VwcG9ydHMgYm90aCBzZW5kaW5nIGFuZCByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAADlNlbmRBbmRSZWNlaXZlAAAAAAABAAAAt1ZlcnNpb24gaW5mb3JtYXRpb24gZm9yIGEgbWVzc2FnZSBsaWJyYXJ5LgoKTm90ZTogYG1pbm9yYCBhbmQgYGVuZHBvaW50X3ZlcnNpb25gIHVzZSBgdTMyYCBpbnN0ZWFkIG9mIGB1OGAgYmVjYXVzZSBTdGVsbGFyIGRvZXMgbm90CnN1cHBvcnQgYHU4YCB0eXBlcyBpbiBjb250cmFjdCBpbnRlcmZhY2UgZnVuY3Rpb25zLgAAAAAAAAAAEU1lc3NhZ2VMaWJWZXJzaW9uAAAAAAAAAwAAADNFbmRwb2ludCB2ZXJzaW9uIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAAEGVuZHBvaW50X3ZlcnNpb24AAAAEAAAAFU1ham9yIHZlcnNpb24gbnVtYmVyLgAAAAAAAAVtYWpvcgAAAAAAAAYAAAA3TWlub3IgdmVyc2lvbiBudW1iZXIgKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAFbWlub3IAAAAAAAAEAAAAAQAAADZUaW1lb3V0IGNvbmZpZ3VyYXRpb24gZm9yIHJlY2VpdmUgbGlicmFyeSB0cmFuc2l0aW9ucy4AAAAAAAAAAAAHVGltZW91dAAAAAACAAAAKFVuaXggdGltZXN0YW1wIHdoZW4gdGhlIHRpbWVvdXQgZXhwaXJlcy4AAAAGZXhwaXJ5AAAAAAAGAAAAKVRoZSBuZXcgbGlicmFyeSBhZGRyZXNzIHRvIHRyYW5zaXRpb24gdG8uAAAAAAAAA2xpYgAAAAATAAAAAQAAADVQYXJhbWV0ZXJzIGZvciBzZXR0aW5nIG1lc3NhZ2UgbGlicmFyeSBjb25maWd1cmF0aW9uLgAAAAAAAAAAAAAOU2V0Q29uZmlnUGFyYW0AAAAAAAMAAAAfWERSLWVuY29kZWQgY29uZmlndXJhdGlvbiBkYXRhLgAAAAAGY29uZmlnAAAAAAAOAAAAMFRoZSB0eXBlIG9mIGNvbmZpZ3VyYXRpb24gKGUuZy4sIGV4ZWN1dG9yLCBVTE4pLgAAAAtjb25maWdfdHlwZQAAAAAEAAAAJ1RoZSBlbmRwb2ludCBJRCB0aGlzIGNvbmZpZyBhcHBsaWVzIHRvLgAAAAADZWlkAAAAAAQAAAABAAAAMVJlc29sdmVkIGxpYnJhcnkgaW5mb3JtYXRpb24gd2l0aCBkZWZhdWx0IHN0YXR1cy4AAAAAAAAAAAAAD1Jlc29sdmVkTGlicmFyeQAAAAACAAAARFdoZXRoZXIgdGhpcyBpcyB0aGUgZGVmYXVsdCBsaWJyYXJ5ICh0cnVlKSBvciBPQXBwLXNwZWNpZmljIChmYWxzZSkuAAAACmlzX2RlZmF1bHQAAAAAAAEAAAAdVGhlIHJlc29sdmVkIGxpYnJhcnkgYWRkcmVzcy4AAAAAAAADbGliAAAAABMAAAABAAAASE91dGJvdW5kIHBhY2tldCBjb250YWluaW5nIGFsbCBpbmZvcm1hdGlvbiBmb3IgY3Jvc3MtY2hhaW4gdHJhbnNtaXNzaW9uLgAAAAAAAAAOT3V0Ym91bmRQYWNrZXQAAAAAAAcAAAAYRGVzdGluYXRpb24gZW5kcG9pbnQgSUQuAAAAB2RzdF9laWQAAAAABAAAACxHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBtZXNzYWdlLgAAAARndWlkAAAD7gAAACAAAAAUVGhlIG1lc3NhZ2UgcGF5bG9hZC4AAAAHbWVzc2FnZQAAAAAOAAAAIE91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAADFSZWNlaXZlciBhZGRyZXNzIG9uIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAAfU2VuZGVyIGFkZHJlc3Mgb24gc291cmNlIGNoYWluLgAAAAAGc2VuZGVyAAAAAAATAAAAE1NvdXJjZSBlbmRwb2ludCBJRC4AAAAAB3NyY19laWQAAAAABAAAAAEAAAArQSBmZWUgcmVjaXBpZW50IHdpdGggdGhlIGFtb3VudCB0byBiZSBwYWlkLgAAAAAAAAAADEZlZVJlY2lwaWVudAAAAAIAAAAVQW1vdW50IG9mIGZlZSB0byBwYXkuAAAAAAAABmFtb3VudAAAAAAACwAAAB9UaGUgYWRkcmVzcyB0byBzZW5kIHRoZSBmZWUgdG8uAAAAAAJ0bwAAAAAAEwAAAAEAAAA8UmVzdWx0IG9mIHNlbmQgb3BlcmF0aW9uIGNvbnRhaW5pbmcgZmVlcyBhbmQgZW5jb2RlZCBwYWNrZXQuAAAAAAAAAA1GZWVzQW5kUGFja2V0AAAAAAAAAwAAACpUaGUgZW5jb2RlZCBwYWNrZXQgcmVhZHkgZm9yIHRyYW5zbWlzc2lvbi4AAAAAAA5lbmNvZGVkX3BhY2tldAAAAAAADgAAAD9MaXN0IG9mIG5hdGl2ZSB0b2tlbiBmZWUgcmVjaXBpZW50cyAoZXhlY3V0b3IsIERWTnMsIHRyZWFzdXJ5KS4AAAAAFW5hdGl2ZV9mZWVfcmVjaXBpZW50cwAAAAAAA+oAAAfQAAAADEZlZVJlY2lwaWVudAAAACxMaXN0IG9mIFpSTyB0b2tlbiBmZWUgcmVjaXBpZW50cyAodHJlYXN1cnkpLgAAABJ6cm9fZmVlX3JlY2lwaWVudHMAAAAAA+oAAAfQAAAADEZlZVJlY2lwaWVudAAAAAQAAAAdUGFja2V0Q29kZWNWMUVycm9yOiAxMTAwLTExMDkAAAAAAAAAAAAAElBhY2tldENvZGVjVjFFcnJvcgAAAAAAAgAAAAAAAAATSW52YWxpZFBhY2tldEhlYWRlcgAAAARMAAAAAAAAABRJbnZhbGlkUGFja2V0VmVyc2lvbgAABE0AAAAEAAAAHVdvcmtlck9wdGlvbnNFcnJvcjogMTExMC0xMTE5AAAAAAAAAAAAABJXb3JrZXJPcHRpb25zRXJyb3IAAAAAAAkAAAAAAAAAEkludmFsaWRCeXRlc0xlbmd0aAAAAAAEVgAAAAAAAAAZSW52YWxpZExlZ2FjeU9wdGlvbnNUeXBlMQAAAAAABFcAAAAAAAAAGUludmFsaWRMZWdhY3lPcHRpb25zVHlwZTIAAAAAAARYAAAAAAAAABFJbnZhbGlkT3B0aW9uVHlwZQAAAAAABFkAAAAAAAAADkludmFsaWRPcHRpb25zAAAAAARaAAAAAAAAAA9JbnZhbGlkV29ya2VySWQAAAAEWwAAAAAAAAAdTGVnYWN5T3B0aW9uc1R5cGUxR2FzT3ZlcmZsb3cAAAAAAARcAAAAAAAAACBMZWdhY3lPcHRpb25zVHlwZTJBbW91bnRPdmVyZmxvdwAABF0AAAAAAAAAHUxlZ2FjeU9wdGlvbnNUeXBlMkdhc092ZXJmbG93AAAAAAAEXgAAAAQAAAAcQnVmZmVyUmVhZGVyRXJyb3I6IDEwMDAtMTAwOQAAAAAAAAARQnVmZmVyUmVhZGVyRXJyb3IAAAAAAAACAAAAAAAAAA1JbnZhbGlkTGVuZ3RoAAAAAAAD6AAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD6QAAAAQAAAAcQnVmZmVyV3JpdGVyRXJyb3I6IDEwMTAtMTAxOQAAAAAAAAARQnVmZmVyV3JpdGVyRXJyb3IAAAAAAAABAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPyAAAABAAAAB9UdGxDb25maWd1cmFibGVFcnJvcjogMTAyMC0xMDI5AAAAAAAAAAAUVHRsQ29uZmlndXJhYmxlRXJyb3IAAAADAAAAAAAAABBJbnZhbGlkVHRsQ29uZmlnAAAD/AAAAAAAAAAPVHRsQ29uZmlnRnJvemVuAAAAA/0AAAAAAAAAFlR0bENvbmZpZ0FscmVhZHlGcm96ZW4AAAAAA/4AAAAEAAAAF093bmFibGVFcnJvcjogMTAzMC0xMDM5AAAAAAAAAAAMT3duYWJsZUVycm9yAAAABgAAAAAAAAATSW52YWxpZFBlbmRpbmdPd25lcgAAAAQGAAAAAAAAAApJbnZhbGlkVHRsAAAAAAQHAAAAAAAAABFOb1BlbmRpbmdUcmFuc2ZlcgAAAAAABAgAAAAAAAAAD093bmVyQWxyZWFkeVNldAAAAAQJAAAAAAAAAAtPd25lck5vdFNldAAAAAQKAAAAAAAAABJUcmFuc2ZlckluUHJvZ3Jlc3MAAAAABAsAAAAEAAAAGEJ5dGVzRXh0RXJyb3I6IDEwNDAtMTA0OQAAAAAAAAANQnl0ZXNFeHRFcnJvcgAAAAAAAAEAAAAAAAAADkxlbmd0aE1pc21hdGNoAAAAAAQQAAAABAAAABtVcGdyYWRlYWJsZUVycm9yOiAxMDUwLTEwNTkAAAAAAAAAABBVcGdyYWRlYWJsZUVycm9yAAAAAwAAAAAAAAAUSW52YWxpZE1pZ3JhdGlvbkRhdGEAAAQaAAAAAAAAABNNaWdyYXRpb25Ob3RBbGxvd2VkAAAABBsAAAAAAAAADlVwZ3JhZGVzRnJvemVuAAAAAAQcAAAABAAAABhNdWx0aXNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpc2lnRXJyb3IAAAAAAAAIAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAADUludmFsaWRTaWduZXIAAAAAAAQlAAAAAAAAAA5TaWduYXR1cmVFcnJvcgAAAAAEJgAAAAAAAAATU2lnbmVyQWxyZWFkeUV4aXN0cwAAAAQnAAAAAAAAAA5TaWduZXJOb3RGb3VuZAAAAAAEKAAAAAAAAAAdVG90YWxTaWduZXJzTGVzc1RoYW5UaHJlc2hvbGQAAAAAAAQpAAAAAAAAAA9VbnNvcnRlZFNpZ25lcnMAAAAEKgAAAAAAAAANWmVyb1RocmVzaG9sZAAAAAAABCsAAAAFAAAAMEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHNpZ25lciBpcyBhZGRlZCBvciByZW1vdmVkLgAAAAAAAAAJU2lnbmVyU2V0AAAAAAAAAQAAAApzaWduZXJfc2V0AAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAQAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAANkV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2lnbmF0dXJlIHRocmVzaG9sZCBpcyBjaGFuZ2VkLgAAAAAAAAAAAAxUaHJlc2hvbGRTZXQAAAABAAAADXRocmVzaG9sZF9zZXQAAAAAAAABAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAPTXVsdGlzaWdTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAdTaWduZXJzAAAAAAAAAAAAAAAACVRocmVzaG9sZAAAAAAAAAUAAABXRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyB0cmFuc2ZlcnJlZCAoYm90aCBzaW5nbGUtc3RlcCBhbmQgdHdvLXN0ZXAgY29tcGxldGlvbikuAAAAAAAAAAAUT3duZXJzaGlwVHJhbnNmZXJyZWQAAAABAAAAFW93bmVyc2hpcF90cmFuc2ZlcnJlZAAAAAAAAAIAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAIAAAAFAAAAO0V2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgcHJvcG9zZWQuAAAAAAAAAAAVT3duZXJzaGlwVHJhbnNmZXJyaW5nAAAAAAAAAQAAABZvd25lcnNoaXBfdHJhbnNmZXJyaW5nAAAAAAADAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgcmVub3VuY2VkLgAAAAAAAAAAABJPd25lcnNoaXBSZW5vdW5jZWQAAAAAAAEAAAATb3duZXJzaGlwX3Jlbm91bmNlZAAAAAABAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAOT3duYWJsZVN0b3JhZ2UAAAAAAAIAAAAAAAAAAAAAAAVPd25lcgAAAAAAAAAAAAAAAAAADFBlbmRpbmdPd25lcgAAAAEAAABJVFRMIGNvbmZpZ3VyYXRpb246IHRocmVzaG9sZCAod2hlbiB0byBleHRlbmQpIGFuZCBleHRlbmRfdG8gKHRhcmdldCBUVEwpLgAAAAAAAAAAAAAJVHRsQ29uZmlnAAAAAAAAAgAAAChUYXJnZXQgVFRMIGFmdGVyIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAACWV4dGVuZF90bwAAAAAAAAQAAAAzVFRMIHRocmVzaG9sZCB0aGF0IHRyaWdnZXJzIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAABQAAACdFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIHNldC4AAAAAAAAAAA1UdGxDb25maWdzU2V0AAAAAAAAAQAAAA90dGxfY29uZmlnc19zZXQAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAAAAAAAAAEFR0bENvbmZpZ3NGcm96ZW4AAAABAAAAEnR0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAQVHRsQ29uZmlnU3RvcmFnZQAAAAMAAAAAAAAAAAAAAAZGcm96ZW4AAAAAAAAAAAAAAAAACEluc3RhbmNlAAAAAAAAAAAAAAAKUGVyc2lzdGVudAAAAAAAAgAAAAAAAAAAAAAAElVwZ3JhZGVhYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAJTWlncmF0aW5nAAAAAB4RY29udHJhY3RlbnZtZXRhdjAAAAAAAAAAGQAAAAAAbw5jb250cmFjdG1ldGF2MAAAAAAAAAAFcnN2ZXIAAAAAAAAGMS45MC4wAAAAAAAAAAAACHJzc2RrdmVyAAAALzI1LjAuMSM5NDE0NDgwNzllY2NmOTU2MjdkMmZmZWExM2JhMjY4ZTMwNWE5MDc3AABTDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAZjbGl2ZXIAAAAAAC8yNS4wLjAjYTY0OTI1ZTkzOTFjM2QzYjNlZjhlNTNkYzYwYzIzZGI5ZTZhODJlNAA=";
12
12
  /**
13
13
  * Pre-computed WASM hash (SHA-256)
14
14
  * Use this when the WASM is already uploaded on-chain
15
15
  */
16
- export declare const WASM_HASH = "4a095275d9b66e8866541540ae197b1a26aa87cb91c6c8aa4c2a5c30eac9f0ab";
16
+ export declare const WASM_HASH = "1e88f3e179cb6dbabb6332b6b4279b5b04c3d10f361e12f084a3db2ec1872553";
17
17
  /**
18
18
  * Get the WASM bytecode as a Buffer
19
19
  * Use this to upload the WASM to the network
@@ -721,24 +721,10 @@ export interface Client {
721
721
  simulate?: boolean;
722
722
  }) => Promise<AssembledTransaction<string>>;
723
723
  /**
724
- * 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.
725
- * Sets TTL configs for instance and persistent storage.
726
- *
727
- * - `None` values remove the corresponding config (disables auto-extension for that type)
728
- * - Validates that `threshold <= extend_to <= MAX_TTL`
729
- *
730
- * # Arguments
731
- * - `instance` - TTL config for instance storage
732
- * - `persistent` - TTL config for persistent storage
733
- *
734
- * # Panics
735
- * - `TtlConfigFrozen` if configs are frozen
736
- * - `InvalidTtlConfig` if validation fails
724
+ * 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.
725
+ * Returns the current owner address, or None if no owner is set.
737
726
  */
738
- set_ttl_configs: ({ instance, persistent }: {
739
- instance: Option<TtlConfig>;
740
- persistent: Option<TtlConfig>;
741
- }, txnOptions?: {
727
+ owner: (txnOptions?: {
742
728
  /**
743
729
  * The fee to pay for the transaction. Default: BASE_FEE
744
730
  */
@@ -751,12 +737,12 @@ export interface Client {
751
737
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
752
738
  */
753
739
  simulate?: boolean;
754
- }) => Promise<AssembledTransaction<null>>;
740
+ }) => Promise<AssembledTransaction<Option<string>>>;
755
741
  /**
756
- * 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.
757
- * Returns the current TTL configs as (instance_config, persistent_config).
742
+ * 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.
743
+ * Returns the pending owner address for 2-step transfer, or None if no transfer is pending.
758
744
  */
759
- ttl_configs: (txnOptions?: {
745
+ pending_owner: (txnOptions?: {
760
746
  /**
761
747
  * The fee to pay for the transaction. Default: BASE_FEE
762
748
  */
@@ -769,18 +755,21 @@ export interface Client {
769
755
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
770
756
  */
771
757
  simulate?: boolean;
772
- }) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
758
+ }) => Promise<AssembledTransaction<Option<string>>>;
773
759
  /**
774
- * 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.
775
- * Permanently freezes TTL configs, preventing any future modifications.
760
+ * 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.
761
+ * Transfers ownership immediately to a new address.
776
762
  *
777
- * This is irreversible and provides immutability guarantees to users.
778
- * Emits `TtlConfigsFrozen` event.
763
+ * Use with caution - if you transfer to a wrong address, ownership is lost forever.
764
+ * Consider using `propose_ownership_transfer` instead.
779
765
  *
780
766
  * # Panics
781
- * - `TtlConfigAlreadyFrozen` if already frozen
767
+ * - `OwnerNotSet` if no owner is currently set
768
+ * - `TransferInProgress` if a 2-step transfer is in progress
782
769
  */
783
- freeze_ttl_configs: (txnOptions?: {
770
+ transfer_ownership: ({ new_owner }: {
771
+ new_owner: string;
772
+ }, txnOptions?: {
784
773
  /**
785
774
  * The fee to pay for the transaction. Default: BASE_FEE
786
775
  */
@@ -795,10 +784,27 @@ export interface Client {
795
784
  simulate?: boolean;
796
785
  }) => Promise<AssembledTransaction<null>>;
797
786
  /**
798
- * 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.
799
- * Returns whether TTL configs are frozen.
787
+ * 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.
788
+ * Proposes an ownership transfer to a new address.
789
+ *
790
+ * The new owner must call `accept_ownership()` within `ttl` ledgers
791
+ * to complete the transfer. The pending transfer will automatically expire after.
792
+ *
793
+ * # Arguments
794
+ * - `new_owner` - The proposed new owner
795
+ * - `ttl` - Number of ledgers the new owner has to accept.
796
+ * Use `0` to cancel a pending transfer (new_owner must match pending).
797
+ *
798
+ * # Panics
799
+ * - `OwnerNotSet` if no owner is currently set
800
+ * - `NoPendingTransfer` when cancelling and no pending transfer exists
801
+ * - `InvalidTtl` if ttl exceeds max TTL
802
+ * - `InvalidPendingOwner` when cancelling with wrong new_owner address
800
803
  */
801
- is_ttl_configs_frozen: (txnOptions?: {
804
+ propose_ownership_transfer: ({ new_owner, ttl }: {
805
+ new_owner: string;
806
+ ttl: u32;
807
+ }, txnOptions?: {
802
808
  /**
803
809
  * The fee to pay for the transaction. Default: BASE_FEE
804
810
  */
@@ -811,20 +817,17 @@ export interface Client {
811
817
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
812
818
  */
813
819
  simulate?: boolean;
814
- }) => Promise<AssembledTransaction<boolean>>;
820
+ }) => Promise<AssembledTransaction<null>>;
815
821
  /**
816
- * 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.
817
- * Extends the instance TTL.
822
+ * 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.
823
+ * Accepts a pending 2-step ownership transfer.
818
824
  *
819
- * # Arguments
825
+ * Must be called by the pending owner before the TTL expires.
820
826
  *
821
- * * `threshold` - The threshold to extend the TTL (if current TTL is below this, extend).
822
- * * `extend_to` - The TTL to extend to.
827
+ * # Panics
828
+ * - `NoPendingTransfer` if there is no pending transfer (or it expired)
823
829
  */
824
- extend_instance_ttl: ({ threshold, extend_to }: {
825
- threshold: u32;
826
- extend_to: u32;
827
- }, txnOptions?: {
830
+ accept_ownership: (txnOptions?: {
828
831
  /**
829
832
  * The fee to pay for the transaction. Default: BASE_FEE
830
833
  */
@@ -839,10 +842,14 @@ export interface Client {
839
842
  simulate?: boolean;
840
843
  }) => Promise<AssembledTransaction<null>>;
841
844
  /**
842
- * 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.
843
- * Returns the current owner address, or None if no owner is set.
845
+ * 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.
846
+ * Permanently renounces ownership.
847
+ *
848
+ * # Panics
849
+ * - `OwnerNotSet` if no owner is currently set
850
+ * - `TransferInProgress` if a 2-step transfer is in progress (cancel it first)
844
851
  */
845
- owner: (txnOptions?: {
852
+ renounce_ownership: (txnOptions?: {
846
853
  /**
847
854
  * The fee to pay for the transaction. Default: BASE_FEE
848
855
  */
@@ -855,12 +862,20 @@ export interface Client {
855
862
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
856
863
  */
857
864
  simulate?: boolean;
858
- }) => Promise<AssembledTransaction<Option<string>>>;
865
+ }) => Promise<AssembledTransaction<null>>;
859
866
  /**
860
- * 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.
861
- * Returns the pending owner address for 2-step transfer, or None if no transfer is pending.
867
+ * 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.
868
+ * Extends the instance TTL.
869
+ *
870
+ * # Arguments
871
+ *
872
+ * * `threshold` - The threshold to extend the TTL (if current TTL is below this, extend).
873
+ * * `extend_to` - The TTL to extend to.
862
874
  */
863
- pending_owner: (txnOptions?: {
875
+ extend_instance_ttl: ({ threshold, extend_to }: {
876
+ threshold: u32;
877
+ extend_to: u32;
878
+ }, txnOptions?: {
864
879
  /**
865
880
  * The fee to pay for the transaction. Default: BASE_FEE
866
881
  */
@@ -873,20 +888,25 @@ export interface Client {
873
888
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
874
889
  */
875
890
  simulate?: boolean;
876
- }) => Promise<AssembledTransaction<Option<string>>>;
891
+ }) => Promise<AssembledTransaction<null>>;
877
892
  /**
878
- * 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.
879
- * Transfers ownership immediately to a new address.
893
+ * 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.
894
+ * Sets TTL configs for instance and persistent storage.
880
895
  *
881
- * Use with caution - if you transfer to a wrong address, ownership is lost forever.
882
- * Consider using `propose_ownership_transfer` instead.
896
+ * - `None` values remove the corresponding config (disables auto-extension for that type)
897
+ * - Validates that `threshold <= extend_to <= MAX_TTL`
898
+ *
899
+ * # Arguments
900
+ * - `instance` - TTL config for instance storage
901
+ * - `persistent` - TTL config for persistent storage
883
902
  *
884
903
  * # Panics
885
- * - `OwnerNotSet` if no owner is currently set
886
- * - `TransferInProgress` if a 2-step transfer is in progress
904
+ * - `TtlConfigFrozen` if configs are frozen
905
+ * - `InvalidTtlConfig` if validation fails
887
906
  */
888
- transfer_ownership: ({ new_owner }: {
889
- new_owner: string;
907
+ set_ttl_configs: ({ instance, persistent }: {
908
+ instance: Option<TtlConfig>;
909
+ persistent: Option<TtlConfig>;
890
910
  }, txnOptions?: {
891
911
  /**
892
912
  * The fee to pay for the transaction. Default: BASE_FEE
@@ -902,27 +922,10 @@ export interface Client {
902
922
  simulate?: boolean;
903
923
  }) => Promise<AssembledTransaction<null>>;
904
924
  /**
905
- * 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.
906
- * Proposes an ownership transfer to a new address.
907
- *
908
- * The new owner must call `accept_ownership()` within `ttl` ledgers
909
- * to complete the transfer. The pending transfer will automatically expire after.
910
- *
911
- * # Arguments
912
- * - `new_owner` - The proposed new owner
913
- * - `ttl` - Number of ledgers the new owner has to accept.
914
- * Use `0` to cancel a pending transfer (new_owner must match pending).
915
- *
916
- * # Panics
917
- * - `OwnerNotSet` if no owner is currently set
918
- * - `NoPendingTransfer` when cancelling and no pending transfer exists
919
- * - `InvalidTtl` if ttl exceeds max TTL
920
- * - `InvalidPendingOwner` when cancelling with wrong new_owner address
925
+ * 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.
926
+ * Returns the current TTL configs as (instance_config, persistent_config).
921
927
  */
922
- propose_ownership_transfer: ({ new_owner, ttl }: {
923
- new_owner: string;
924
- ttl: u32;
925
- }, txnOptions?: {
928
+ ttl_configs: (txnOptions?: {
926
929
  /**
927
930
  * The fee to pay for the transaction. Default: BASE_FEE
928
931
  */
@@ -935,17 +938,18 @@ export interface Client {
935
938
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
936
939
  */
937
940
  simulate?: boolean;
938
- }) => Promise<AssembledTransaction<null>>;
941
+ }) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
939
942
  /**
940
- * 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.
941
- * Accepts a pending 2-step ownership transfer.
943
+ * 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.
944
+ * Permanently freezes TTL configs, preventing any future modifications.
942
945
  *
943
- * Must be called by the pending owner before the TTL expires.
946
+ * This is irreversible and provides immutability guarantees to users.
947
+ * Emits `TtlConfigsFrozen` event.
944
948
  *
945
949
  * # Panics
946
- * - `NoPendingTransfer` if there is no pending transfer (or it expired)
950
+ * - `TtlConfigAlreadyFrozen` if already frozen
947
951
  */
948
- accept_ownership: (txnOptions?: {
952
+ freeze_ttl_configs: (txnOptions?: {
949
953
  /**
950
954
  * The fee to pay for the transaction. Default: BASE_FEE
951
955
  */
@@ -960,14 +964,10 @@ export interface Client {
960
964
  simulate?: boolean;
961
965
  }) => Promise<AssembledTransaction<null>>;
962
966
  /**
963
- * 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.
964
- * Permanently renounces ownership.
965
- *
966
- * # Panics
967
- * - `OwnerNotSet` if no owner is currently set
968
- * - `TransferInProgress` if a 2-step transfer is in progress (cancel it first)
967
+ * 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.
968
+ * Returns whether TTL configs are frozen.
969
969
  */
970
- renounce_ownership: (txnOptions?: {
970
+ is_ttl_configs_frozen: (txnOptions?: {
971
971
  /**
972
972
  * The fee to pay for the transaction. Default: BASE_FEE
973
973
  */
@@ -980,7 +980,7 @@ export interface Client {
980
980
  * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
981
981
  */
982
982
  simulate?: boolean;
983
- }) => Promise<AssembledTransaction<null>>;
983
+ }) => Promise<AssembledTransaction<boolean>>;
984
984
  }
985
985
  export declare class Client extends ContractClient {
986
986
  readonly options: ContractClientOptions;
@@ -1009,16 +1009,16 @@ export declare class Client extends ContractClient {
1009
1009
  fee_enabled: (json: string) => AssembledTransaction<boolean>;
1010
1010
  zro_fee_lib: (json: string) => AssembledTransaction<Option<string>>;
1011
1011
  authorizer: (json: string) => AssembledTransaction<string>;
1012
- set_ttl_configs: (json: string) => AssembledTransaction<null>;
1013
- ttl_configs: (json: string) => AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>;
1014
- freeze_ttl_configs: (json: string) => AssembledTransaction<null>;
1015
- is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
1016
- extend_instance_ttl: (json: string) => AssembledTransaction<null>;
1017
1012
  owner: (json: string) => AssembledTransaction<Option<string>>;
1018
1013
  pending_owner: (json: string) => AssembledTransaction<Option<string>>;
1019
1014
  transfer_ownership: (json: string) => AssembledTransaction<null>;
1020
1015
  propose_ownership_transfer: (json: string) => AssembledTransaction<null>;
1021
1016
  accept_ownership: (json: string) => AssembledTransaction<null>;
1022
1017
  renounce_ownership: (json: string) => AssembledTransaction<null>;
1018
+ extend_instance_ttl: (json: string) => AssembledTransaction<null>;
1019
+ set_ttl_configs: (json: string) => AssembledTransaction<null>;
1020
+ ttl_configs: (json: string) => AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>;
1021
+ freeze_ttl_configs: (json: string) => AssembledTransaction<null>;
1022
+ is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
1023
1023
  };
1024
1024
  }