@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.
- package/.turbo/turbo-build.log +795 -791
- package/.turbo/turbo-lint.log +325 -155
- package/.turbo/turbo-test.log +1398 -1277
- package/Cargo.lock +122 -111
- package/Cargo.toml +32 -16
- package/contracts/common-macros/Cargo.toml +7 -7
- package/contracts/common-macros/src/auth.rs +18 -37
- package/contracts/common-macros/src/contract_ttl.rs +18 -7
- package/contracts/common-macros/src/lib.rs +31 -14
- package/contracts/common-macros/src/lz_contract.rs +38 -7
- package/contracts/common-macros/src/storage.rs +251 -292
- package/contracts/common-macros/src/tests/contract_ttl.rs +1 -1
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_multisig_code.snap +6 -12
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_ownable_code.snap +12 -17
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap +2 -1
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_configurable__snapshot_generated_ttl_configurable_code.snap +2 -7
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__upgradeable__snapshot_generated_upgradeable_code.snap +20 -14
- package/contracts/common-macros/src/tests/upgradeable.rs +26 -4
- package/contracts/common-macros/src/ttl_configurable.rs +2 -10
- package/contracts/common-macros/src/ttl_extendable.rs +2 -10
- package/contracts/common-macros/src/upgradeable.rs +61 -26
- package/contracts/common-macros/src/utils.rs +0 -9
- package/contracts/endpoint-v2/src/lib.rs +3 -2
- package/contracts/endpoint-v2/src/tests/endpoint_v2/clear.rs +2 -2
- package/contracts/endpoint-v2/src/tests/endpoint_v2/lz_receive_alert.rs +3 -3
- package/contracts/endpoint-v2/src/tests/endpoint_v2/send.rs +4 -4
- package/contracts/endpoint-v2/src/tests/endpoint_v2/set_delegate.rs +17 -5
- package/contracts/endpoint-v2/src/tests/endpoint_v2/set_zro.rs +4 -4
- package/contracts/endpoint-v2/src/tests/endpoint_v2/verify.rs +2 -2
- package/contracts/endpoint-v2/src/tests/message_lib_manager/register_library.rs +2 -2
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_receive_lib_timeout.rs +6 -6
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_receive_library.rs +67 -37
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_send_library.rs +5 -5
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_receive_library.rs +44 -54
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_receive_library_timeout.rs +7 -7
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_send_library.rs +8 -8
- package/contracts/endpoint-v2/src/tests/messaging_channel/burn.rs +3 -3
- package/contracts/endpoint-v2/src/tests/messaging_channel/nilify.rs +4 -4
- package/contracts/endpoint-v2/src/tests/messaging_channel/skip.rs +3 -3
- package/contracts/endpoint-v2/src/tests/messaging_composer/clear_compose.rs +2 -2
- package/contracts/endpoint-v2/src/tests/messaging_composer/lz_compose_alert.rs +3 -3
- package/contracts/endpoint-v2/src/tests/messaging_composer/send_compose.rs +2 -2
- package/contracts/layerzero-views/Cargo.toml +0 -1
- package/contracts/layerzero-views/src/layerzero_view.rs +1 -13
- package/contracts/macro-integration-tests/Cargo.toml +5 -15
- package/contracts/macro-integration-tests/tests/runtime/oapp/mod.rs +48 -0
- package/contracts/macro-integration-tests/tests/runtime/oapp/oapp_core.rs +170 -0
- package/contracts/macro-integration-tests/tests/runtime/oapp/options_type3.rs +154 -0
- package/contracts/macro-integration-tests/tests/runtime/oapp/receiver.rs +338 -0
- package/contracts/macro-integration-tests/tests/runtime/oapp/sender.rs +435 -0
- package/contracts/macro-integration-tests/tests/runtime.rs +1 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/custom_wrong_value.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/custom_wrong_value.stderr +5 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_lz_receive_internal.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_lz_receive_internal.stderr +71 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/non_struct_input.rs +10 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/non_struct_input.stderr +5 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/unknown_custom_option.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/unknown_custom_option.stderr +5 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/wrong_key.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/wrong_key.stderr +5 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/pass/custom_all.rs +38 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/pass/custom_single_trait.rs +96 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/pass/minimal_contract.rs +64 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/pass/struct_with_fields.rs +46 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.stderr +8 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/namespacing_and_imports.rs +1 -1
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/only_auth_env_param_variants.rs +1 -1
- package/contracts/macro-integration-tests/tests/ui_oapp.rs +11 -0
- package/contracts/message-libs/message-lib-common/Cargo.toml +0 -1
- package/contracts/message-libs/message-lib-common/src/errors.rs +1 -1
- package/contracts/message-libs/treasury/Cargo.toml +0 -2
- package/contracts/message-libs/treasury/src/tests/treasury_tests.rs +2 -2
- package/contracts/message-libs/uln-302/src/events.rs +4 -0
- package/contracts/message-libs/uln-302/src/send_uln.rs +22 -6
- package/contracts/message-libs/uln-302/src/tests/receive_uln302/effective_receive_uln_config.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/receive_uln302/set_default_receive_uln_configs.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/receive_uln302/verify.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/send_uln302/effective_executor_config.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/send_uln302/effective_send_uln_config.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/send_uln302/send.rs +21 -67
- package/contracts/message-libs/uln-302/src/tests/send_uln302/set_default_executor_configs.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/send_uln302/set_default_send_uln_configs.rs +2 -2
- package/contracts/oapps/counter/Cargo.toml +5 -6
- package/contracts/oapps/counter/integration_tests/setup_uln.rs +1 -1
- package/contracts/oapps/counter/integration_tests/utils.rs +19 -12
- package/contracts/oapps/oapp/src/errors.rs +1 -1
- package/contracts/oapps/oapp/src/interfaces/mod.rs +3 -0
- package/contracts/oapps/oapp/src/interfaces/oapp_msg_inspector.rs +47 -0
- package/contracts/oapps/oapp/src/lib.rs +1 -0
- package/contracts/oapps/oapp/src/macro_tests/test_macros.rs +4 -4
- package/contracts/oapps/oapp/src/oapp_core.rs +5 -5
- package/contracts/oapps/oapp/src/oapp_options_type3.rs +12 -4
- package/contracts/oapps/oapp/src/oapp_receiver.rs +14 -9
- package/contracts/oapps/oapp/src/tests/mod.rs +4 -4
- package/contracts/oapps/oapp/src/tests/oapp_core.rs +223 -0
- package/contracts/oapps/oapp/src/tests/oapp_options_type3.rs +240 -0
- package/contracts/oapps/oapp/src/tests/oapp_receiver.rs +381 -0
- package/contracts/oapps/oapp/src/tests/oapp_sender.rs +569 -0
- package/contracts/oapps/oapp-macros/Cargo.toml +8 -4
- package/contracts/oapps/oapp-macros/src/generators.rs +9 -34
- package/contracts/oapps/oapp-macros/src/lib.rs +3 -0
- package/contracts/oapps/oapp-macros/src/tests/mod.rs +2 -0
- package/contracts/oapps/oapp-macros/src/tests/oapp.rs +88 -0
- package/contracts/oapps/oapp-macros/src/tests/parse_custom_impls.rs +86 -0
- package/contracts/oapps/oapp-macros/src/tests/snapshots/oapp_macros__tests__oapp__snapshot_generate_oapp.snap +103 -0
- package/contracts/oapps/oft/integration-tests/utils.rs +28 -8
- package/contracts/oapps/oft/src/extensions/oft_fee.rs +153 -75
- package/contracts/oapps/oft/src/extensions/pausable.rs +61 -12
- package/contracts/oapps/oft/src/extensions/rate_limiter.rs +198 -134
- package/contracts/oapps/oft/src/oft.rs +45 -50
- package/contracts/oapps/oft/src/oft_types/lock_unlock.rs +1 -1
- package/contracts/oapps/oft/src/oft_types/mint_burn.rs +4 -26
- package/contracts/oapps/oft-core/Cargo.toml +1 -4
- package/contracts/oapps/oft-core/integration-tests/setup.rs +3 -3
- package/contracts/oapps/oft-core/integration-tests/utils.rs +21 -3
- package/contracts/oapps/oft-core/src/errors.rs +3 -2
- package/contracts/oapps/oft-core/src/events.rs +6 -0
- package/contracts/oapps/oft-core/src/lib.rs +1 -1
- package/contracts/oapps/oft-core/src/oft_core.rs +341 -246
- package/contracts/oapps/oft-core/src/storage.rs +7 -3
- package/contracts/oapps/oft-core/src/tests/mod.rs +1 -0
- package/contracts/oapps/oft-core/src/tests/test_decimals.rs +37 -2
- package/contracts/oapps/oft-core/src/tests/test_lz_receive.rs +2 -2
- package/contracts/oapps/oft-core/src/tests/test_msg_inspector.rs +323 -0
- package/contracts/oapps/oft-core/src/tests/test_send.rs +2 -2
- package/contracts/oapps/oft-core/src/tests/test_utils.rs +61 -16
- package/contracts/upgrader/src/lib.rs +30 -57
- package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract1.wasm +0 -0
- package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract2.wasm +0 -0
- package/contracts/upgrader/src/tests/test_upgrader.rs +44 -35
- package/contracts/utils/Cargo.toml +0 -1
- package/contracts/utils/src/buffer_reader.rs +1 -0
- package/contracts/utils/src/errors.rs +4 -2
- package/contracts/utils/src/multisig.rs +17 -8
- package/contracts/utils/src/ownable.rs +6 -6
- package/contracts/utils/src/testing_utils.rs +124 -54
- package/contracts/utils/src/tests/multisig.rs +12 -12
- package/contracts/utils/src/tests/ownable.rs +6 -6
- package/contracts/utils/src/tests/testing_utils.rs +50 -167
- package/contracts/utils/src/tests/ttl_configurable.rs +5 -5
- package/contracts/utils/src/tests/upgradeable.rs +372 -175
- package/contracts/utils/src/ttl_configurable.rs +13 -7
- package/contracts/utils/src/upgradeable.rs +48 -23
- package/contracts/workers/dvn/Cargo.toml +6 -6
- package/contracts/workers/dvn/src/auth.rs +12 -42
- package/contracts/workers/dvn/src/dvn.rs +15 -40
- package/contracts/workers/dvn/src/errors.rs +0 -1
- package/contracts/workers/dvn/src/interfaces/dvn.rs +35 -0
- package/contracts/workers/dvn/src/lib.rs +4 -3
- package/contracts/workers/dvn/src/tests/auth.rs +1 -1
- package/contracts/workers/dvn/src/tests/dvn.rs +19 -15
- package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +2 -4
- package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +1 -3
- package/contracts/workers/dvn/src/tests/setup.rs +5 -9
- package/contracts/workers/dvn-fee-lib/Cargo.toml +2 -2
- package/contracts/workers/dvn-fee-lib/src/dvn_fee_lib.rs +38 -22
- package/contracts/workers/dvn-fee-lib/src/lib.rs +12 -2
- package/contracts/workers/dvn-fee-lib/src/tests/dvn_fee_lib.rs +17 -16
- package/contracts/workers/executor/Cargo.toml +4 -0
- package/contracts/workers/executor/src/executor.rs +15 -36
- package/contracts/workers/executor/src/lib.rs +2 -2
- package/contracts/workers/executor/src/tests/auth.rs +394 -0
- package/contracts/workers/executor/src/tests/executor.rs +410 -0
- package/contracts/workers/executor/src/tests/mod.rs +3 -0
- package/contracts/workers/executor/src/tests/setup.rs +250 -0
- package/contracts/workers/executor-fee-lib/Cargo.toml +7 -1
- package/contracts/workers/executor-fee-lib/src/executor_fee_lib.rs +62 -15
- package/contracts/workers/executor-fee-lib/src/executor_option.rs +28 -1
- package/contracts/workers/executor-fee-lib/src/lib.rs +11 -2
- package/contracts/workers/executor-fee-lib/src/tests/executor_fee_lib.rs +701 -0
- package/contracts/workers/executor-fee-lib/src/tests/executor_option.rs +370 -0
- package/contracts/workers/executor-fee-lib/src/tests/mod.rs +4 -0
- package/contracts/workers/executor-fee-lib/src/tests/setup.rs +60 -0
- package/contracts/workers/executor-helper/Cargo.toml +0 -1
- package/contracts/workers/executor-helper/src/lib.rs +3 -0
- package/contracts/workers/executor-helper/src/tests/executor_helper.rs +184 -0
- package/contracts/workers/executor-helper/src/tests/mod.rs +2 -0
- package/contracts/workers/executor-helper/src/tests/setup.rs +366 -0
- package/contracts/workers/fee-lib-interfaces/Cargo.toml +14 -0
- package/contracts/workers/{worker/src/interfaces/mod.rs → fee-lib-interfaces/src/lib.rs} +4 -3
- package/contracts/workers/price-feed/Cargo.toml +7 -1
- package/contracts/workers/price-feed/src/events.rs +1 -1
- package/contracts/workers/price-feed/src/lib.rs +12 -4
- package/contracts/workers/price-feed/src/price_feed.rs +5 -21
- package/contracts/workers/price-feed/src/storage.rs +1 -1
- package/contracts/workers/price-feed/src/tests/mod.rs +2 -0
- package/contracts/workers/price-feed/src/tests/price_feed.rs +869 -0
- package/contracts/workers/price-feed/src/tests/setup.rs +70 -0
- package/contracts/workers/price-feed/src/types.rs +1 -1
- package/contracts/workers/worker/src/errors.rs +1 -4
- package/contracts/workers/worker/src/lib.rs +0 -2
- package/contracts/workers/worker/src/storage.rs +32 -29
- package/contracts/workers/worker/src/tests/setup.rs +2 -8
- package/contracts/workers/worker/src/tests/worker.rs +96 -74
- package/contracts/workers/worker/src/worker.rs +75 -75
- package/docs/error-spec.md +55 -0
- package/docs/layerzero-v2-on-stellar.md +447 -0
- package/docs/oapp-guide.md +212 -0
- package/docs/oft-guide.md +314 -0
- package/package.json +3 -3
- package/sdk/.turbo/turbo-test.log +268 -263
- package/sdk/dist/generated/bml.d.ts +12 -4
- package/sdk/dist/generated/bml.js +9 -7
- package/sdk/dist/generated/counter.d.ts +306 -298
- package/sdk/dist/generated/counter.js +48 -46
- package/sdk/dist/generated/dvn.d.ts +450 -411
- package/sdk/dist/generated/dvn.js +66 -64
- package/sdk/dist/generated/dvn_fee_lib.d.ts +294 -338
- package/sdk/dist/generated/dvn_fee_lib.js +33 -64
- package/sdk/dist/generated/endpoint.d.ts +108 -100
- package/sdk/dist/generated/endpoint.js +21 -19
- package/sdk/dist/generated/executor.d.ts +414 -370
- package/sdk/dist/generated/executor.js +58 -55
- package/sdk/dist/generated/executor_fee_lib.d.ts +333 -377
- package/sdk/dist/generated/executor_fee_lib.js +34 -65
- package/sdk/dist/generated/executor_helper.d.ts +26 -190
- package/sdk/dist/generated/executor_helper.js +23 -28
- package/sdk/dist/generated/layerzero_view.d.ts +1271 -0
- package/sdk/dist/generated/layerzero_view.js +294 -0
- package/sdk/dist/generated/oft.d.ts +408 -385
- package/sdk/dist/generated/oft.js +89 -92
- package/sdk/dist/generated/price_feed.d.ts +385 -429
- package/sdk/dist/generated/price_feed.js +50 -81
- package/sdk/dist/generated/sml.d.ts +108 -100
- package/sdk/dist/generated/sml.js +21 -19
- package/sdk/dist/generated/treasury.d.ts +108 -100
- package/sdk/dist/generated/treasury.js +21 -19
- package/sdk/dist/generated/uln302.d.ts +108 -100
- package/sdk/dist/generated/uln302.js +23 -21
- package/sdk/dist/generated/upgrader.d.ts +189 -18
- package/sdk/dist/generated/upgrader.js +84 -4
- package/sdk/dist/index.d.ts +1 -0
- package/sdk/dist/index.js +2 -0
- package/sdk/package.json +1 -1
- package/sdk/src/index.ts +3 -0
- package/sdk/test/oft-sml.test.ts +4 -4
- package/sdk/test/suites/localnet.ts +84 -20
- package/sdk/test/upgrader.test.ts +2 -3
- package/tools/ts-bindings-gen/src/main.rs +2 -1
- package/contracts/ERROR_SPEC.md +0 -44
- package/contracts/endpoint-v2/ARCHITECTURE.md +0 -233
- package/contracts/oapps/oapp/src/tests/test_oapp_core.rs +0 -175
- package/contracts/oapps/oapp/src/tests/test_oapp_options_type3.rs +0 -212
- package/contracts/oapps/oapp/src/tests/test_oapp_receiver.rs +0 -153
- package/contracts/oapps/oapp/src/tests/test_oapp_sender.rs +0 -294
- /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/dvn_fee_lib.rs +0 -0
- /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/executor_fee_lib.rs +0 -0
- /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/price_feed.rs +0 -0
|
@@ -4,17 +4,16 @@ import type { u32, u64, u128, 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:
|
|
9
|
+
* Size: 57505 bytes (56.16 KB)
|
|
11
10
|
*/
|
|
12
|
-
export declare const WASM_BASE64 = "AGFzbQEAAAABzgEhYAJ+fgF+YAF+AX5gA35+fgF+YAABfmAEfn5+fgF+YAN/f38AYAF/AX5gA35+fgBgA39+fgBgAABgAAF/YAF/AGACf38AYAJ+fgF/YAJ+fgBgA35+fwBgAn9+AGABfgBgAn5/AGAEf39/fwF+YAF+AX9gAn9/AX5gAX8Bf2AFfn9/f38AYAN+f38BfmACf38Bf2ADf35+AX5gA39/fgBgB35+fn5+fn4BfmAFf35/fn4AYAR+fn9/AX5gCX5+fn5+fn5+fgF+YAN/f38BfwKhAjABbAExAAABYQEwAAEBdgEzAAEBdgExAAABYgE4AAEBYgE2AAABYgFmAAIBYwEyAAIBYwExAAEBdgFkAAABdgEyAAABdgE2AAABeAExAAABdgFfAAMBeAE0AAMBaQEwAAEBdgE4AAEBeAE3AAMBeAEwAAABYgFlAAABYgEwAAEBYwEwAAIBbAFfAAIBbAEyAAABaQFfAAEBZAFfAAIBaQE4AAEBaQE3AAEBYgE0AAMBYgFfAAEBbAE2AAEBeAEzAAMBeAE4AAMBYgEzAAABbQFhAAQBdgFnAAABYgFtAAIBaQE2AAABYgFqAAABYgEyAAQBbQE5AAIBbAEwAAABbAE4AAABeAE1AAEBbAE3AAQBaQEzAAABaQE1AAEBaQE0AAEDogGgAQUGBwgJCgsMBg0DAw4KDwMQDQwNEQkKBRAIEgMQEAsFARMRFBIDFQMMEgwKDBQWAwMUChQKBhQMEBcQDAgCEBAMGBkKEBAQFhUaARsAAAsLAAALABECABEAEREBAwMBAwEBAQMDAwMBAxwdCBwMFQABAwIeHwwMBgwRCwIAAQsBAwMAEAYDDAMDAAAQERIBAwMBAwACCQUQEAUMBQwQICAEBQFwAQEBBQMBABEGIQR/AUGAgMAAC38AQcyCwAALfwBB+IrAAAt/AEGAi8AACweNBzUGbWVtb3J5AgAMX19jaGVja19hdXRoAG0Kc2V0X3BhdXNlZAB6GXNldF9zdXBwb3J0ZWRfbWVzc2FnZV9saWIAfA1zZXRfYWxsb3dsaXN0AH0Mc2V0X2RlbnlsaXN0AIABGnNldF9kZWZhdWx0X211bHRpcGxpZXJfYnBzAIEBE3NldF9kZXBvc2l0X2FkZHJlc3MAgwEac2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXMAhQESc2V0X3dvcmtlcl9mZWVfbGliAIYBDnNldF9wcmljZV9mZWVkAIgBCGlzX2FkbWluAIsBBmFkbWlucwCMAQZwYXVzZWQAjQEYaXNfc3VwcG9ydGVkX21lc3NhZ2VfbGliAI4BDG1lc3NhZ2VfbGlicwCPAQ9pc19vbl9hbGxvd2xpc3QAkAEOaXNfb25fZGVueWxpc3QAkQEHaGFzX2FjbACSAQ5hbGxvd2xpc3Rfc2l6ZQCTARZkZWZhdWx0X211bHRpcGxpZXJfYnBzAJQBD2RlcG9zaXRfYWRkcmVzcwCVAQpwcmljZV9mZWVkAJYBGmdldF9zdXBwb3J0ZWRfb3B0aW9uX3R5cGVzAJcBDndvcmtlcl9mZWVfbGliAJgBB2dldF9mZWUAmQEKYXNzaWduX2pvYgCcAQ5zZXRfZHN0X2NvbmZpZwCfAQpkc3RfY29uZmlnAKABA3ZpZAChAQ5oYXNoX2NhbGxfZGF0YQCiAQ1fX2NvbnN0cnVjdG9yAKQBCXNldF9hZG1pbgCrARNxdW9ydW1fY2hhbmdlX2FkbWluAKwBB3VwZ3JhZGUArQEHbWlncmF0ZQCvAQphdXRob3JpemVyALEBD3NldF90dGxfY29uZmlncwCyAQt0dGxfY29uZmlncwC1ARJmcmVlemVfdHRsX2NvbmZpZ3MAtwEVaXNfdHRsX2NvbmZpZ3NfZnJvemVuALgBE2V4dGVuZF9pbnN0YW5jZV90dGwAuQEKc2V0X3NpZ25lcgC6AQ1zZXRfdGhyZXNob2xkAL4BC2dldF9zaWduZXJzAL8BDXRvdGFsX3NpZ25lcnMAwAEJaXNfc2lnbmVyAMEBCXRocmVzaG9sZADCARF2ZXJpZnlfc2lnbmF0dXJlcwDDARN2ZXJpZnlfbl9zaWduYXR1cmVzAMQBAV8DAQpfX2RhdGFfZW5kAwILX19oZWFwX2Jhc2UDAwqsswGgASIAIAAQsYCAgAAgAa1CIIZCBIQgAq1CIIZCBIQQsoCAgAAL0QECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkACQAJAIAAoAgAOAwABAgALIAFBmILAgABBAxDHgICAACABKAIADQMgASABKQMIEMiAgIAADAILIAFBm4LAgABBCRDHgICAACABKAIADQIgASABKQMIIAA1AgRCIIZCBIQQyYCAgAAMAQsgAUGkgsCAAEEIEMeAgIAAIAEoAgANASABIAEpAwggACkDCBDJgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACCxEAIABCASABIAIQrICAgAAaCzcBAX5CACEDAkACQCABQgJRDQAgAadBAXENASAAIAI3AwhCASEDCyAAIAM3AwAPCxC0gICAAAALCQAQxYGAgAAAC4sBAgJ/AX4jgICAgABBEGsiACSAgICAACAAQQRqELaAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBC3gICAAAtBACEBAkBBABC4gICAACICQgIQuYCAgABFDQBBASEBAkACQCACQgIQgICAgACnQf8BcQ4CAQIACwALQQAhAQsgAEEQaiSAgICAACABCwwAIABBARDKgYCAAAsbACAArUIghkIEhCABrUIghkIEhBCqgICAABoLwgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkACQAJAIABB/wFxDgMAAQIACyABQZKFwIAAQQYQx4CAgAAgASgCAA0DIAEgASkDCBDIgICAAAwCCyABQZiFwIAAQQgQx4CAgAAgASgCAA0CIAEgASkDCBDIgICAAAwBCyABQaCFwIAAQQoQx4CAgAAgASgCAA0BIAEgASkDCBDIgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACCw8AIAAgARCpgICAAEIBUQsVAQF+ELuAgIAAIgAQgYCAgAAaIAALVAIBfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahC2gICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQt4CAgAALEJGAgIAAIQEgAEEQaiSAgICAACABC1gBAX8jgICAgABBEGsiAiSAgICAACACQQRqELaAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBC3gICAAAsgACABEL2AgIAAEL6AgIAAIAJBEGokgICAgAALRgIBfwF+QQAhAAJAAkBBARCngYCAACIBQgIQuYCAgABFDQAgAUICEICAgIAAIgFC/wGDQgRSDQEgAUIgiKchAAsgAA8LAAuSBQQBfwV+An8BfiOAgICAAEEwayIDJICAgIAAIANBIGoQtoCAgAACQCADKAIgQQFHDQAgAygCJCADKAIoELeAgIAACwJAAkACQAJAAkACQCACRQ0AIAIgARCCgICAAEIgiKdLDQEQv4CAgAAhBCABEIKAgIAAQiCIIQVCACEGQQAhAgJAA0AgBiAFUQ0FAkAgASAGQiCGQgSEEIOAgIAAIgdC/wGDQsgAUg0AIAcQhICAgAAhCCAGQv////8PUQ0CIAhCgICAgHCDQoCAgICQCFINAiAHEISAgIAAQv////+PCFgNBSAHQoSAgICACBCFgICAACEIIAdCBEKEgICAgAgQhoCAgAAiBxCEgICAAEKAgICAcINCgICAgIAIUg0CIANBIGogACAHIAhCIIinIglBZWoiCiAJIApB/wFxQQRJG61C/wGDQiCGQgSEEIeAgIAAQoSAgIAQQoSAgICQCBCGgICAABCIgICAAEKEgICAwAFChICAgIAEEIaAgIAAEMCAgIAAIAMoAiBBAUYNAiADKQMoIQcCQCACQQFxRQ0AIAcgCxDBgICAAEEYdEEYdUEATA0ICyAEEIKAgIAAIQggA0EANgIIIAMgBDcDACADIAhCIIg+AgwDQCADQSBqIAMQwoCAgAAgA0EQaiADKQMgIAMpAygQs4CAgAAgAygCEEEBRw0JIAMpAxggBxDDgICAAEUNAAsgBkIBfCEGQQEhAiAHIQsMAQsLIAZC/////w9SGgsQtICAgAAAC0KDgICAsIUBEMSAgIAAAAtCg4CAgOCEARDEgICAAAALEMWAgIAAAAsgA0EwaiSAgICAAA8LQoOAgICghQEQxICAgAAAC0KDgICAgIUBEMSAgIAAAAuNAQQBfwF+AX8BfiOAgICAAEEQayIAJICAgIAAAkACQEEAEKeBgIAAIgFCARC5gICAACICRQ0AIAFCARCAgICAACIDQv8Bg0LLAFINASAAQQRqEM6AgIAAIAAoAgRFDQAgACgCCCAAKAIMEKiBgIAACxCNgICAACEBIABBEGokgICAgAAgAyABIAIbDwsACzYBAX5CASECAkAgARCEgICAAEKAgICAcINCgICAgMACUg0AIAAgATcDCEIAIQILIAAgAjcDAAsXACAAIAEQkoCAgAAiAUIAVSABQgBTawuRAQICfwF+I4CAgIAAQRBrIgIkgICAgAACQAJAIAEoAggiAyABKAIMSQ0AIABCAjcDAAwBCyACIAEpAwAgA61CIIZCBIQQg4CAgAAQu4GAgAACQCADQQFqIgNFDQAgAikDACEEIAAgAikDCDcDCCAAIAQ3AwAgASADNgIIDAELELSAgIAAAAsgAkEQaiSAgICAAAsRACAAIAEQwYCAgABB/wFxRQsLACAAEKuAgIAAGgsJABC0gICAAAALUgECfyOAgICAAEEQayIAJICAgIAAIABBBGoQtoCAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELeAgIAACxC9gICAACEBIABBEGokgICAgAAgAQtRAgF/AX4jgICAgABBEGsiAySAgICAACADIAEgAhDGgYCAAEIBIQQCQCADKAIADQAgACADKQMINwMIQgAhBAsgACAENwMAIANBEGokgICAgAALRAEBfyOAgICAAEEQayICJICAgIAAIAIgATcDCCACQQhqQQEQnoGAgAAhASAAQgA3AwAgACABNwMIIAJBEGokgICAgAALSAEBfyOAgICAAEEQayIDJICAgIAAIAMgAjcDCCADIAE3AwAgA0ECEJ6BgIAAIQIgAEIANwMAIAAgAjcDCCADQRBqJICAgIAAC/YCAwF/AX4BfyOAgICAAEEwayICJICAgIAAEMuAgIAAIQMCQAJAAkACQAJAAkAgAQ0AIAMQgoCAgABC/////x9YDQEgAkEIaiADIAAQiYCAgAAQzICAgAAgAigCCCIEQQJGDQIgBEEBcUUNAyACKAIMIgQgAxCCgICAAEIgiKdPDQUgAyAErUIghkIEhBCKgICAACEDDAULIAMgABCJgICAAEICUQ0DQoOAgICAlgEQxICAgAAAC0KDgICAwJYBEMSAgIAAAAsQtICAgAAAC0KDgICAkJYBEMSAgIAAAAsgAyAAEIuAgIAAIQMLIAJBCjYCICACQSBqIAMQzYCAgAAgAkEUahDOgICAAAJAIAIoAhRBAUcNACACQSBqIAIoAhggAigCHBDPgICAAAtCjuauueqM5NU4ENCAgIAAIQMgAiAANwMoIAIgAa03AyAgA0HAhcCAAEECIAJBIGpBAhDRgICAABCMgICAABogAkEwaiSAgICAAAusAQIBfwN+I4CAgIAAQTBrIgAkgICAgAAgAEEQahC2gICAAAJAIAAoAhBBAUcNACAAKAIUIAAoAhgQt4CAgAALIABBCjYCECAAIABBEGoQ2oCAgAACQCAAKQMAIgFQDQAgAEEkahDOgICAACAAKAIkQQFHDQAgAEEQaiAAKAIoIAAoAiwQz4CAgAALIAApAwghAhCNgICAACEDIABBMGokgICAgAAgAiADIAGnGws9AQJ/AkACQCABQgJSDQBBACECDAELQQFBAiABQv8Bg0IEURshAiABQiCIpyEDCyAAIAM2AgQgACACNgIACxUAIAAQ5YCAgAAgAUIBEJaAgIAAGgsMACAAQQIQyoGAgAALIgAgABDlgICAACABrUIghkIEhCACrUIghkIEhBCygICAAAtjAwF/AX4BfyOAgICAAEEQayIBJICAgIAAIAEgADcDAEICIQJBASEDAkADQCADRQ0BIANBf2ohAyAAIQIMAAsLIAEgAjcDCCABQQhqQQEQnoGAgAAhACABQRBqJICAgIAAIAALLgACQCABIANGDQAACyAArUIghkIEhCACrUIghkIEhCABrUIghkIEhBCogICAAAsnACAAEIGAgIAAGgJAIAAQ04CAgAANAEKDgICA8JcBEMSAgIAAAAsLXQEBfyOAgICAAEEQayIBJICAgIAAIAFBBGoQtoCAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELeAgIAACxDLgICAACAAEImAgIAAIQAgAUEQaiSAgICAACAAQgJSC9ECAwF/An4BfyOAgICAAEEwayICJICAgIAAENWAgIAAIgMgABCJgICAACEEAkACQAJAAkACQCABDQAgAkEIaiAEEMyAgIAAIAIoAggiBUECRg0BIAVBAXFFDQIgAigCDCIFIAMQgoCAgABCIIinTw0EIAMgBa1CIIZCBIQQioCAgAAhAwwECyAEQgJRDQJCg4CAgOCWARDEgICAAAALELSAgIAAAAtCg4CAgPCWARDEgICAAAALIAMgABCLgICAACEDCyACQQY2AiAgAkEgaiADEM2AgIAAIAJBFGoQzoCAgAACQCACKAIUQQFHDQAgAkEgaiACKAIYIAIoAhwQz4CAgAALQdCFwIAAQRkQ1oCAgAAQ0ICAgAAhAyACIAGtNwMoIAIgADcDICADQYCGwIAAQQIgAkEgakECENGAgIAAEIyAgIAAGiACQTBqJICAgIAAC6wBAgF/A34jgICAgABBMGsiACSAgICAACAAQRBqELaAgIAAAkAgACgCEEEBRw0AIAAoAhQgACgCGBC3gICAAAsgAEEGNgIQIAAgAEEQahDagICAAAJAIAApAwAiAVANACAAQSRqEM6AgIAAIAAoAiRBAUcNACAAQRBqIAAoAiggACgCLBDPgICAAAsgACkDCCECEI2AgIAAIQMgAEEwaiSAgICAACACIAMgAacbC0UCAX8BfiOAgICAAEEQayICJICAgIAAIAIgACABEMaBgIAAAkAgAigCAEEBRw0AAAsgAikDCCEDIAJBEGokgICAgAAgAwt1AgF/AX4jgICAgABBIGsiACSAgICAACAAQRBqELaAgIAAAkAgACgCEEEBRw0AIAAoAhQgACgCGBC3gICAAAsgAEECNgIQIAAgAEEQahDYgICAACAAKQMIIQEgACkDAEG9CRDZgICAACAAQSBqJICAgIAAIAELTQECfkIAIQICQAJAIAEQ5YCAgAAiA0ICELmAgIAARQ0AIANCAhCAgICAACICQv8Bg0LNAFINASAAIAI3AwhCASECCyAAIAI3AwAPCwALKQACQCAAp0EBcUUNAA8LIAFB0HZqrUIghkKDgICAgJYBfBDEgICAAAALTQECfkIAIQICQAJAIAEQ5YCAgAAiA0IBELmAgIAARQ0AIANCARCAgICAACICQv8Bg0LLAFINASAAIAI3AwhCASECCyAAIAI3AwAPCwALdwEDfyOAgICAAEEgayIAJICAgIAAIABBEGoQtoCAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYELeAgIAACyAAQQk2AhAgAEEIaiAAQRBqENyAgIAAIAAoAgghASAAKAIMIQIgAEEgaiSAgICAACACQQAgAUEBcRsLWgIBfgF/AkACQAJAIAEQ5YCAgAAiAkICELmAgIAADQBBACEBDAELIAJCAhCAgICAACICQv8Bg0IEUg0BIAJCIIinIQNBASEBCyAAIAM2AgQgACABNgIADwsAC4wBAQJ/I4CAgIAAQSBrIgEkgICAgAAgARC2gICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQt4CAgAALIAFBCDYCACABIAA3AwgCQCABEN6AgIAAIgJFDQAgAUEUahDOgICAACABKAIUQQFHDQAgASABKAIYIAEoAhwQz4CAgAALIAFBIGokgICAgAAgAgsSACAAEOWAgIAAQgEQuYCAgAALdQIBfwF+I4CAgIAAQSBrIgAkgICAgAAgAEEQahC2gICAAAJAIAAoAhBBAUcNACAAKAIUIAAoAhgQt4CAgAALIABBAzYCECAAIABBEGoQ2ICAgAAgACkDCCEBIAApAwBBwQkQ2YCAgAAgAEEgaiSAgICAACABC3UCAX8BfiOAgICAAEEgayIAJICAgIAAIABBEGoQtoCAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYELeAgIAACyAAQQE2AhAgACAAQRBqENiAgIAAIAApAwghASAAKQMAQbUJENmAgIAAIABBIGokgICAgAAgAQuMAQECfyOAgICAAEEgayIBJICAgIAAIAEQtoCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELeAgIAACyABQQc2AgAgASAANwMIAkAgARDegICAACICRQ0AIAFBFGoQzoCAgAAgASgCFEEBRw0AIAEgASgCGCABKAIcEM+AgIAACyABQSBqJICAgIAAIAILdwEDfyOAgICAAEEgayIAJICAgIAAIABBEGoQtoCAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYELeAgIAACyAAQQQ2AhAgAEEIaiAAQRBqENyAgIAAIAAoAgghASAAKAIMIQIgAEEgaiSAgICAACACQQAgAUEBcRsLXQEBfyOAgICAAEEQayIBJICAgIAAIAFBBGoQtoCAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELeAgIAACxDVgICAACAAEImAgIAAIQAgAUEQaiSAgICAACAAQgJSC48BAgJ/AX4jgICAgABBEGsiACSAgICAACAAELaAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBC3gICAAAtBACEBIABBADYCAAJAIAAQ5YCAgAAiAkICELmAgIAARQ0AQQEhAQJAAkAgAkICEICAgIAAp0H/AXEOAgECAAsAC0EAIQELIABBEGokgICAgAAgAQumBAIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAOCwABAgMEBQYHCAkKAAsgAUH4icCAAEEGEMeAgIAAIAEoAgANCyABIAEpAwgQyICAgAAMCgsgAUH+icCAAEEOEMeAgIAAIAEoAgANCiABIAEpAwgQyICAgAAMCQsgAUGMisCAAEEJEMeAgIAAIAEoAgANCSABIAEpAwgQyICAgAAMCAsgAUGVisCAAEEMEMeAgIAAIAEoAgANCCABIAEpAwgQyICA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yABSDQAgARCEgICAAEKAgICAcINCgICAgIAEUg0AIAAgATcDCEIAIQILIAAgAjcDAAtdAgF/AX4CQAJAIAGnQf8BcSICQcAARg0AAkAgAkEGRg0AQgEhA0KDkICAgAEhAQwCCyABQgiIIQFCACEDDAELQgAhAyABEI+AgIAAIQELIAAgAzcDACAAIAE3AwgLSgIBfgF/QgIhAgJAIAEoAggiAyABKAIMTw0AIAAgASkDACADrUIghkIEhBCDgICAADcDCCABIANBAWo2AghCACECCyAAIAI3AwALHAAgACABrUIghkIEhCACrUIghkIEhBCkgICAAAsZAAJAIAEgAEkNACABIABrDwsQtICAgAAAC4wBAgF/AX4jgICAgABBEGsiACSAgICAACAAELaAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBC3gICAAAsgAEEANgIAAkACQCAAELGAgIAAIgFCAhC5gICAAEUNACABQgIQgICAgAAiAUL/AYNCBFENAQALEMWAgIAAAAsgAEEQaiSAgICAACABQiCIpwvTAQICfwN+I4CAgIAAQSBrIgIkgICAgABBACEDAkADQCADQRhGDQEgAkEIaiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUHwgsCAAEEDIAJBCGpBAxDpgICAACACKQMIIgFC/wGDQssAUg0AIAIpAxAiBUL/AYNCzQBSDQACQCACKQMYIganQf8BcSIDQcoARg0AIANBDkcNAQsgACABNwMYIAAgBjcDECAAIAU3AwhCACEECyAAIAQ3AwAgAkEgaiSAgICAAAu+AQICfwF+I4CAgIAAQSBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUGYg8CAAEECIAJBAhDpgICAACACQRBqIAIpAwAQx4GAgAAgAigCEA0AIAIpAxghASACQRBqIAIpAwgQ7oCAgAAgAigCEA0AIAAgAikDGDcDECAAIAE3AwhCACEECyAAIAQ3AwAgAkEgaiSAgICAAAvgAQICfwJ+I4CAgIAAQTBrIgIkgICAgABBACEDAkADQCADQRhGDQEgAkEIaiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUG4g8CAAEEDIAJBCGpBAxDpgICAACACKQMIIgFC/wGDQssAUg0AIAJBIGogAikDEBDHgYCAACACKAIgDQAgAikDKCEFIAJBIGogAikDGBDugICAACACKAIgDQAgAikDKCEEIAAgATcDGCAAIAQ3AxAgACAFNwMIQgAhBAsgACAENwMAIAJBMGokgICAgAALlgECAX4CfyAAKQMAIQEDQAJAIAFQRQ0AQYCAxAAPCwJAAkAgAUIwiKdBP3EiAkEBRw0AQd8AIQIMAQsCQAJAAkAgAkF/akELTw0AQS4hAwwBCwJAIAJBdGpBGk8NAEE1IQMMAQsgAkElTQ0BQTshAwsgAiADaiECDAELIAAgAUIGhiIBNwMADAELCyAAIAFCBoY3AwAgAgsaACAArUIghkIEhCABrUIghkIEhBChgICAAAujAgIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAxC2gICAAAJAIAMoAgBBAUcNACADKAIEIAMoAggQt4CAgAALEJyAgIAAIQQgAyAAQRh0IABBgP4DcUEIdHIgAEEIdkGA/gNxIABBGHZycjYCACAEIAQQhICAgABCgICAgHCDQgSEIANBBBCjgYCAACEEIAMgAUI4hiABQoD+A4NCKIaEIAFCgID8B4NCGIYgAUKAgID4D4NCCIaEhCABQgiIQoCAgPgPgyABQhiIQoCA/AeDhCABQiiIQoD+A4MgAUI4iISEhDcDACAEIAQQhICAgABCgICAgHCDQgSEIANBCBCjgYCAACACEJ2AgIAAEJOAgIAAEIiAgIAAIQEgA0EQaiSAgICAACABC50CAgJ/AX4jgICAgABBEGsiASSAgICAAAJAAkBBASAAp0H/AXEiAkEAR0EBdCACQQFGGyICQQJGDQAgARC2gICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQt4CAgAALELqAgIAAIQAQ5ICAgAAgAnNBAXFFDQEgAUEANgIAIAEgAkICEPuAgIAAAkACQCACQQFxDQBCjtKq3O6sz/UAENCAgIAAIQMgASAANwMAIANB9IbAgABBASABQQEQ0YCAgAAQjICAgAAaDAELQo7SqtzurAMQ0ICAgAAhAyABIAA3AwAgA0HkhsCAAEEBIAFBARDRgICAABCMgICAABoLIAFBEGokgICAgABCAg8LAAtCg4CAgMCXARDEgICAAAALGgAgABDlgICAACABrUL/AYMgAhCWgICAABoLjQEBAn8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AQQEgAadB/wFxIgNBAEdBAXQgA0EBRhsiA0ECRg0AIAJBBGoQtoCAgAACQCACKAIEQQFHDQAgAigCCCACKAIMELeAgIAACxC6gICAABogACADQQFxENSAgIAAIAJBEGokgICAgABCAg8LAAujAwEDfyOAgICAAEEgayICJICAgIAAAkACQAJAAkAgAEL/AYNCzQBSDQBBASABp0H/AXEiA0EAR0EBdCADQQFGGyIDQQJGDQAgAkEQahC2gICAAAJAIAIoAhBBAUcNACACKAIUIAIoAhgQt4CAgAALELqAgIAAGiAAEOGAgIAAIQQCQAJAIANBAXENACAERQ0DIAJBBzYCECACIAA3AxggAkEQahDlgICAAEIBEJeAgIAAGhDbgICAACIERQ0FIARBf2ohBAwBCyAEDQMgAkEHNgIQIAIgADcDGCACQRBqEP6AgIAAIAJBBGoQzoCAgAACQCACKAIEQQFHDQAgAkEQaiACKAIIIAIoAgwQz4CAgAALENuAgIAAQQFqIgRFDQQLIAQQ/4CAgABBkIbAgABBDRDWgICAABDQgICAACEBIAIgADcDGCACIAOtNwMQIAFBqIbAgABBAiACQRBqQQIQ0YCAgAAQjICAgAAaIAJBIGokgICAgABCAg8LAAtCg4CAgKCXARDEgICAAAALQoOAgICglgEQxICAgAAACxC0gICAAAALDgAgAEEBQgEQ+4CAgAALMQEBfyOAgICAAEEQayIBJICAgIAAIAFBCTYCACABIAAQzIGAgAAgAUEQaiSAgICAAAvuAgEDfyOAgICAAEEgayICJICAgIAAAkACQAJAIABC/wGDQs0AUg0AQQEgAadB/wFxIgNBAEdBAXQgA0EBRhsiA0ECRg0AIAJBEGoQtoCAgAACQCACKAIQQQFHDQAgAigCFCACKAIYELeAgIAACxC6gICAABogABDdgICAACEEAkACQCADQQFxDQAgBEUNAyACQQg2AhAgAiAANwMYIAJBEGoQ5YCAgABCARCXgICAABoMAQsgBA0DIAJBCDYCECACIAA3AxggAkEQahD+gICAACACQQRqEM6AgIAAIAIoAgRBAUcNACACQRBqIAIoAgggAigCDBDPgICAAAtBuIbAgABBDBDWgICAABDQgICAACEBIAIgADcDGCACIAOtNwMQIAFBzIbAgABBAiACQRBqQQIQ0YCAgAAQjICAgAAaIAJBIGokgICAgABCAg8LAAtCg4CAgLCXARDEgICAAAALQoOAgICwlgEQxICAgAAAC3oBAX8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgAkEEahC2gICAAAJAIAIoAgRBAUcNACACKAIIIAIoAgwQt4CAgAALIAAQ0oCAgAAgAUIgiKcQgoGAgAAgAkEQaiSAgICAAEICDwsAC3ICAX8BfiOAgICAAEEQayIBJICAgIAAIAFBBDYCACABIAAQzIGAgABB/IbAgABBGhDWgICAABDQgICAACECIAEgAK1CIIZCBIQ3AwAgAkGkh8CAAEEBIAFBARDRgICAABCMgICAABogAUEQaiSAgICAAAusAQEBfyOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCzQBSDQAgAhC2gICAAAJAIAIoAgBBAUcNACACKAIEIAIoAggQt4CAgAALIAAQ0oCAgAAgARCEgYCAAEGsh8CAAEETENaAgIAAENCAgIAAIQAgAiABNwMAIABB0IfAgABBASACQQEQ0YCAgAAQjICAgAAaIAJBEGokgICAgABCAg8LAAsxAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEBNgIAIAEgABDNgYCAACABQRBqJICAgIAAC5cCAQF/I4CAgIAAQSBrIgMkgICAgAACQCAAQv8Bg0LNAFINACABQv8Bg0IEUg0AIAJC/wGDQsgAUg0AIANBEGoQtoCAgAACQCADKAIQQQFHDQAgAygCFCADKAIYELeAgIAACyAAENKAgIAAIANBBTYCECADIAFCIIg+AhQgA0EQahDlgICAACACQgEQloCAgAAaIANBBGoQzoCAgAACQCADKAIEQQFHDQAgA0EQaiADKAIIIAMoAgwQz4CAgAALQfiHwIAAQRoQ1oCAgAAQ0ICAgAAhACADIAI3AxggAyABQoSAgIBwgzcDECAAQaiIwIAAQQIgA0EQakECENGAgIAAEIyAgIAAGiADQSBqJICAgIAAQgIPCwALrAEBAX8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQs0AUg0AIAIQtoCAgAACQCACKAIAQQFHDQAgAigCBCACKAIIELeAgIAACyAAENKAgIAAIAEQh4GAgABBuIjAgABBEhDWgICAABDQgICAACEAIAIgATcDACAAQdSIwIAAQQEgAkEBENGAgIAAEIyAgIAAGiACQRBqJICAgIAAQgIPCwALMQEBfyOAgICAAEEQayIBJICAgIAAIAFBAzYCACABIAAQzYGAgAAgAUEQaiSAgICAAAt/AQF/I4CAgIAAQRBrIgIkgICAgAACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACQQRqELaAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBC3gICAAAsgABDSgICAACABEImBgIAAIAEQioGAgAAgAkEQaiSAgICAAEICDwsACzEBAX8jgICAgABBEGsiASSAgICAACABQQI2AgAgASAAEM2BgIAAIAFBEGokgICAgAALXQIBfwF+I4CAgIAAQRBrIgEkgICAgABB2IfAgABBDhDWgICAABDQgICAACECIAEgADcDCCACQfCHwIAAQQEgAUEIakEBENGAgIAAEIyAgIAAGiABQRBqJICAgIAACxsAAkAgAEL/AYNCzQBRDQAACyAAENOAgIAArQsIABDLgICAAAsJABDkgICAAK0LGwACQCAAQv8Bg0LNAFENAAALIAAQ44CAgACtCwgAENWAgIAACxsAAkAgAEL/AYNCzQBRDQAACyAAEOGAgIAArQsbAAJAIABC/wGDQs0AUQ0AAAsgABDdgICAAK0LGwACQCAAQv8Bg0LNAFENAAALIAAQ5oCAgACtCw8AENuAgIAArUIghkIEhAsPABDigICAAK1CIIZCBIQLCAAQ4ICAgAALCAAQ14CAgAALyAECAn8BfiOAgICAAEEgayIBJICAgIAAAkAgAEL/AYNCBFINACAAQiCIpyECIAEQtoCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELeAgIAACyABQQU2AgAgASACNgIEQgIhAAJAIAEQ5YCAgAAiA0IBELmAgIAARQ0AIANCARCAgICAACIAQv8Bg0LIAFINASABQRRqEM6AgIAAIAEoAhRBAUcNACABIAEoAhggASgCHBDPgICAAAsgAUEgaiSAgICAACAADwsACwgAEN+AgIAAC80BAQF/I4CAgIAAQSBrIgckgICAgAACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACQv8Bg0IEUg0AIANC/wGDQsgAUg0AIAdBEGogBBDugICAACAHKAIQQQFGDQAgB0EQaiAFEO+AgIAAIAcoAhBBAUYNACAGQv8Bg0LIAFINACAHIAEgAkIgiKcgBykDGCAGEJqBgIAAIAdBEGogBykDACAHKQMIEJuBgIAAIAcoAhBBAUYNACAHKQMYIQEgB0EgaiSAgICAACABDwsAC6YFBAF/Bn4CfwJ+I4CAgIAAQeAAayIFJICAgIAAIAUQtoCAgAACQCAFKAIAQQFHDQAgBSgCBCAFKAIIELeAgIAACwJAEOSAgIAADQACQCABEOaAgIAARQ0AIAUgAhCdgYCAAAJAAkAgBSgCAEEBcUUNACAFKQMoIQYgBSkDICEHIAUpAxghCCAFKQMQIQkgBTUCMCEKENeAgIAAIQsQ4oCAgAAhDBDGgICAACENEN+AgIAAIQ4QkYCAgAAhDwJAAkAgA0L//////////wBWDQAgA0IIhkIGhCEDDAELIAMQmICAgAAhAwsgBUHQAGogByAGEOyAgIAAIAUoAlANASAFKQNYIQYgBUHQAGogCSAIEOyAgIAAIAUoAlBBAUYNASAFKQNYIQcgBSABNwNIIAUgCzcDOCAFIAQ3AzAgBSAHNwMgIAUgBjcDGCAFIAKtQiCGQgSENwMQIAUgDK1CIIZCBIQ3AwggBSADNwMAIAUgCkIghkIEhDcDKCAFIA2tQiCGQgSENwNAIAVBqInAgABBCiAFQQoQ0YCAgAA3A1ggBSAPNwNQQQAhAgNAAkAgAkEQRw0AQQAhAgJAA0AgAkEQRg0BIAUgAmogBUHQAGogAmopAwA3AwAgAkEIaiECDAALCwJAAkAgDkKO1Oq1kNeyASAFQQIQnoGAgAAQmYCAgAAiA6dB/wFxIgJBxQBGDQACQCACQQtHDQAgA0I/hyEBIANCCIchAwwCCxC0gICAAAALIAMQmoCAgAAhASADEJuAgIAAIQMLIAAgAzcDACAAIAE3AwggBUHgAGokgICAgAAPCyAFIAJqQgI3AwAgAkEIaiECDAALC0KDgICAIBDEgICAAAsAC0KDgICAkJcBEMSAgIAAAAtCg4CAgKCYARDEgICAAAALWwACQAJAIAFCgICAgICAgMAAfEL//////////wBWDQAgASABhSACIAFCP4eFhEIAUg0AIAFCCIZCC4QhAQwBCyACIAEQpYCAgAAhAQsgAEIANwMAIAAgATcDCAvHAgEBfyOAgICAAEHAAGsiBySAgICAAAJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACQv8Bg0IEUg0AIANC/wGDQsgAUg0AIAcgBBDugICAACAHKAIAQQFGDQAgByAFEO+AgIAAIAcoAgBBAUYNACAGQv8Bg0LIAFINACAHKQMIIQMgBxC2gICAAAJAIAcoAgBBAUcNACAHKAIEIAcoAggQt4CAgAALIAAQgYCAgAAaIAAQ44CAgABFDQEgByABIAJCIIinIAMgBhCagYCAABDggICAACEAIAdBMGogBykDACAHKQMIEJuBgIAAIAcoAjBBAUcNAgsAC0KDgICAgJgBEMSAgIAAAAsgBykDOCEBIAcgADcDKCAHIAE3AyBBtILAgABBAiAHQSBqQQIQ0YCAgAAhACAHQcAAaiSAgICAACAAC/QBAgF/AX4jgICAgABB0ABrIgIkgICAgAAgAkEQahC2gICAAAJAIAIoAhBBAUcNACACKAIUIAIoAhgQt4CAgAALIAJBATYCACACIAE2AgQCQAJAAkAgAhCxgICAACIDQgEQuYCAgABFDQAgAkEQaiADQgEQgICAgAAQ6ICAgAAgAigCEEEBcUUNAQALIABCADcDCCAAQgA3AwAMAQsgAEEQaiACQRBqQRBqQTAQz4GAgAAaIABCADcDCCAAQgE3AwAgAkEQahDOgICAACACKAIQQQFHDQAgAiACKAIUIAIoAhgQsICAgAALIAJB0ABqJICAgIAACxoAIACtQiCGQgSEIAGtQiCGQgSEEKOAgIAAC/YEBQF/AX4BfwF+An8jgICAgABB4AFrIgIkgICAgAACQAJAIABC/wGDQs0AUg0AIAFC/wGDQssAUg0AIAJB8ABqELaAgIAAAkAgAigCcEEBRw0AIAIoAnQgAigCeBC3gICAAAsgABDSgICAACABEIKAgIAAQiCIIQMgAkHwAGpBEGohBEIAIQACQANAIAAgA1ENASABIABCIIZCBIQQg4CAgAAhBUEAIQYCQANAIAZBEEYNASACQeAAaiAGakICNwMAIAZBCGohBgwACwsCQAJAIAVC/wGDQswAUg0A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CyACIAAQi4CAgAAQvIGAgAAgAEEBEL2BgIAAIAFBMGokgICAgAALuAECAX8CfiOAgICAAEEQayIBJICAgIAAAkACQCAARQ0AIAAQv4CAgAAQgoCAgABCIIinSw0BQQEQp4GAgAAgAK1CIIZCBIQiAkICEJaAgIAAGkGAhMCAAEENENaAgIAAENCAgIAAIQMgASACNwMIIANBmITAgABBASABQQhqQQEQ0YCAgAAQjICAgAAaIAFBEGokgICAgAAPC0KDgICAsIUBEMSAgIAAAAtCg4CAgJCFARDEgICAAAALmgEBAn8jgICAgABBEGsiAySAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQs0AUg0AQQEgAqdB/wFxIgRBAEdBAXQgBEEBRhsiBEECRg0AIANBBGoQtoCAgAACQCADKAIEQQFHDQAgAygCCCADKAIMELeAgIAACyAAENKAgIAAIAEgBEEBcRDKgICAACADQRBqJICAgIAAQgIPCwALjQEBAn8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AQQEgAadB/wFxIgNBAEdBAXQgA0EBRhsiA0ECRg0AIAJBBGoQtoCAgAACQCACKAIEQQFHDQAgAigCCCACKAIMELeAgIAACxC6gICAABogACADQQFxEMqAgIAAIAJBEGokgICAgABCAg8LAAt/AQF/I4CAgIAAQRBrIgEkgICAgAAgASAAEO6AgIAAAkAgASgCAEEBRg0AIAEpAwghABC6gICAABogARC2gICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQt4CAgAALQQEQroGAgAAgABCegICAABogAUEQaiSAgICAAEICDwsACxgAELCBgIAAIACtQv8Bg0ICEJaAgIAAGgulAQEBfyOAgICAAEEQayIBJICAgIAAAkAgAEL/AYNCAlINABC6gICAABogAUEEahC2gICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQt4CAgAALAkACQBCwgYCAACIAQgIQuYCAgABFDQAgAEICEICAgIAAp0H/AXEOAgABAgtCg4CAgKCDARDEgICAAAALQQAQroGAgAAgAUEQaiSAgICAAEICDwsAC2ACAX8BfiOAgICAAEEQayIAJICAgIAAIABBqoXAgABBCRDHgICAAAJAAkAgACgCAA0AIAAgACkDCBDIgICAACAAKAIAQQFHDQELAAsgACkDCCEBIABBEGokgICAgAAgAQsIABC7gICAAAuHBQEFfyOAgICAAEHQAGsiAiSAgICAACACQShqIAAQs4GAgAACQAJAIAIoAihBAkYNACACQQhqQQhqIAJBKGpBCGoiAygCADYCACACIAIpAig3AwggAkEoaiABELOBgIAAIAIoAihBAkYNACACQRhqQQhqIAMoAgA2AgAgAiACKQIoNwMYIAJBKGoQtoCAgAACQCACKAIoQQFHDQAgAigCLCACKAIwELeAgIAACxC6gICAABoCQAJAAkAQtYCAgAANABCfgICAACEAEKCAgIAAQiCIIgEgAEIgiCIAVA0EIAGnIACnayIDQYD7gAMgA0GA+4ADSRshBCACIAJBGGo2AiwgAiACQQhqNgIoQQAhAwNAIANBCEYNAwJAIAJBKGogA2ooAgAiBSgCAEEBcUUNACAFKAIIIgYgBEsNAyAFKAIEIAZLDQMLIANBBGohAwwACwtCg4CAgND/ABDEgICAAAALQoOAgIDA/wAQxICAgAAACwJAAkAgAigCCEEBRw0AIAIoAgwgAigCEBClgYCAAAwBC0EBELiAgIAAQgIQl4CAgAAaCwJAAkAgAigCGEEBRw0AIAIoAhwgAigCIBCmgYCAAAwBC0ECELiAgIAAQgIQl4CAgAAaCyACQShqQQhqIAJBCGpBCGooAgA2AgAgAkE8aiACQRhqQQhqKAIANgIAIAIgAikDCDcDKCACIAIpAxg3AjRBzITAgABBDxDWgICAABDQgICAACEAIAJBKGoQtIGAgAAhASACIAJBNGoQtIGAgAA3A0ggAiABNwNAIABB8ITAgABBAiACQcAAakECENGAgIAAEIyAgIAAGiACQdAAaiSAgICAAEICDwsACxC0gICAAAALaAEBfyOAgICAAEEQayICJICAgIAAAkACQCABQgJRDQAgAkEEaiABEMiBgIAAAkAgAigCBEUNACAAQQI2AgAMAgsgACACKQIINwIEIABBATYCAAwBCyAAQQA2AgALIAJBEGokgICAgAALQwIBfwF+I4CAgIAAQRBrIgEkgICAgAAgASAAELaBgIAAAkAgASgCAEEBRw0AAAsgASkDCCECIAFBEGokgICAgAAgAgvCAQICfwF+I4CAgIAAQcAAayIAJICAgIAAIABBCGoQtoCAgAACQCAAKAIIQQFHDQAgACgCDCAAKAIQELeAgIAACyAAQQhqELaAgIAAIABBFGoiARDOgICAACAAQTBqIABBCGoQtoGAgAACQAJAIAAoAjANACAAKQM4IQIgAEEwaiABELaBgIAAIAAoAjBBAUcNAQsACyAAIAApAzg3AyggACACNwMgIABBIGpBAhCegYCAACECIABBwABqJICAgIAAIAILMAACQCABKAIAQQFHDQAgACABKAIEIAEoAggQyYGAgAAPCyAAQgA3AwAgAEICNwMIC6sBAQF/I4CAgIAAQSBrIgAkgICAgAAgAEEMahC2gICAAAJAIAAoAgxBAUcNACAAKAIQIAAoAhQQt4CAgAALELqAgIAAGgJAELWAgIAARQ0AQoOAgIDg/wAQxICAgAAAC0EAELiAgIAAQgFCAhCWgICAABpBgIXAgABBEhDWgICAABDQgICAAEEEQQAgAEEYakEAENGAgIAAEIyAgIAAGiAAQSBqJICAgIAAQgILCQAQtYCAgACtCzEAAkAgAEL/AYNCBFINACABQv8Bg0IEUg0AIABCIIinIAFCIIinELeAgIAAQgIPCwAL3AICAn8BfiOAgICAAEEgayICJICAgIAAIAJBEGogABC7gYCAAAJAAkACQAJAIAIoAhBBAUYNAEEBIAGnQf8BcSIDQQBHQQF0IANBAUYbIgNBAkYNACACKQMYIQAgAkEQahC2gICAAAJAIAIoAhBBAUcNACACKAIUIAIoAhgQt4CAgAALELqAgIAAGgJAAkAgA0EBcQ0AIAJBCGoQv4CAgAAiASAAEImAgIAAEMyAgIAAIAIoAggiA0ECRg0DIANFDQQCQCACKAIMIgMgARCCgICAAEIgiKdPDQAgASADrUIghkIEhBCKgICAACEBCyABEIKAgIAAIQQQvYCAgAAgBEIgiKdLDQUgARC8gYCAACAAQQAQvYGAgAAMAQsgABCpgYCAAAsgAkEgaiSAgICAAEICDwsACxC0gICAAAALQoOAgICAhQEQxICAgAAAC0KDgICAkIUBEMSAgIAAAAsjAAJAIAFC/wGDQsgAUQ0AIABCATcDAA8LIAAgARDAgICAAAtbAQF/I4CAgIAAQRBrIgEkgICAgABBABCngYCAACAAQgEQloCAgAAaIAFBBGoQzoCAgAACQCABKAIEQQFHDQAgASgCCCABKAIMEKiBgIAACyABQRBqJICAgIAAC9ABAwF/AX4BfyOAgICAAEEgayICJICAgIAAQeyDwIAAQQoQ1oCAgAAhAyACIAA3AwggAiADNwMAQQAhBANAAkAgBEEQRw0AQQAhBAJAA0AgBEEQRg0BIAJBEGogBGogAiAEaikDADcDACAEQQhqIQQMAAsLIAJBEGpBAhCegYCAACEAIAIgAa1C/wGDNwMQIABB+IPAgABBASACQRBqQQEQ0YCAgAAQjICAgAAaIAJBIGokgICAgAAPCyACQRBqIARqQgI3AwAgBEEIaiEEDAALC20BAX8jgICAgABBEGsiASSAgICAAAJAIABC/wGDQgRSDQAgAUEEahC2gICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQt4CAgAALELqAgIAAGiAAQiCIpxCqgYCAACABQRBqJICAgIAAQgIPCwALVAIBfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahC2gICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQt4CAgAALEL+AgIAAIQEgAEEQaiSAgICAACABC2QCAX8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQtoCAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELeAgIAACxC/gICAABCCgICAACEBIABBEGokgICAgAAgAUKAgICAcINCBIQL3AECAX8CfiOAgICAAEEwayIBJICAgIAAIAFBIGogABC7gYCAAAJAIAEoAiBBAUYNACABKQMoIQIgAUEgahC2gICAAAJAIAEoAiBBAUcNACABKAIkIAEoAigQt4CAgAALEL+AgIAAIgAQgoCAgAAhAyABQQA2AgggASAANwMAIAEgA0IgiD4CDAJAA0AgAUEgaiABEMKAgIAAIAFBEGogASkDICABKQMoELOAgIAAIAEpAxAiAKdBAUcNASABKQMYIAIQw4CAgABFDQALCyABQTBqJICAgIAAIAAPCwALDwAQxoCAgACtQiCGQgSEC1QBAX8jgICAgABBEGsiAiSAgICAACACIAAQ7oCAgAACQCACKAIAQQFGDQAgAUL/AYNCywBSDQAgAikDCCABELyAgIAAIAJBEGokgICAgABCAg8LAAtlAQF/I4CAgIAAQRBrIgMkgICAgAAgAyAAEO6AgIAAAkAgAygCAEEBRg0A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bmZpZ3Nfc2V0aW5zdGFuY2VwZXJzaXN0ZW50AAAAWwIQAAgAAABjAhAACgAAAHR0bF9jb25maWdzX2Zyb3plbkZyb3plbkluc3RhbmNlUGVyc2lzdGVudE1pZ3JhdGluZ2FjdGl2ZWFkbWluAACzAhAABgAAALkCEAAFAAAAc2V0X3N1cHBvcnRlZF9tZXNzYWdlX2xpYm1lc3NhZ2VfbGlic3VwcG9ydGVkAAAA6QIQAAsAAAD0AhAACQAAAHNldF9hbGxvd2xpc3RhbGxvd2Vkb2FwcB0DEAAHAAAAJAMQAAQAAABzZXRfZGVueWxpc3RkZW5pZWQAAEQDEAAGAAAAJAMQAAQAAABwYXVzZXIAAFwDEAAGAAAAdW5wYXVzZXJsAxAACAAAAHNldF9kZWZhdWx0X211bHRpcGxpZXJfYnBzbXVsdGlwbGllcl9icHOWAxAADgAAAHNldF9kZXBvc2l0X2FkZHJlc3NkZXBvc2l0X2FkZHJlc3MAAL8DEAAPAAAAc2V0X3ByaWNlX2ZlZWRwcmljZV9mZWVk5gMQAAoAAABzZXRfc3VwcG9ydGVkX29wdGlvbl90eXBlc2RzdF9laWRvcHRpb25fdHlwZXMAAAASBBAABwAAABkEEAAMAAAAc2V0X3dvcmtlcl9mZWVfbGliZmVlX2xpYgAAAEoEEAAHAAAAY29uZmlybWF0aW9uc2RlZmF1bHRfbXVsdGlwbGllcl9icHNmbG9vcl9tYXJnaW5fdXNkZ2Fzb3B0aW9uc3F1b3J1bXNlbmRlcgAAAFwEEAANAAAAaQQQABYAAAASBBAABwAAAH8EEAAQAAAAjwQQAAMAAACWAxAADgAAAJIEEAAHAAAA5gMQAAoAAACZBBAABgAAAJ8EEAAGAAAAUGF1c2VkRGVwb3NpdEFkZHJlc3NQcmljZUZlZWRXb3JrZXJGZWVMaWJEZWZhdWx0TXVsdGlwbGllckJwc1N1cHBvcnRlZE9wdGlvblR5cGVzTWVzc2FnZUxpYnNBbGxvd2xpc3REZW55bGlzdEFsbG93bGlzdFNpemVBZG1pbnMAk+4BDmNvbnRyYWN0c3BlY3YwAAAABAAAAAAAAAAAAAAACER2bkVycm9yAAAABwAAAAAAAAAPQXV0aERhdGFFeHBpcmVkAAAAAAEAAAAAAAAAD0VpZE5vdFN1cHBvcnRlZAAAAAACAAAAAAAAAA9IYXNoQWxyZWFkeVVzZWQAAAAAAwAAAAAAAAARSW52YWxpZEludm9jYXRpb24AAAAAAAAEAAAAAAAAAApJbnZhbGlkVmlkAAAAAAAFAAAAAAAAABFOb25Db250cmFjdEludm9rZQAAAAAAAAYAAAAAAAAACU9ubHlBZG1pbgAAAAAAAAcAAAAFAAAAAAAAAAAAAAAMU2V0RHN0Q29uZmlnAAAAAQAAAA5zZXRfZHN0X2NvbmZpZwAAAAAAAQAAAAAAAAAGcGFyYW1zAAAAAAPqAAAH0AAAAA5Ec3RDb25maWdQYXJhbQAAAAAAAAAAAAIAAAABAAAAckNvbmZpZ3VyYXRpb24gZm9yIGEgZGVzdGluYXRpb24gY2hhaW4uCgpDb250YWlucyBmZWUgY2FsY3VsYXRpb24gcGFyYW1ldGVycyBzcGVjaWZpYyB0byBlYWNoIGRlc3RpbmF0aW9uIGVuZHBvaW50LgAAAAAAAAAAAAlEc3RDb25maWcAAAAAAAADAAAAO01pbmltdW0gZmVlIG1hcmdpbiBpbiBVU0QgKHNjYWxlZCBieSBuYXRpdmUgZGVjaW1hbHMgcmF0ZSkuAAAAABBmbG9vcl9tYXJnaW5fdXNkAAAACgAAAC5HYXMgZm9yIHZlcmlmaWNhdGlvbiBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4uAAAAAAADZ2FzAAAAAAoAAABnRmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICgxMDAwMCA9IDEwMCUpLgpJZiAwLCB0aGUgZGVmYXVsdCBtdWx0aXBsaWVyIGZyb20gd29ya2VyIGNvbmZpZyBpcyB1c2VkLgAAAAAObXVsdGlwbGllcl9icHMAAAAAAAQAAAABAAAANlBhcmFtZXRlciBmb3Igc2V0dGluZyBkZXN0aW5hdGlvbiBjaGFpbiBjb25maWd1cmF0aW9uLgAAAAAAAAAAAA5Ec3RDb25maWdQYXJhbQAAAAAAAgAAACdUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBkZXN0aW5hdGlvbi4AAAAABmNvbmZpZwAAAAAH0AAAAAlEc3RDb25maWcAAAAAAAAcVGhlIGRlc3RpbmF0aW9uIGVuZHBvaW50IElELgAAAAdkc3RfZWlkAAAAAAQAAAABAAAAiVJlcHJlc2VudHMgYSBzaW5nbGUgY29udHJhY3QgaW52b2NhdGlvbiBmb3IgbXVsdGlzaWcgYXV0aG9yaXphdGlvbi4KClVzZWQgaW4gYGhhc2hfY2FsbF9kYXRhYCB0byBjb21wdXRlIHRoZSBoYXNoIHRoYXQgc2lnbmVycyBzaWduIG92ZXIuAAAAAAAAAAAAAARDYWxsAAAAAwAAABNGdW5jdGlvbiBhcmd1bWVudHMuAAAAAARhcmdzAAAD6gAAAAAAAAAYRnVuY3Rpb24gbmFtZSB0byBpbnZva2UuAAAABGZ1bmMAAAARAAAAGFRhcmdldCBjb250cmFjdCBhZGRyZXNzLgAAAAJ0bwAAAAAAEwAAAAAAAAA0VmFsaWRhdGVzIGF1dGhvcml6YXRpb24gZm9yIERWTiBjb250cmFjdCBvcGVyYXRpb25zLgAAAAxfX2NoZWNrX2F1dGgAAAADAAAAAAAAABFzaWduYXR1cmVfcGF5bG9hZAAAAAAAA+4AAAAgAAAAAAAAAAlhdXRoX2RhdGEAAAAAAAfQAAAAE1RyYW5zYWN0aW9uQXV0aERhdGEAAAAAAAAAAA1hdXRoX2NvbnRleHRzAAAAAAAD6gAAB9AAAAAHQ29udGV4dAAAAAABAAAD6QAAA+0AAAAAAAAAAwAAAAEAAADHQXV0aGVudGljYXRpb24gZGF0YSBmb3IgRFZOIGNvbnRyYWN0IHRyYW5zYWN0aW9ucy4KClRoaXMgc3RydWN0IGlzIHVzZWQgd2l0aCBTb3JvYmFuJ3MgY3VzdG9tIGFjY291bnQgaW50ZXJmYWNlIHRvIGF1dGhvcml6ZQp0cmFuc2FjdGlvbnMgdGhyb3VnaCBhIGNvbWJpbmF0aW9uIG9mIGFkbWluIHNpZ25hdHVyZSBhbmQgbXVsdGlzaWcgcXVvcnVtLgAAAAAAAAAAE1RyYW5zYWN0aW9uQXV0aERhdGEAAAAABAAAAERFeHBpcmF0aW9uIHRpbWVzdGFtcCAobGVkZ2VyIHRpbWUpIGFmdGVyIHdoaWNoIHRoaXMgYXV0aCBpcyBpbnZhbGlkLgAAAApleHBpcmF0aW9uAAAAAAAGAAAAPUVudGl0eSBzdWJtaXR0aW5nIHRoZSB0cmFuc2FjdGlvbiAoYWRtaW4sIG9yIHBlcm1pc3Npb25sZXNzKS4AAAAAAAAGc2VuZGVyAAAAAAfQAAAABlNlbmRlcgAAAAAAPFNpZ25hdHVyZXMgZnJvbSBtdWx0aXNpZyBzaWduZXJzIChzZWNwMjU2azEsIDY1IGJ5dGVzIGVhY2gpLgAAAApzaWduYXR1cmVzAAAAAAPqAAAD7gAAAEEAAAAyVmVyaWZpZXIgSUQgLSBtdXN0IG1hdGNoIHRoZSBEVk4ncyBjb25maWd1cmVkIFZJRC4AAAAAAAN2aWQAAAAABAAAAAIAAAAAAAAAAAAAAAZTZW5kZXIAAAAAAAIAAAAAAAAALk5vIGV4cGxpY2l0IHNlbmRlciAocGVybWlzc2lvbmxlc3MgZXhlY3V0aW9uKS4AAAAAAAROb25lAAAAAQAAAI9BIHJlZ2lzdGVyZWQgYWRtaW4gKGVkMjU1MTkpIHN1Ym1pdHRpbmcgdGhlIHRyYW5zYWN0aW9uLgpUaGUgdHVwbGUgaXMgYChwdWJsaWNfa2V5LCBzaWduYXR1cmUpYCB3aGVyZSB0aGUgc2lnbmF0dXJlIGNvdmVycyB0aGUgU29yb2JhbiBwYXlsb2FkLgAAAAAFQWRtaW4AAAAAAAACAAAD7gAAACAAAAPuAAAAQAAAAAAAAADkU2V0cyB0aGUgcGF1c2VkIHN0YXRlIG9mIHRoZSB3b3JrZXIuCgpXaGVuIHBhdXNlZCwgdGhlIHdvcmtlciB3aWxsIHJlamVjdCBuZXcgam9iIGFzc2lnbm1lbnRzIChlLmcuLCBhc3NpZ25fam9iLCBnZXRfZmVlKS4KRXhpc3Rpbmcgam9icyBpbiBwcm9ncmVzcyBhcmUgbm90IGFmZmVjdGVkLgoKIyBBcmd1bWVudHMKKiBgcGF1c2VkYCAtIGB0cnVlYCB0byBwYXVzZSwgYGZhbHNlYCB0byB1bnBhdXNlAAAACnNldF9wYXVzZWQAAAAAAAEAAAAAAAAABnBhdXNlZAAAAAAAAQAAAAAAAAAAAAABN1NldHMgd2hldGhlciBhIG1lc3NhZ2UgbGlicmFyeSBpcyBzdXBwb3J0ZWQgYnkgdGhpcyB3b3JrZXIuCgpNZXNzYWdlIGxpYnJhcmllcyAoZS5nLiwgVUxOMzAyKSBjYWxsIHdvcmtlcnMgdG8gYXNzaWduIGpvYnMuIE9ubHkgc3VwcG9ydGVkCmxpYnJhcmllcyBjYW4gaW50ZXJhY3Qgd2l0aCB0aGlzIHdvcmtlci4KCiMgQXJndW1lbnRzCiogYG1lc3NhZ2VfbGliYCAtIFRoZSBtZXNzYWdlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcwoqIGBzdXBwb3J0ZWRgIC0gYHRydWVgIHRvIGFkZCBzdXBwb3J0LCBgZmFsc2VgIHRvIHJlbW92ZSBzdXBwb3J0AAAAABlzZXRfc3VwcG9ydGVkX21lc3NhZ2VfbGliAAAAAAAAAgAAAAAAAAALbWVzc2FnZV9saWIAAAAAEwAAAAAAAAAJc3VwcG9ydGVkAAAAAAAAAQAAAAAAAAAAAAABWFNldHMgYWxsb3dsaXN0IHN0YXR1cyBmb3IgYW4gT0FwcCBhZGRyZXNzLgoKV2hlbiB0aGUgYWxsb3dsaXN0IGlzIGVtcHR5LCBhbGwgT0FwcHMgYXJlIGFsbG93ZWQgKHVubGVzcyBvbiBkZW55bGlzdCkuCldoZW4gdGhlIGFsbG93bGlzdCBpcyBub3QgZW1wdHksIG9ubHkgYWxsb3dsaXN0ZWQgT0FwcHMgYXJlIGFsbG93ZWQuCkRlbnlsaXN0IGFsd2F5cyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgYWxsb3dsaXN0LgoKIyBBcmd1bWVudHMKKiBgb2FwcGAgLSBUaGUgT0FwcCBjb250cmFjdCBhZGRyZXNzCiogYGFsbG93ZWRgIC0gYHRydWVgIHRvIGFkZCB0byBhbGxvd2xpc3QsIGBmYWxzZWAgdG8gcmVtb3ZlAAAADXNldF9hbGxvd2xpc3QAAAAAAAACAAAAAAAAAARvYXBwAAAAEwAAAAAAAAAHYWxsb3dlZAAAAAABAAAAAAAAAAAAAAEJU2V0cyBkZW55bGlzdCBzdGF0dXMgZm9yIGFuIE9BcHAgYWRkcmVzcy4KCkRlbnlsaXN0ZWQgT0FwcHMgYXJlIGJsb2NrZWQgZnJvbSB1c2luZyB0aGlzIHdvcmtlciwgZXZlbiBpZiB0aGV5J3JlIG9uCnRoZSBhbGxvd2xpc3QgKGRlbnlsaXN0IHRha2VzIHByZWNlZGVuY2UpLgoKIyBBcmd1bWVudHMKKiBgb2FwcGAgLSBUaGUgT0FwcCBjb250cmFjdCBhZGRyZXNzCiogYGRlbmllZGAgLSBgdHJ1ZWAgdG8gYWRkIHRvIGRlbnlsaXN0LCBgZmFsc2VgIHRvIHJlbW92ZQAAAAAAAAxzZXRfZGVueWxpc3QAAAACAAAAAAAAAARvYXBwAAAAEwAAAAAAAAAGZGVuaWVkAAAAAAABAAAAAAAAAAAAAAE7U2V0cyB0aGUgZGVmYXVsdCBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMuCgpUaGUgbXVsdGlwbGllciBpcyBhcHBsaWVkIHRvIGJhc2UgZmVlcyBkdXJpbmcgZmVlIGNhbGN1bGF0aW9uLiBVc2VkIHdoZW4Kbm8gZGVzdGluYXRpb24tc3BlY2lmaWMgbXVsdGlwbGllciBpcyBjb25maWd1cmVkLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gQWRtaW4gYWRkcmVzcyAobXVzdCBwcm92aWRlIGF1dGhvcml6YXRpb24pCiogYG11bHRpcGxpZXJfYnBzYCAtIE11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICgxMDAwMCA9IDF4LCAxMjAwMCA9IDEuMngpAAAAABpzZXRfZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAAAAAAAAAAAAA8VNldHMgdGhlIGRlcG9zaXQgYWRkcmVzcyB3aGVyZSB3b3JrZXIgZmVlcyBhcmUgY29sbGVjdGVkLgoKV2hlbiBqb2JzIGFyZSBhc3NpZ25lZCwgZmVlcyBhcmUgZGlyZWN0ZWQgdG8gdGhpcyBhZGRyZXNzLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gQWRtaW4gYWRkcmVzcyAobXVzdCBwcm92aWRlIGF1dGhvcml6YXRpb24pCiogYGRlcG9zaXRfYWRkcmVzc2AgLSBBZGRyZXNzIHRvIHJlY2VpdmUgY29sbGVjdGVkIGZlZXMAAAAAAAATc2V0X2RlcG9zaXRfYWRkcmVzcwAAAAACAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAAD2RlcG9zaXRfYWRkcmVzcwAAAAATAAAAAAAAAAAAAADrU2V0cyBzdXBwb3J0ZWQgZXhlY3V0b3Igb3B0aW9uIHR5cGVzIGZvciBhIGRlc3RpbmF0aW9uIGVuZHBvaW50LgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gQWRtaW4gYWRkcmVzcyAobXVzdCBwcm92aWRlIGF1dGhvcml6YXRpb24pCiogYGVpZGAgLSBEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikKKiBgb3B0aW9uX3R5cGVzYCAtIEVuY29kZWQgc3VwcG9ydGVkIG9wdGlvbiB0eXBlcwAAAAAac2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXMAAAAAAAMAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAADZWlkAAAAAAQAAAAAAAAADG9wdGlvbl90eXBlcwAAAA4AAAAAAAAAAAAAARJTZXRzIHRoZSB3b3JrZXIgZmVlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcy4KClRoZSBmZWUgbGlicmFyeSBjYWxjdWxhdGVzIGZlZXMgYmFzZWQgb24gZXhlY3V0b3Igb3B0aW9ucyBhbmQgcHJpY2UgZmVlZCBkYXRhLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gQWRtaW4gYWRkcmVzcyAobXVzdCBwcm92aWRlIGF1dGhvcml6YXRpb24pCiogYHdvcmtlcl9mZWVfbGliYCAtIEZlZSBsaWJyYXJ5IGNvbnRyYWN0IGFkZHJlc3MgaW1wbGVtZW50aW5nIGBJRXhlY3V0b3JGZWVMaWJgAAAAAAASc2V0X3dvcmtlcl9mZWVfbGliAAAAAAACAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAADndvcmtlcl9mZWVfbGliAAAAAAATAAAAAAAAAAAAAAESU2V0cyB0aGUgcHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzLgoKVGhlIHByaWNlIGZlZWQgcHJvdmlkZXMgZ2FzIHByaWNlcyBhbmQgZXhjaGFuZ2UgcmF0ZXMgZm9yIGNyb3NzLWNoYWluCmZlZSBjYWxjdWxhdGlvbnMuCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBBZG1pbiBhZGRyZXNzIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgcHJpY2VfZmVlZGAgLSBQcmljZSBmZWVkIGNvbnRyYWN0IGFkZHJlc3MgaW1wbGVtZW50aW5nIGBJTGF5ZXJaZXJvUHJpY2VGZWVkYAAAAAAADnNldF9wcmljZV9mZWVkAAAAAAACAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAACnByaWNlX2ZlZWQAAAAAABMAAAAAAAAAAAAAAFVSZXR1cm5zIHdoZXRoZXIgYW4gYWRkcmVzcyBpcyBhbiBhZG1pbi4KCiMgQXJndW1lbnRzCiogYGFkbWluYCAtIFRoZSBhZGRyZXNzIHRvIGNoZWNrAAAAAAAACGlzX2FkbWluAAAAAQAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAQAAAAEAAAAAAAAAHFJldHVybnMgYWxsIGFkbWluIGFkZHJlc3Nlcy4AAAAGYWRtaW5zAAAAAAAAAAAAAQAAA+oAAAATAAAAAAAAACVSZXR1cm5zIHdoZXRoZXIgdGhlIHdvcmtlciBpcyBwYXVzZWQuAAAAAAAABnBhdXNlZAAAAAAAAAAAAAEAAAABAAAAAAAAAG9SZXR1cm5zIHdoZXRoZXIgYSBtZXNzYWdlIGxpYnJhcnkgaXMgc3VwcG9ydGVkLgoKIyBBcmd1bWVudHMKKiBgbWVzc2FnZV9saWJgIC0gTWVzc2FnZSBsaWJyYXJ5IGNvbnRyYWN0IGFkZHJlc3MAAAAAGGlzX3N1cHBvcnRlZF9tZXNzYWdlX2xpYgAAAAEAAAAAAAAAC21lc3NhZ2VfbGliAAAAABMAAAABAAAAAQAAAAAAAABzUmV0dXJucyBhbGwgc3VwcG9ydGVkIG1lc3NhZ2UgbGlicmFyeSBhZGRyZXNzZXMuCgojIFJldHVybnMKVmVjdG9yIG9mIHN1cHBvcnRlZCBtZXNzYWdlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzc2VzLgAAAAAMbWVzc2FnZV9saWJzAAAAAAAAAAEAAAPqAAAAEwAAAAAAAABaUmV0dXJucyB3aGV0aGVyIGFuIE9BcHAgaXMgb24gdGhlIGFsbG93bGlzdC4KCiMgQXJndW1lbnRzCiogYG9hcHBgIC0gT0FwcCBjb250cmFjdCBhZGRyZXNzAAAAAAAPaXNfb25fYWxsb3dsaXN0AAAAAAEAAAAAAAAABG9hcHAAAAATAAAAAQAAAAEAAAAAAAAAWVJldHVybnMgd2hldGhlciBhbiBPQXBwIGlzIG9uIHRoZSBkZW55bGlzdC4KCiMgQXJndW1lbnRzCiogYG9hcHBgIC0gT0FwcCBjb250cmFjdCBhZGRyZXNzAAAAAAAADmlzX29uX2RlbnlsaXN0AAAAAAABAAAAAAAAAARvYXBwAAAAEwAAAAEAAAABAAAAAAAAAPtSZXR1cm5zIHdoZXRoZXIgYW4gT0FwcCBoYXMgYWNjZXNzIGNvbnRyb2wgbGlzdCAoQUNMKSBwZXJtaXNzaW9uLgoKQUNMIGV2YWx1YXRpb24gb3JkZXI6CjEuIElmIG9uIGRlbnlsaXN0IOKGkiBkZW5pZWQKMi4gSWYgYWxsb3dsaXN0IGlzIGVtcHR5IE9SIG9uIGFsbG93bGlzdCDihpIgYWxsb3dlZAozLiBPdGhlcndpc2Ug4oaSIGRlbmllZAoKIyBBcmd1bWVudHMKKiBgc2VuZGVyYCAtIE9BcHAgY29udHJhY3QgYWRkcmVzcyB0byBjaGVjawAAAAAHaGFzX2FjbAAAAAABAAAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAAAQAAAAAAAAAxUmV0dXJucyB0aGUgbnVtYmVyIG9mIGFkZHJlc3NlcyBvbiB0aGUgYWxsb3dsaXN0LgAAAAAAAA5hbGxvd2xpc3Rfc2l6ZQAAAAAAAAAAAAEAAAAEAAAAAAAAADNSZXR1cm5zIHRoZSBkZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cy4AAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAAAAAABAAAABAAAAAAAAAA1UmV0dXJucyB0aGUgZGVwb3NpdCBhZGRyZXNzIHdoZXJlIGZlZXMgYXJlIGNvbGxlY3RlZC4AAAAAAAAPZGVwb3NpdF9hZGRyZXNzAAAAAAAAAAABAAAAEwAAAAAAAAAoUmV0dXJucyB0aGUgcHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzLgAAAApwcmljZV9mZWVkAAAAAAAAAAAAAQAAABMAAAAAAAAAfFJldHVybnMgc3VwcG9ydGVkIG9wdGlvbiB0eXBlcyBmb3IgYSBkZXN0aW5hdGlvbiBlbmRwb2ludC4KCiMgQXJndW1lbnRzCiogYGVpZGAgLSBEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikAAAAaZ2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXMAAAAAAAEAAAAAAAAAA2VpZAAAAAAEAAAAAQAAA+gAAAAOAAAAAAAAADBSZXR1cm5zIHRoZSB3b3JrZXIgZmVlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcy4AAAAOd29ya2VyX2ZlZV9saWIAAAAAAAAAAAABAAAAEwAAAAAAAAB4Q2FsY3VsYXRlcyB0aGUgdmVyaWZpY2F0aW9uIGZlZSBmb3IgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgoKQ2FsbGVkIGJ5IHRoZSBzZW5kIGxpYnJhcnkgdG8gcXVvdGUgRFZOIGZlZXMgYmVmb3JlIHNlbmRpbmcuAAAAB2dldF9mZWUAAAAABwAAAAAAAAAIc2VuZF9saWIAAAATAAAAAAAAAAZzZW5kZXIAAAAAABMAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAANcGFja2V0X2hlYWRlcgAAAAAAAA4AAAAAAAAADHBheWxvYWRfaGFzaAAAA+4AAAAgAAAAAAAAAA1jb25maXJtYXRpb25zAAAAAAAABgAAAAAAAAAHb3B0aW9ucwAAAAAOAAAAAQAAAAsAAAAAAAAAuEFzc2lnbnMgYSB2ZXJpZmljYXRpb24gam9iIHRvIHRoaXMgRFZOIGFuZCByZXR1cm5zIGZlZSBwYXltZW50IGluZm8uCgpDYWxsZWQgYnkgdGhlIHNlbmQgbGlicmFyeSB3aGVuIGEgbWVzc2FnZSBpcyBzZW50LiBUaGUgRFZOIHdpbGwgbGF0ZXIKdmVyaWZ5IHRoZSBtZXNzYWdlIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi4AAAAKYXNzaWduX2pvYgAAAAAABwAAAAAAAAAIc2VuZF9saWIAAAATAAAAAAAAAAZzZW5kZXIAAAAAABMAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAANcGFja2V0X2hlYWRlcgAAAAAAAA4AAAAAAAAADHBheWxvYWRfaGFzaAAAA+4AAAAgAAAAAAAAAA1jb25maXJtYXRpb25zAAAAAAAABgAAAAAAAAAHb3B0aW9ucwAAAAAOAAAAAQAAB9AAAAAMRmVlUmVjaXBpZW50AAAAAAAAAERTZXRzIGRlc3RpbmF0aW9uIGNoYWluIGNvbmZpZ3VyYXRpb25zLiBSZXF1aXJlcyBhZG1pbiBhdXRob3JpemF0aW9uLgAAAA5zZXRfZHN0X2NvbmZpZwAAAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAAZwYXJhbXMAAAAAA+oAAAfQAAAADkRzdENvbmZpZ1BhcmFtAAAAAAAAAAAAAAAAAEFSZXR1cm5zIHRoZSBkZXN0aW5hdGlvbiBjb25maWd1cmF0aW9uIGZvciBhIHNwZWNpZmljIGVuZHBvaW50IElELgAAAAAAAApkc3RfY29uZmlnAAAAAAABAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAABAAAD6AAAB9AAAAAJRHN0Q29uZmlnAAAAAAAAAAAAACVSZXR1cm5zIHRoZSBWZXJpZmllciBJRCBmb3IgdGhpcyBEVk4uAAAAAAAAA3ZpZAAAAAAAAAAAAQAAAAQAAAAAAAAAd0NvbXB1dGVzIHRoZSBoYXNoIG9mIGNhbGwgZGF0YSBmb3IgbXVsdGlzaWcgc2lnbmluZy4KCk9mZi1jaGFpbiBzaWduZXJzIHVzZSB0aGlzIHRvIGNvbXB1dGUgdGhlIGhhc2ggdGhleSBuZWVkIHRvIHNpZ24uAAAAAA5oYXNoX2NhbGxfZGF0YQAAAAAAAwAAAAAAAAADdmlkAAAAAAQAAAAAAAAACmV4cGlyYXRpb24AAAAAAAYAAAAAAAAABWNhbGxzAAAAAAAD6gAAB9AAAAAEQ2FsbAAAAAEAAAPuAAAAIAAAAAAAAAJkSW5pdGlhbGl6ZXMgdGhlIERWTiBjb250cmFjdC4KCiMgQXJndW1lbnRzCiogYHZpZGAgLSBWZXJpZmllciBJRCwgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgRFZOCiogYHNpZ25lcnNgIC0gSW5pdGlhbCBtdWx0aXNpZyBzaWduZXJzICgyMC1ieXRlIEV0aGVyZXVtIGFkZHJlc3NlcykKKiBgdGhyZXNob2xkYCAtIE1pbmltdW0gc2lnbmF0dXJlcyByZXF1aXJlZCBmb3IgbXVsdGlzaWcgb3BlcmF0aW9ucwoqIGBhZG1pbnNgIC0gSW5pdGlhbCBhZG1pbiBhZGRyZXNzZXMgZm9yIG9wZXJhdGlvbmFsIGZ1bmN0aW9ucwoqIGBzdXBwb3J0ZWRfbXNnbGlic2AgLSBNZXNzYWdlIGxpYnJhcmllcyB0aGlzIERWTiBzdXBwb3J0cyAoZS5nLiwgVUxOMzAyKQoqIGBwcmljZV9mZWVkYCAtIFByaWNlIGZlZWQgY29udHJhY3QgZm9yIGZlZSBjYWxjdWxhdGlvbnMKKiBgZGVmYXVsdF9tdWx0aXBsaWVyX2Jwc2AgLSBEZWZhdWx0IGZlZSBtdWx0aXBsaWVyICgxMDAwMCA9IDF4KQoqIGB3b3JrZXJfZmVlX2xpYmAgLSBGZWUgbGlicmFyeSBjb250cmFjdCBmb3IgY29tcHV0aW5nIERWTiBmZWVzCiogYGRlcG9zaXRfYWRkcmVzc2AgLSBBZGRyZXNzIHRvIHJlY2VpdmUgZmVlIHBheW1lbnRzAAAADV9fY29uc3RydWN0b3IAAAAAAAAJAAAAAAAAAAN2aWQAAAAABAAAAAAAAAAHc2lnbmVycwAAAAPqAAAD7gAAABQAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAABmFkbWlucwAAAAAD6gAAABMAAAAAAAAAEXN1cHBvcnRlZF9tc2dsaWJzAAAAAAAD6gAAABMAAAAAAAAACnByaWNlX2ZlZWQAAAAAABMAAAAAAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAQAAAAAAAAADndvcmtlcl9mZWVfbGliAAAAAAATAAAAAAAAAA9kZXBvc2l0X2FkZHJlc3MAAAAAEwAAAAAAAAAAAAABalNldHMgYWRtaW4gc3RhdHVzIGZvciBhbiBhZGRyZXNzLiBDYW4gYmUgY2FsbGVkIGJ5IGFuIGV4aXN0aW5nIGFkbWluLgoKVGhpcyBhbGxvd3MgZXhpc3RpbmcgYWRtaW5zIHRvIGFkZCBvciByZW1vdmUgb3RoZXIgYWRtaW5zIHdpdGhvdXQgZ29pbmcgdGhyb3VnaAp0aGUgb3duZXIvbXVsdGlzaWcgcGF0aC4KCiMgQXJndW1lbnRzCiogYGNhbGxlcmAgLSBUaGUgYWRtaW4gY2FsbGluZyB0aGlzIGZ1bmN0aW9uIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgYWRtaW5gIC0gVGhlIGFkZHJlc3MgdG8gc2V0IGFkbWluIHN0YXR1cyBmb3IKKiBgYWN0aXZlYCAtIGB0cnVlYCB0byBhZGQgYWRtaW4sIGBmYWxzZWAgdG8gcmVtb3ZlAAAAAAAJc2V0X2FkbWluAAAAAAAAAwAAAAAAAAAGY2FsbGVyAAAAAAATAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAAAAAABfEFsbG93cyB0aGUgcXVvcnVtIHRvIGFkZC9yZW1vdmUgYWRtaW5zIHdpdGhvdXQgcmVxdWlyaW5nIGFuIGFkbWluIHNpZ25hdHVyZS4KClRoaXMgZnVuY3Rpb24gYnlwYXNzZXMgdGhlIG5vcm1hbCBhZG1pbiB2ZXJpZmljYXRpb24gaW4gYF9fY2hlY2tfYXV0aGAsCnJlcXVpcmluZyBvbmx5IG11bHRpc2lnIHF1b3J1bSBzaWduYXR1cmVzLiBNdXN0IGJlIGNhbGxlZCBhcyBhIHNpbmdsZQpvcGVyYXRpb24gKGNhbm5vdCBiZSBidW5kbGVkIHdpdGggb3RoZXIgY2FsbHMpLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gVGhlIGFkZHJlc3MgdG8gc2V0IGFkbWluIHN0YXR1cyBmb3IKKiBgYWN0aXZlYCAtIGB0cnVlYCB0byBhZGQgYWRtaW4sIGBmYWxzZWAgdG8gcmVtb3ZlAAAAE3F1b3J1bV9jaGFuZ2VfYWRtaW4AAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAAAAAAAAAAAHdXBncmFkZQAAAAABAAAAAAAAAA1uZXdfd2FzbV9oYXNoAAAAAAAD7gAAACAAAAAAAAAAAAAAAAAAAAAHbWlncmF0ZQAAAAABAAAAAAAAAA5taWdyYXRpb25fZGF0YQAAAAAH0AAAAA1NaWdyYXRpb25EYXRhAAAAAAAAAAAAAAAAAAAAAAAACmF1dGhvcml6ZXIAAAAAAAAAAAABAAAAEwAAAAIAAAAAAAAAAAAAAApEdm5TdG9yYWdlAAAAAAADAAAAAAAAAAAAAAADVmlkAAAAAAEAAAAAAAAACURzdENvbmZpZwAAAAAAAAEAAAAEAAAAAQAAAAAAAAAIVXNlZEhhc2gAAAABAAAD7gAAACAAAAAAAAABj1NldHMgVFRMIGNvbmZpZ3MgZm9yIGluc3RhbmNlIGFuZCBwZXJzaXN0ZW50IHN0b3JhZ2UuCgotIGBOb25lYCB2YWx1ZXMgcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGNvbmZpZyAoZGlzYWJsZXMgYXV0by1leHRlbnNpb24gZm9yIHRoYXQgdHlwZSkKLSBWYWxpZGF0ZXMgdGhhdCBgdGhyZXNob2xkIDw9IGV4dGVuZF90byA8PSBNQVhfVFRMYAoKIyBBcmd1bWVudHMKLSBgaW5zdGFuY2VgIC0gVFRMIGNvbmZpZyBmb3IgaW5zdGFuY2Ugc3RvcmFnZQotIGBwZXJzaXN0ZW50YCAtIFRUTCBjb25maWcgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZQoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnRnJvemVuYCBpZiBjb25maWdzIGFyZSBmcm96ZW4KLSBgSW52YWxpZFR0bENvbmZpZ2AgaWYgdmFsaWRhdGlvbiBmYWlscwAAAAAPc2V0X3R0bF9jb25maWdzAAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAADhUGVybWFuZW50bHkgZnJlZXplcyBUVEwgY29uZmlncywgcHJldmVudGluZyBhbnkgZnV0dXJlIG1vZGlmaWNhdGlvbnMuCgpUaGlzIGlzIGlycmV2ZXJzaWJsZSBhbmQgcHJvdmlkZXMgaW1tdXRhYmlsaXR5IGd1YXJhbnRlZXMgdG8gdXNlcnMuCkVtaXRzIGBUdGxDb25maWdzRnJvemVuYCBldmVudC4KCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0FscmVhZHlGcm96ZW5gIGlmIGFscmVhZHkgZnJvemVuAAAAAAAAEmZyZWV6ZV90dGxfY29uZmlncwAAAAAAAAAAAAAAAAAAAAAAJ1JldHVybnMgd2hldGhlciBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAKVFeHRlbmRzIHRoZSBpbnN0YW5jZSBUVEwuCgojIEFyZ3VtZW50cwoKKiBgdGhyZXNob2xkYCAtIFRoZSB0aHJlc2hvbGQgdG8gZXh0ZW5kIHRoZSBUVEwgKGlmIGN1cnJlbnQgVFRMIGlzIGJlbG93IHRoaXMsIGV4dGVuZCkuCiogYGV4dGVuZF90b2AgLSBUaGUgVFRMIHRvIGV4dGVuZCB0by4AAAAAAAATZXh0ZW5kX2luc3RhbmNlX3R0bAAAAAACAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAlleHRlbmRfdG8AAAAAAAAEAAAAAAAAAAAAAABJQWRkcyBvciByZW1vdmVzIGEgc2lnbmVyIGZyb20gdGhlIG11bHRpc2lnLiBSZXF1aXJlcyBvd25lciBhdXRob3JpemF0aW9uLgAAAAAAAApzZXRfc2lnbmVyAAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAAAAAERTZXRzIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIChxdW9ydW0pLiBSZXF1aXJlcyBvd25lciBhdXRob3JpemF0aW9uLgAAAA1zZXRfdGhyZXNob2xkAAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAAAAAAH1JldHVybnMgYWxsIHJlZ2lzdGVyZWQgc2lnbmVycy4AAAAAC2dldF9zaWduZXJzAAAAAAAAAAABAAAD6gAAA+4AAAAUAAAAAAAAAC9SZXR1cm5zIHRoZSB0b3RhbCBudW1iZXIgb2YgcmVnaXN0ZXJlZCBzaWduZXJzLgAAAAANdG90YWxfc2lnbmVycwAAAAAAAAAAAAABAAAABAAAAAAAAAAsQ2hlY2tzIGlmIGFuIGFkZHJlc3MgaXMgYSByZWdpc3RlcmVkIHNpZ25lci4AAAAJaXNfc2lnbmVyAAAAAAAAAQAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAABAAAAAAAAADFSZXR1cm5zIHRoZSBjdXJyZW50IHNpZ25hdHVyZSB0aHJlc2hvbGQgKHF1b3J1bSkuAAAAAAAACXRocmVzaG9sZAAAAAAAAAAAAAABAAAABAAAAAAAAAA1VmVyaWZpZXMgc2lnbmF0dXJlcyBhZ2FpbnN0IHRoZSBjb25maWd1cmVkIHRocmVzaG9sZC4AAAAAAAARdmVyaWZ5X3NpZ25hdHVyZXMAAAAAAAACAAAAAAAAAAZkaWdlc3QAAAAAA+4AAAAgAAAAAAAAAApzaWduYXR1cmVzAAAAAAPqAAAD7gAAAEEAAAAAAAAAAAAAAC9WZXJpZmllcyBzaWduYXR1cmVzIGFnYWluc3QgYSBjdXN0b20gdGhyZXNob2xkLgAAAAATdmVyaWZ5X25fc2lnbmF0dXJlcwAAAAADAAAAAAAAAAZkaWdlc3QAAAAAA+4AAAAgAAAAAAAAAApzaWduYXR1cmVzAAAAAAPqAAAD7gAAAEEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAADUVuZHBvaW50RXJyb3IAAAAAAAAZAAAAAAAAABFBbHJlYWR5UmVnaXN0ZXJlZAAAAAAAAAEAAAAAAAAADUNvbXBvc2VFeGlzdHMAAAAAAAACAAAAAAAAAA9Db21wb3NlTm90Rm91bmQAAAAAAwAAAAAAAAAcRGVmYXVsdFJlY2VpdmVMaWJVbmF2YWlsYWJsZQAAAAQAAAAAAAAAGURlZmF1bHRTZW5kTGliVW5hdmFpbGFibGUAAAAAAAAFAAAAAAAAABVJbnN1ZmZpY2llbnROYXRpdmVGZWUAAAAAAAAGAAAAAAAAABJJbnN1ZmZpY2llbnRacm9GZWUAAAAAAAcAAAAAAAAAEEludmFsaWRGZWVBbW91bnQAAAAIAAAAAAAAAA1JbnZhbGlkRXhwaXJ5AAAAAAAACQAAAAAAAAAMSW52YWxpZEluZGV4AAAACgAAAAAAAAAMSW52YWxpZE5vbmNlAAAACwAAAAAAAAASSW52YWxpZFBheWxvYWRIYXNoAAAAAAAMAAAAAAAAABVJbnZhbGlkUmVjZWl2ZUxpYnJh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ciBhbmQgRFZOIG9wdGlvbnMuAAAAAAAAB29wdGlvbnMAAAAADgAAADlXaGV0aGVyIHRvIHBheSBmZWVzIGluIFpSTyB0b2tlbiBpbnN0ZWFkIG9mIG5hdGl2ZSB0b2tlbi4AAAAAAAAKcGF5X2luX3pybwAAAAAAAQAAADVSZWNlaXZlciBhZGRyZXNzIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAAQAAAE1Tb3VyY2UgbWVzc2FnZSBpbmZvcm1hdGlvbiBpZGVudGlmeWluZyB3aGVyZSBhIGNyb3NzLWNoYWluIG1lc3NhZ2UgY2FtZSBmcm9tLgAAAAAAAAAAAAAGT3JpZ2luAAAAAAADAAAAF05vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAAAAVub25jZQAAAAAAAAYAAAAuU2VuZGVyIGFkZHJlc3Mgb24gdGhlIHNvdXJjZSBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAABnNlbmRlcgAAAAAD7gAAACAAAAAmU291cmNlIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAKEZlZSBzdHJ1Y3R1cmUgZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2luZy4AAAAAAAAADE1lc3NhZ2luZ0ZlZQAAAAIAAAAfRmVlIHBhaWQgaW4gbmF0aXZlIHRva2VuIChYTE0pLgAAAAAKbmF0aXZlX2ZlZQAAAAAACwAAAChGZWUgcGFpZCBpbiBaUk8gdG9rZW4gKExheWVyWmVybyB0b2tlbikuAAAAB3pyb19mZWUAAAAACwAAAAEAAABCUmVjZWlwdCByZXR1cm5lZCBhZnRlciBzdWNjZXNzZnVsbHkgc2VuZGluZyBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuAAAAAAAAAAAAEE1lc3NhZ2luZ1JlY2VpcHQAAAADAAAAKVRoZSBmZWVzIGNoYXJnZWQgZm9yIHNlbmRpbmcgdGhlIG1lc3NhZ2UuAAAAAAAAA2ZlZQAAAAfQAAAADE1lc3NhZ2luZ0ZlZQAAACtHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIG1lc3NhZ2UuAAAAAARndWlkAAAD7gAAACAAAAAkVGhlIG91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAAAIAAAA4VHlwZSBvZiBtZXNzYWdlIGxpYnJhcnkgaW5kaWNhdGluZyBzdXBwb3J0ZWQgb3BlcmF0aW9ucy4AAAAAAAAADk1lc3NhZ2VMaWJUeXBlAAAAAAADAAAAAAAAAB9TdXBwb3J0cyBvbmx5IHNlbmRpbmcgbWVzc2FnZXMuAAAAAARTZW5kAAAAAAAAACFTdXBwb3J0cyBvbmx5IHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAHUmVjZWl2ZQAAAAAAAAAALVN1cHBvcnRzIGJvdGggc2VuZGluZyBhbmQgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAA5TZW5kQW5kUmVjZWl2ZQAAAAAAAQAAALdWZXJzaW9uIGluZm9ybWF0aW9uIGZvciBhIG1lc3NhZ2UgbGlicmFyeS4KCk5vdGU6IGBtaW5vcmAgYW5kIGBlbmRwb2ludF92ZXJzaW9uYCB1c2UgYHUzMmAgaW5zdGVhZCBvZiBgdThgIGJlY2F1c2UgU3RlbGxhciBkb2VzIG5vdApzdXBwb3J0IGB1OGAgdHlwZXMgaW4gY29udHJhY3QgaW50ZXJmYWNlIGZ1bmN0aW9ucy4AAAAAAAAAABFNZXNzYWdlTGliVmVyc2lvbgAAAAAAAAMAAAAzRW5kcG9pbnQgdmVyc2lvbiAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAABBlbmRwb2ludF92ZXJzaW9uAAAABAAAABVNYWpvciB2ZXJzaW9uIG51bWJlci4AAAAAAAAFbWFqb3IAAAAAAAAGAAAAN01pbm9yIHZlcnNpb24gbnVtYmVyIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAABW1pbm9yAAAAAAAABAAAAAEAAAA2VGltZW91dCBjb25maWd1cmF0aW9uIGZvciByZWNlaXZlIGxpYnJhcnkgdHJhbnNpdGlvbnMuAAAAAAAAAAAAB1RpbWVvdXQAAAAAAgAAAChVbml4IHRpbWVzdGFtcCB3aGVuIHRoZSB0aW1lb3V0IGV4cGlyZXMuAAAABmV4cGlyeQAAAAAABgAAAClUaGUgbmV3IGxpYnJhcnkgYWRkcmVzcyB0byB0cmFuc2l0aW9uIHRvLgAAAAAAAANsaWIAAAAAEwAAAAEAAAA1UGFyYW1ldGVycyBmb3Igc2V0dGluZyBtZXNzYWdlIGxpYnJhcnkgY29uZmlndXJhdGlvbi4AAAAAAAAAAAAADlNldENvbmZpZ1BhcmFtAAAAAAADAAAAH1hEUi1lbmNvZGVkIGNvbmZpZ3VyYXRpb24gZGF0YS4AAAAABmNvbmZpZwAAAAAADgAAADBUaGUgdHlwZSBvZiBjb25maWd1cmF0aW9uIChlLmcuLCBleGVjdXRvciwgVUxOKS4AAAALY29uZmlnX3R5cGUAAAAABAAAACdUaGUgZW5kcG9pbnQgSUQgdGhpcyBjb25maWcgYXBwbGllcyB0by4AAAAAA2VpZAAAAAAEAAAAAQAAADFSZXNvbHZlZCBsaWJyYXJ5IGluZm9ybWF0aW9uIHdpdGggZGVmYXVsdCBzdGF0dXMuAAAAAAAAAAAAAA9SZXNvbHZlZExpYnJhcnkAAAAAAgAAAERXaGV0aGVyIHRoaXMgaXMgdGhlIGRlZmF1bHQgbGlicmFyeSAodHJ1ZSkgb3IgT0FwcC1zcGVjaWZpYyAoZmFsc2UpLgAAAAppc19kZWZhdWx0AAAAAAABAAAAHVRoZSByZXNvbHZlZCBsaWJyYXJ5IGFkZHJlc3MuAAAAAAAAA2xpYgAAAAATAAAAAQAAAEhPdXRib3VuZCBwYWNrZXQgY29udGFpbmluZyBhbGwgaW5mb3JtYXRpb24gZm9yIGNyb3NzLWNoYWluIHRyYW5zbWlzc2lvbi4AAAAAAAAADk91dGJvdW5kUGFja2V0AAAAAAAHAAAAGERlc3RpbmF0aW9uIGVuZHBvaW50IElELgAAAAdkc3RfZWlkAAAAAAQAAAAsR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgbWVzc2FnZS4AAAAEZ3VpZAAAA+4AAAAgAAAAFFRoZSBtZXNzYWdlIHBheWxvYWQuAAAAB21lc3NhZ2UAAAAADgAAACBPdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAAxUmVjZWl2ZXIgYWRkcmVzcyBvbiBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAH1NlbmRlciBhZGRyZXNzIG9uIHNvdXJjZSBjaGFpbi4AAAAABnNlbmRlcgAAAAAAEwAAABNTb3VyY2UgZW5kcG9pbnQgSUQuAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAK0EgZmVlIHJlY2lwaWVudCB3aXRoIHRoZSBhbW91bnQgdG8gYmUgcGFpZC4AAAAAAAAAAAxGZWVSZWNpcGllbnQAAAACAAAAFUFtb3VudCBvZiBmZWUgdG8gcGF5LgAAAAAAAAZhbW91bnQAAAAAAAsAAAAfVGhlIGFkZHJlc3MgdG8gc2VuZCB0aGUgZmVlIHRvLgAAAAACdG8AAAAAABMAAAABAAAAPFJlc3VsdCBvZiBzZW5kIG9wZXJhdGlvbiBjb250YWluaW5nIGZlZXMgYW5kIGVuY29kZWQgcGFja2V0LgAAAAAAAAANRmVlc0FuZFBhY2tldAAAAAAAAAMAAAAqVGhlIGVuY29kZWQgcGFja2V0IHJlYWR5IGZvciB0cmFuc21pc3Npb24uAAAAAAAOZW5jb2RlZF9wYWNrZXQAAAAAAA4AAAA/TGlzdCBvZiBuYXRpdmUgdG9rZW4gZmVlIHJlY2lwaWVudHMgKGV4ZWN1dG9yLCBEVk5zLCB0cmVhc3VyeSkuAAAAABVuYXRpdmVfZmVlX3JlY2lwaWVudHMAAAAAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAsTGlzdCBvZiBaUk8gdG9rZW4gZmVlIHJlY2lwaWVudHMgKHRyZWFzdXJ5KS4AAAASenJvX2ZlZV9yZWNpcGllbnRzAAAAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAEAAAAHVBhY2tldENvZGVjVjFFcnJvcjogMTEwMC0xMTA5AAAAAAAAAAAAABJQYWNrZXRDb2RlY1YxRXJyb3IAAAAAAAIAAAAAAAAAE0ludmFsaWRQYWNrZXRIZWFkZXIAAAAETAAAAAAAAAAUSW52YWxpZFBhY2tldFZlcnNpb24AAARNAAAABAAAAB1Xb3JrZXJPcHRpb25zRXJyb3I6IDExMTAtMTExOQAAAAAAAAAAAAASV29ya2VyT3B0aW9uc0Vycm9yAAAAAAAJAAAAAAAAABJJbnZhbGlkQnl0ZXNMZW5ndGgAAAAABFYAAAAAAAAAGUludmFsaWRMZWdhY3lPcHRpb25zVHlwZTEAAAAAAARXAAAAAAAAABlJbnZhbGlkTGVnYWN5T3B0aW9uc1R5cGUyAAAAAAAEWAAAAAAAAAARSW52YWxpZE9wdGlvblR5cGUAAAAAAARZAAAAAAAAAA5JbnZhbGlkT3B0aW9ucwAAAAAEWgAAAAAAAAAPSW52YWxpZFdvcmtlcklkAAAABFsAAAAAAAAAHUxlZ2FjeU9wdGlvbnNUeXBlMUdhc092ZXJmbG93AAAAAAAEXAAAAAAAAAAgTGVnYWN5T3B0aW9uc1R5cGUyQW1vdW50T3ZlcmZsb3cAAARdAAAAAAAAAB1MZWdhY3lPcHRpb25zVHlwZTJHYXNPdmVyZmxvdwAAAAAABF4AAAAEAAAAHEJ1ZmZlclJlYWRlckVycm9yOiAxMDAwLTEwMDkAAAAAAAAAEUJ1ZmZlclJlYWRlckVycm9yAAAAAAAAAgAAAAAAAAANSW52YWxpZExlbmd0aAAAAAAAA+gAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA+kAAAAEAAAAHEJ1ZmZlcldyaXRlckVycm9yOiAxMDEwLTEwMTkAAAAAAAAAEUJ1ZmZlcldyaXRlckVycm9yAAAAAAAAAQAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD8gAAAAQAAAAfVHRsQ29uZmlndXJhYmxlRXJyb3I6IDEwMjAtMTAyOQAAAAAAAAAAFFR0bENvbmZpZ3VyYWJsZUVycm9yAAAAAwAAAAAAAAAQSW52YWxpZFR0bENvbmZpZwAAA/wAAAAAAAAAD1R0bENvbmZpZ0Zyb3plbgAAAAP9AAAAAAAAABZUdGxDb25maWdBbHJlYWR5RnJvemVuAAAAAAP+AAAABAAAABdPd25hYmxlRXJyb3I6IDEwMzAtMTAzOQAAAAAAAAAADE93bmFibGVFcnJvcgAAAAYAAAAAAAAAE0ludmFsaWRQZW5kaW5nT3duZXIAAAAEBgAAAAAAAAAKSW52YWxpZFR0bAAAAAAEBwAAAAAAAAARTm9QZW5kaW5nVHJhbnNmZXIAAAAAAAQIAAAAAAAAAA9Pd25lckFscmVhZHlTZXQAAAAECQAAAAAAAAALT3duZXJOb3RTZXQAAAAECgAAAAAAAAASVHJhbnNmZXJJblByb2dyZXNzAAAAAAQLAAAABAAAABhCeXRlc0V4dEVycm9yOiAxMDQwLTEwNDkAAAAAAAAADUJ5dGVzRXh0RXJyb3IAAAAAAAABAAAAAAAAAA5MZW5ndGhNaXNtYXRjaAAAAAAEEAAAAAQAAAAbVXBncmFkZWFibGVFcnJvcjogMTA1MC0xMDU5AAAAAAAAAAAQVXBncmFkZWFibGVFcnJvcgAAAAEAAAAAAAAAE01pZ3JhdGlvbk5vdEFsbG93ZWQAAAAEGgAAAAQAAAAYTXVsdGlzaWdFcnJvcjogMTA2MC0xMDY5AAAAAAAAAA1NdWx0aXNpZ0Vycm9yAAAAAAAACAAAAAAAAAASQWxyZWFkeUluaXRpYWxpemVkAAAAAAQkAAAAAAAAAA1JbnZhbGlkU2lnbmVyAAAAAAAEJQAAAAAAAAAOU2lnbmF0dXJlRXJyb3IAAAAABCYAAAAAAAAAE1NpZ25lckFscmVhZHlFeGlzdHMAAAAEJwAAAAAAAAAOU2lnbmVyTm90Rm91bmQAAAAABCgAAAAAAAAAHVRvdGFsU2lnbmVyc0xlc3NUaGFuVGhyZXNob2xkAAAAAAAEKQAAAAAAAAAPVW5zb3J0ZWRTaWduZXJzAAAABCoAAAAAAAAADVplcm9UaHJlc2hvbGQAAAAAAAQrAAAABQAAADBFdmVudCBlbWl0dGVkIHdoZW4gYSBzaWduZXIgaXMgYWRkZWQgb3IgcmVtb3ZlZC4AAAAAAAAACVNpZ25lclNldAAAAAAAAAEAAAAKc2lnbmVyX3NldAAAAAAAAgAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAACAAAABQAAADZFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNpZ25hdHVyZSB0aHJlc2hvbGQgaXMgY2hhbmdlZC4AAAAAAAAAAAAMVGhyZXNob2xkU2V0AAAAAQAAAA10aHJlc2hvbGRfc2V0AAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAD011bHRpc2lnU3RvcmFnZQAAAAACAAAAAAAAAAAAAAAHU2lnbmVycwAAAAAAAAAAAAAAAAlUaHJlc2hvbGQAAAAAAAAFAAAAV0V2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgdHJhbnNmZXJyZWQgKGJvdGggc2luZ2xlLXN0ZXAgYW5kIHR3by1zdGVwIGNvbXBsZXRpb24pLgAAAAAAAAAAFE93bmVyc2hpcFRyYW5zZmVycmVkAAAAAQAAABVvd25lcnNoaXBfdHJhbnNmZXJyZWQAAAAAAAACAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAACAAAABQAAADtFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIHByb3Bvc2VkLgAAAAAAAAAAFU93bmVyc2hpcFRyYW5zZmVycmluZwAAAAAAAAEAAAAWb3duZXJzaGlwX3RyYW5zZmVycmluZwAAAAAAAwAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAAN0dGwAAAAABAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHJlbm91bmNlZC4AAAAAAAAAAAAST3duZXJzaGlwUmVub3VuY2VkAAAAAAABAAAAE293bmVyc2hpcF9yZW5vdW5jZWQAAAAAAQAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAACAAAAAgAAAAAAAAAAAAAADk93bmFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAFT3duZXIAAAAAAAAAAAAAAAAAAAxQZW5kaW5nT3duZXIAAAABAAAASVRUTCBjb25maWd1cmF0aW9uOiB0aHJlc2hvbGQgKHdoZW4gdG8gZXh0ZW5kKSBhbmQgZXh0ZW5kX3RvICh0YXJnZXQgVFRMKS4AAAAAAAAAAAAACVR0bENvbmZpZwAAAAAAAAIAAAAoVGFyZ2V0IFRUTCBhZnRlciBleHRlbnNpb24gKGluIGxlZGdlcnMpLgAAAAlleHRlbmRfdG8AAAAAAAAEAAAAM1RUTCB0aHJlc2hvbGQgdGhhdCB0cmlnZ2VycyBleHRlbnNpb24gKGluIGxlZGdlcnMpLgAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAUAAAAnRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBzZXQuAAAAAAAAAAANVHRsQ29uZmlnc1NldAAAAAAAAAEAAAAPdHRsX2NvbmZpZ3Nfc2V0AAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAAAAAAKcGVyc2lzdGVudAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAAAAAAABBUdGxDb25maWdzRnJvemVuAAAAAQAAABJ0dGxfY29uZmlnc19mcm96ZW4AAAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAEFR0bENvbmZpZ1N0b3JhZ2UAAAADAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAhJbnN0YW5jZQAAAAAAAAAAAAAAClBlcnNpc3RlbnQAAAAAAAIAAAAAAAAAAAAAABJVcGdyYWRlYWJsZVN0b3JhZ2UAAAAAAAEAAAAAAAAAAAAAAAlNaWdyYXRpbmcAAAAAAAAEAAAAFldvcmtlckVycm9yOiAxMjAwLTEyOTkAAAAAAAAAAAALV29ya2VyRXJyb3IAAAAAEwAAAAAAAAASQWRtaW5BbHJlYWR5RXhpc3RzAAAAAASwAAAAAAAAAA1BZG1pbk5vdEZvdW5kAAAAAAAEsQAAAAAAAAASQWxyZWFkeU9uQWxsb3dsaXN0AAAAAASyAAAAAAAAABFBbHJlYWR5T25EZW55bGlzdAAAAAAABLMAAAAAAAAAG0F0dGVtcHRpbmdUb1JlbW92ZU9ubHlBZG1pbgAAAAS0AAAAAAAAABREZXBvc2l0QWRkcmVzc05vdFNldAAABLUAAAAAAAAAGk1lc3NhZ2VMaWJBbHJlYWR5U3VwcG9ydGVkAAAAAAS2AAAAAAAAABZNZXNzYWdlTGliTm90U3VwcG9ydGVkAAAAAAS3AAAAAAAAABBOb0FkbWluc1Byb3ZpZGVkAAAEuAAAAAAAAAAKTm90QWxsb3dlZAAAAAAEuQAAAAAAAAAOTm90T25BbGxvd2xpc3QAAAAABLoAAAAAAAAADU5vdE9uRGVueWxpc3QAAAAAAAS7AAAAAAAAABRQYXVzZVN0YXR1c1VuY2hhbmdlZAAABLwAAAAAAAAAD1ByaWNlRmVlZE5vdFNldAAAAAS9AAAAAAAAAAxSZUluaXRpYWxpemUAAAS+AAAAAAAAAAxVbmF1dGhvcml6ZWQAAAS/AAAAAAAAABVVbnN1cHBvcnRlZE1lc3NhZ2VMaWIAAAAAAATAAAAAAAAAABJXb3JrZXJGZWVMaWJOb3RTZXQAAAAABMEAAAAAAAAADldvcmtlcklzUGF1c2VkAAAAAATCAAAABQAAAAAAAAAAAAAACFNldEFkbWluAAAAAQAAAAlzZXRfYWRtaW4AAAAAAAACAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABZTZXRTdXBwb3J0ZWRNZXNzYWdlTGliAAAAAAABAAAAGXNldF9zdXBwb3J0ZWRfbWVzc2FnZV9saWIAAAAAAAACAAAAAAAAAAttZXNzYWdlX2xpYgAAAAATAAAAAAAAAAAAAAAJc3VwcG9ydGVkAAAAAAAAAQAAAAAAAAACAAAABQAAAAAAAAAAAAAADFNldEFsbG93bGlzdAAAAAEAAAANc2V0X2FsbG93bGlzdAAAAAAAAAIAAAAAAAAABG9hcHAAAAATAAAAAAAAAAAAAAAHYWxsb3dlZAAAAAABAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAALU2V0RGVueWxpc3QAAAAAAQAAAAxzZXRfZGVueWxpc3QAAAACAAAAAAAAAARvYXBwAAAAEwAAAAAAAAAAAAAABmRlbmllZAAAAAAAAQAAAAAAAAACAAAABQAAAAAAAAAAAAAABlBhdXNlZAAAAAAAAQAAAAZwYXVzZWQAAAAAAAEAAAAAAAAABnBhdXNlcgAAAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAACFVucGF1c2VkAAAAAQAAAAh1bnBhdXNlZAAAAAEAAAAAAAAACHVucGF1c2VyAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAAF1NldERlZmF1bHRNdWx0aXBsaWVyQnBzAAAAAAEAAAAac2V0X2RlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAEAAAAAAAAADm11bHRpcGxpZXJfYnBzAAAAAAAEAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAARU2V0RGVwb3NpdEFkZHJlc3MAAAAAAAABAAAAE3NldF9kZXBvc2l0X2FkZHJlc3MAAAAAAQAAAAAAAAAPZGVwb3NpdF9hZGRyZXNzAAAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAAxTZXRQcmljZUZlZWQAAAABAAAADnNldF9wcmljZV9mZWVkAAAAAAABAAAAAAAAAApwcmljZV9mZWVkAAAAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAXU2V0U3VwcG9ydGVkT3B0aW9uVHlwZXMAAAAAAQAAABpzZXRfc3VwcG9ydGVkX29wdGlvbl90eXBlcwAAAAAAAgAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAAAAAAAMb3B0aW9uX3R5cGVzAAAADgAAAAAAAAACAAAABQAAAAAAAAAAAAAAD1NldFdvcmtlckZlZUxpYgAAAAABAAAAEnNldF93b3JrZXJfZmVlX2xpYgAAAAAAAQAAAAAAAAAHZmVlX2xpYgAAAAATAAAAAAAAAAIAAAABAAAA4VBhcmFtZXRlcnMgZm9yIERWTiBmZWUgY2FsY3VsYXRpb24uCgpDb250YWlucyBhbGwgaW5wdXRzIG5lZWRlZCBieSB0aGUgZmVlIGxpYnJhcnkgdG8gY2FsY3VsYXRlIHZlcmlmaWNhdGlvbiBmZWVzCmZvciBjcm9zcy1jaGFpbiBtZXNzYWdlcy4gSW5jbHVkZXMgbWVzc2FnZSBwYXJhbWV0ZXJzLCBjb21tb24gY29uZmlndXJhdGlvbiwKYW5kIGRlc3RpbmF0aW9uLXNwZWNpZmljIHNldHRpbmdzLgAAAAAAAAAAAAAMRHZuRmVlUGFyYW1zAAAACgAAACdOdW1iZXIgb2YgYmxvY2sgY29uZmlybWF0aW9ucyByZXF1aXJlZC4AAAAADWNvbmZpcm1hdGlvbnMAAAAAAAAGAAAATERlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICh1c2VkIGlmIG5vIGRzdC1zcGVjaWZpYyBtdWx0aXBsaWVyKS4AAAAWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAABAAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAjTWluaW11bSBmZWUgbWFyZ2luIGluIFVTRCAoc2NhbGVkKS4AAAAAEGZsb29yX21hcmdpbl91c2QAAAAKAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkRlc3RpbmF0aW9uLVNwZWNpZmljIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KR2FzIGVzdGltYXRlIGZvciB2ZXJpZmljYXRpb24gb24gZGVzdGluYXRpb24gY2hhaW4uAAAAA2dhcwAAAAAKAAAARkRlc3RpbmF0aW9uLXNwZWNpZmljIGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAoMCA9IHVzZSBkZWZhdWx0KS4AAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAAAtEVk4gb3B0aW9ucwAAAAAHb3B0aW9ucwAAAAAOAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNvbW1vbiBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcyBmb3IgZ2FzIHByaWNlIGFuZCBleGNoYW5nZSByYXRlIGRhdGEuAAAACnByaWNlX2ZlZWQAAAAAABMAAAAnTnVtYmVyIG9mIHJlcXVpcmVkIHNpZ25hdHVyZXMgKHF1b3J1bSkuAAAAAAZxdW9ydW0AAAAAAAQAAADlPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KTWVzc2FnZSBQYXJhbWV0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBPQXBwIHNlbmRlciBhZGRyZXNzLgAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAA41BhcmFtZXRlcnMgZm9yIGV4ZWN1dG9yIGZlZSBjYWxjdWxhdGlvbi4KCkNvbnRhaW5zIGFsbCBpbnB1dHMgbmVlZGVkIGJ5IHRoZSBmZWUgbGlicmFyeSB0byBjYWxjdWxhdGUgZXhlY3V0aW9uIGZlZXMKZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2VzLiBJbmNsdWRlcyBtZXNzYWdlIHBhcmFtZXRlcnMsIGNvbW1vbiBjb25maWd1cmF0aW9uLAphbmQgZGVzdGluYXRpb24tc3BlY2lmaWMgc2V0dGluZ3MuAAAAAAAAAAAJRmVlUGFyYW1zAAAAAAAACwAAACZTaXplIG9mIHRoZSBtZXNzYWdlIGNhbGxkYXRhIGluIGJ5dGVzLgAAAAAADWNhbGxkYXRhX3NpemUAAAAAAAAEAAAATERlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICh1c2VkIGlmIG5vIGRzdC1zcGVjaWZpYyBtdWx0aXBsaWVyKS4AAAAWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAABAAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAjTWluaW11bSBmZWUgbWFyZ2luIGluIFVTRCAoc2NhbGVkKS4AAAAAEGZsb29yX21hcmdpbl91c2QAAAAKAAAANkJhc2UgZ2FzIGZvciBlYWNoIGx6Q29tcG9zZSBjYWxsIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAAAAE2x6X2NvbXBvc2VfYmFzZV9nYXMAAAAABgAAARM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpEZXN0aW5hdGlvbi1TcGVjaWZpYyBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkJhc2UgZ2FzIGZvciBselJlY2VpdmUgZXhlY3V0aW9uIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAAATbHpfcmVjZWl2ZV9iYXNlX2dhcwAAAAAGAAAARkRlc3RpbmF0aW9uLXNwZWNpZmljIGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAoMCA9IHVzZSBkZWZhdWx0KS4AAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAACxNYXhpbXVtIG5hdGl2ZSB0b2tlbiB2YWx1ZSB0aGF0IGNhbiBiZSBzZW50LgAAAApuYXRpdmVfY2FwAAAAAAAKAAAARkVuY29kZWQgZXhlY3V0b3Igb3B0aW9ucyAobHpSZWNlaXZlIGdhcywgbHpDb21wb3NlLCBuYXRpdmVEcm9wLCBldGMuKS4AAAAAAAdvcHRpb25zAAAAAA4AAAEQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ29tbW9uIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzIGZvciBnYXMgcHJpY2UgYW5kIGV4Y2hhbmdlIHJhdGUgZGF0YS4AAAAKcHJpY2VfZmVlZAAAAAAAEwAAAOU9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpNZXNzYWdlIFBhcmFtZXRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhlIE9BcHAgc2VuZGVyIGFkZHJlc3MuAAAAAAAABnNlbmRlcgAAAAAAEwAAAAEAAACER2FzIHByaWNlIGluZm9ybWF0aW9uIGZvciBhIGRlc3RpbmF0aW9uIGVuZHBvaW50LgoKQ29udGFpbnMgdGhlIGV4Y2hhbmdlIHJhdGUgYW5kIGdhcyBjb3N0cyBuZWVkZWQgZm9yIGNyb3NzLWNoYWluIGZlZSBjYWxjdWxhdGlvbnMuAAAAAAAAAAVQcmljZQAAAAAAAAMAAAA3R2FzIGNvc3QgcGVyIGJ5dGUgb2YgY2FsbGRhdGEgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLgAAAAAMZ2FzX3Blcl9ieXRlAAAABAAAAEJHYXMgcHJpY2UgaW4gdGhlIHNtYWxsZXN0IHVuaXQgKHdlaSBmb3IgRVZNLCBzdHJvb3BzIGZvciBTdGVsbGFyKS4AAAAAABFnYXNfcHJpY2VfaW5fdW5pdAAAAAAAAAYAAACpUHJpY2UgcmF0aW8gPSAocmVtb3RlIG5hdGl2ZSB0b2tlbiBwcmljZSAvIGxvY2FsIG5hdGl2ZSB0b2tlbiBwcmljZSkgKiBQUklDRV9SQVRJT19ERU5PTUlOQVRPUi4KVXNlZCB0byBjb252ZXJ0IGRlc3RpbmF0aW9uIGNoYWluIGdhcyBjb3N0cyB0byBzb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuLgAAAAAAAAtwcmljZV9yYXRpbwAAAAAKAAAAAQAAAIBGZWUgZXN0aW1hdGlvbiByZXN1bHQgd2l0aCBkZXRhaWxlZCBicmVha2Rvd24uCgpDb250YWlucyB0aGUgY2FsY3VsYXRlZCBmZWUgYW5kIGFsbCBpbnRlcm1lZGlhdGUgdmFsdWVzIHVzZWQgaW4gdGhlIGNhbGN1bGF0aW9uLgAAAAAAAAALRmVlRXN0aW1hdGUAAAAABAAAADBTb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuIHByaWNlIGluIFVTRCAoc2NhbGVkKS4AAAAQbmF0aXZlX3ByaWNlX3VzZAAAAAoAAAAlUHJpY2UgcmF0aW8gdXNlZCBmb3IgdGhlIGNhbGN1bGF0aW9uLgAAAAAAAAtwcmljZV9yYXRpbwAAAAAKAAAAMkRlbm9taW5hdG9yIGZvciB0aGUgcHJpY2UgcmF0aW8gKHR5cGljYWxseSAxMF4yMCkuAAAAAAAXcHJpY2VfcmF0aW9fZGVub21pbmF0b3IAAAAACgAAADFUb3RhbCBnYXMgZmVlIGluIHNvdXJjZSBjaGFpbiBuYXRpdmUgdG9rZW4gdW5pdHMuAAAAAAAADXRvdGFsX2dhc19mZWUAAAAAAAALAAAAAgAAAAAAAAAAAAAADVdvcmtlclN0b3JhZ2UAAAAAAAALAAAAAAAAAAAAAAAGUGF1c2VkAAAAAAAAAAAAAAAAAA5EZXBvc2l0QWRkcmVzcwAAAAAAAAAAAAAAAAAJUHJpY2VGZWVkAAAAAAAAAAAAAAAAAAAMV29ya2VyRmVlTGliAAAAAAAAAAAAAAAURGVmYXVsdE11bHRpcGxpZXJCcHMAAAABAAAAAAAAABRTdXBwb3J0ZWRPcHRpb25UeXBlcwAAAAEAAAAEAAAAAAAAAAAAAAALTWVzc2FnZUxpYnMAAAAAAQAAAAAAAAAJQWxsb3dsaXN0AAAAAAAAAQAAABMAAAABAAAAAAAAAAhEZW55bGlzdAAAAAEAAAATAAAAAAAAAAAAAAANQWxsb3dsaXN0U2l6ZQAAAAAAAAAAAAAAAAAABkFkbWlucwAAAIsBDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAZiaW52ZXIAAAAAAAUwLjAuMQAAAAAAAAAAAAAFcnN2ZXIAAAAAAAAGMS45MC4wAAAAAAAAAAAACHJzc2RrdmVyAAAALzIzLjQuMCM2NzNkNmM0ZjIzNjhkMjgyZDI1ZGEyOWJkYTU1YzIxYjhiZTY5Y2E2AAAeEWNvbnRyYWN0ZW52bWV0YXYwAAAAAAAAABcAAAAA";
|
|
11
|
+
export declare const WASM_BASE64 = "AGFzbQEAAAABzgEhYAJ+fgF+YAF+AX5gA35+fgF+YAABfmAEfn5+fgF+YAN/f38AYAF/AX5gA35+fgBgA39+fgBgAABgAAF/YAF/AGACf38AYAF/AX9gAn5+AX9gAn5+AGADfn5/AGACf34AYAF+AGACfn8AYAR/f39/AX5gAX4Bf2ACf38BfmAFfn9/f38AYAN+f38BfmACf38Bf2ADf35+AX5gA39/fgBgB35+fn5+fn4BfmAFf35/fn4AYAR+fn9/AX5gCX5+fn5+fn5+fgF+YAN/f38BfwKhAjABbAExAAABYQEwAAEBdgEzAAEBdgExAAABYgE4AAEBYgE2AAABYgFmAAIBYwEyAAIBYwExAAEBdgFkAAABdgEyAAABdgE2AAABeAExAAABdgFfAAMBeAE0AAMBaQEwAAEBdgE4AAEBeAE3AAMBeAEwAAABYgFlAAABYgEwAAEBYwEwAAIBbAFfAAIBbAEyAAABaQFfAAEBZAFfAAIBaQE4AAEBaQE3AAEBYgE0AAMBYgFfAAEBbAE2AAEBeAEzAAMBeAE4AAMBaQEzAAABaQE1AAEBaQE0AAEBYgEzAAABbQFhAAQBdgFnAAABYgFtAAIBaQE2AAABYgFqAAABYgEyAAQBbQE5AAIBbAEwAAABbAE4AAABeAE1AAEBbAE3AAQDqAGmAQUGBwgJCgsMDQoGDgMDDwoQAxEODA4SCQoFEQgTAxERCwUBFBIVEwMWCwwMCgwVDQsLFQoVCgYVEwwRFxEMCAIREQwYGQoRERENFhoBGwAAAAsLAAALABICABIAEhIDAQMBAwEDAQEDAwABAwMcHQgcDBYAAQMCHh8MDAYMEgsCAQsBAwwDAwAREhMBAwMBAwACAAARBgMMAwMJBRERBQYMBREMICAEBQFwAQEBBQMBABEGIQR/AUGAgMAAC38AQeCDwAALfwBB8IrAAAt/AEHwisAACwejBzcGbWVtb3J5AgAMX19jaGVja19hdXRoAG8Kc2V0X3BhdXNlZAB8CXNldF9hZG1pbgB+GXNldF9zdXBwb3J0ZWRfbWVzc2FnZV9saWIAfw1zZXRfYWxsb3dsaXN0AIABDHNldF9kZW55bGlzdACDARpzZXRfZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwCEARNzZXRfZGVwb3NpdF9hZGRyZXNzAIYBGnNldF9zdXBwb3J0ZWRfb3B0aW9uX3R5cGVzAIgBEnNldF93b3JrZXJfZmVlX2xpYgCJAQ5zZXRfcHJpY2VfZmVlZACLAQZwYXVzZWQAjgEIaXNfYWRtaW4AjwEGYWRtaW5zAJABGGlzX3N1cHBvcnRlZF9tZXNzYWdlX2xpYgCRAQxtZXNzYWdlX2xpYnMAkgEPaXNfb25fYWxsb3dsaXN0AJMBDmFsbG93bGlzdF9zaXplAJQBDmlzX29uX2RlbnlsaXN0AJUBB2hhc19hY2wAlgEWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwCXAQ9kZXBvc2l0X2FkZHJlc3MAmAEaZ2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXMAmgEOd29ya2VyX2ZlZV9saWIAmwEKcHJpY2VfZmVlZACcAQdnZXRfZmVlAJ0BCmFzc2lnbl9qb2IAoAEOc2V0X2RzdF9jb25maWcAowEKZHN0X2NvbmZpZwCkAQN2aWQApQEOaGFzaF9jYWxsX2RhdGEApgENX19jb25zdHJ1Y3RvcgCoARJzZXRfYWRtaW5fYnlfYWRtaW4ArwEHdXBncmFkZQCwAQdtaWdyYXRlALIBBmZyZWV6ZQCzAQlpc19mcm96ZW4AtQEKYXV0aG9yaXplcgC2AQpzZXRfc2lnbmVyALcBDXNldF90aHJlc2hvbGQAuwELZ2V0X3NpZ25lcnMAvAENdG90YWxfc2lnbmVycwC9AQlpc19zaWduZXIAvgEJdGhyZXNob2xkAL8BEXZlcmlmeV9zaWduYXR1cmVzAMABE3ZlcmlmeV9uX3NpZ25hdHVyZXMAwQETZXh0ZW5kX2luc3RhbmNlX3R0bADCAQ9zZXRfdHRsX2NvbmZpZ3MAwwELdHRsX2NvbmZpZ3MAxgESZnJlZXplX3R0bF9jb25maWdzAMgBFWlzX3R0bF9jb25maWdzX2Zyb3plbgDJAQFfAwEKX19kYXRhX2VuZAMCC19faGVhcF9iYXNlAwMKtbYBpgEiACAAELGAgIAAIAGtQiCGQgSEIAKtQiCGQgSEELKAgIAAC9EBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQCAAKAIADgMAAQIACyABQY2CwIAAQQMQyYCAgAAgASgCAA0DIAEgASkDCBDKgICAAAwCCyABQZCCwIAAQQkQyYCAgAAgASgCAA0CIAEgASkDCCAANQIEQiCGQgSEEMuAgIAADAELIAFBmYLAgABBCBDJgICAACABKAIADQEgASABKQMIIAApAwgQy4CAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgsRACAAQgEgASACEK+AgIAAGgs3AQF+QgAhAwJAAkAgAUICUQ0AIAGnQQFxDQEgACACNwMIQgEhAwsgACADNwMADwsQtICAgAAACwkAEMqBgIAAAAtYAQJ/I4CAgIAAQRBrIgAkgICAgAAgAEEEahC2gICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQt4CAgAALQQAQuICAgAAhASAAQRBqJICAgIAAIAFB/QFxCwwAIABBARDQgYCAAAsbACAArUIghkIEhCABrUIghkIEhBCtgICAABoLRwIBfwF+QQIhAQJAIAAQz4GAgAAiAkICELuAgIAARQ0AQQEhAQJAAkAgAkICEICAgIAAp0H/AXEOAgECAAsAC0EAIQELIAELiwECAn8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQtoCAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELeAgIAAC0EAIQECQEEAELqAgIAAIgJCAhC7gICAAEUNAEEBIQECQAJAIAJCAhCAgICAAKdB/wFxDgIBAgALAAtBACEBCyAAQRBqJICAgIAAIAELwgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkACQAJAIABB/wFxDgMAAQIACyABQaaGwIAAQQYQyYCAgAAgASgCAA0DIAEgASkDCBDKgICAAAwCCyABQayGwIAAQQgQyYCAgAAgASgCAA0CIAEgASkDCBDKgICAAAwBCyABQbSGwIAAQQoQyYCAgAAgASgCAA0BIAEgASkDCBDKgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACCw8AIAAgARCsgICAAEIBUQsVAQF+EL2AgIAAIgAQgYCAgAAaIAALVAIBfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahC2gICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQt4CAgAALEJGAgIAAIQEgAEEQaiSAgICAACABC1gBAX8jgICAgABBEGsiAiSAgICAACACQQRqELaAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBC3gICAAAsgACABEL+AgIAAEMCAgIAAIAJBEGokgICAgAALRgIBfwF+QQAhAAJAAkBBARCrgYCAACIBQgIQu4CAgABFDQAgAUICEICAgIAAIgFC/wGDQgRSDQEgAUIgiKchAAsgAA8LAAuSBQQBfwV+An8BfiOAgICAAEEwayIDJICAgIAAIANBIGoQtoCAgAACQCADKAIgQQFHDQAgAygCJCADKAIoELeAgIAACwJAAkACQAJAAkACQCACRQ0AIAIgARCCgICAAEIgiKdLDQEQwYCAgAAhBCABEIKAgIAAQiCIIQVCACEGQQAhAgJAA0AgBiAFUQ0FAkAgASAGQiCGQgSEEIOAgIAAIgdC/wGDQsgAUg0AIAcQhICAgAAhCCAGQv////8PUQ0CIAhCgICAgHCDQoCAgICQCFINAiAHEISAgIAAQv////+PCFgNBSAHQoSAgICACBCFgICAACEIIAdCBEKEgICAgAgQhoCAgAAiBxCEgICAAEKAgICAcINCgICAgIAIUg0CIANBIGogACAHIAhCIIinIglBZWoiCiAJIApB/wFxQQRJG61C/wGDQiCGQgSEEIeAgIAAQoSAgIAQQoSAgICQCBCGgICAABCIgICAAEKEgICAwAFChICAgIAEEIaAgIAAEMKAgIAAIAMoAiBBAUYNAiADKQMoIQcCQCACQQFxRQ0AIAcgCxDDgICAAEEYdEEYdUEATA0ICyAEEIKAgIAAIQggA0EANgIIIAMgBDcDACADIAhCIIg+AgwDQCADQSBqIAMQxICAgAAgA0EQaiADKQMgIAMpAygQs4CAgAAgAygCEEEBRw0JIAMpAxggBxDFgICAAEUNAAsgBkIBfCEGQQEhAiAHIQsMAQsLIAZC/////w9SGgsQtICAgAAAC0KDgICAsIUBEMaAgIAAAAtCg4CAgOCEARDGgICAAAALEMeAgIAAAAsgA0EwaiSAgICAAA8LQoOAgICghQEQxoCAgAAAC0KDgICAgIUBEMaAgIAAAAuNAQQBfwF+AX8BfiOAgICAAEEQayIAJICAgIAAAkACQEEAEKuBgIAAIgFCARC7gICAACICRQ0AIAFCARCAgICAACIDQv8Bg0LLAFINASAAQQRqENCAgIAAIAAoAgRFDQAgACgCCCAAKAIMEKyBgIAACxCNgICAACEBIABBEGokgICAgAAgAyABIAIbDwsACzYBAX5CASECAkAgARCEgICAAEKAgICAcINCgICAgMACUg0AIAAgATcDCEIAIQILIAAgAjcDAAsXACAAIAEQkoCAgAAiAUIAVSABQgBTawuRAQICfwF+I4CAgIAAQRBrIgIkgICAgAACQAJAIAEoAggiAyABKAIMSQ0AIABCAjcDAAwBCyACIAEpAwAgA61CIIZCBIQQg4CAgAAQuIGAgAACQCADQQFqIgNFDQAgAikDACEEIAAgAikDCDcDCCAAIAQ3AwAgASADNgIIDAELELSAgIAAAAsgAkEQaiSAgICAAAsRACAAIAEQw4CAgABB/wFxRQsLACAAEK6AgIAAGgsJABC0gICAAAALUgECfyOAgICAAEEQayIAJICAgIAAIABBBGoQtoCAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELeAgIAACxC/gICAACEBIABBEGokgICAgAAgAQtRAgF/AX4jgICAgABBEGsiAySAgICAACADIAEgAhDLgYCAAEIBIQQCQCADKAIADQAgACADKQMINwMIQgAhBAsgACAENwMAIANBEGokgICAgAALRAEBfyOAgICAAEEQayICJICAgIAAIAIgATcDCCACQQhqQQEQooGAgAAhASAAQgA3AwAgACABNwMIIAJBEGokgICAgAALSAEBfyOAgICAAEEQayIDJICAgIAAIAMgAjcDCCADIAE3AwAgA0ECEKKBgIAAIQIgAEIANwMAIAAgAjcDCCADQRBqJICAgIAAC80CAwF/An4BfyOAgICAAEEwayICJICAgIAAEM2AgIAAIgMgABCJgICAACEEAkACQAJAAkACQCABDQAgAkEIaiAEEM6AgIAAIAIoAggiBUECRg0BIAVBAXFFDQIgAigCDCIFIAMQgoCAgABCIIinTw0EIAMgBa1CIIZCBIQQioCAgAAhAwwECyAEQgJRDQJCg4CAgICWARDGgICAAAALELSAgIAAAAtCg4CAgJCWARDGgICAAAALIAMgABCLgICAACEDCyACQQE2AiAgAkEgaiADEM+AgIAAIAJBFGoQ0ICAgAACQCACKAIUQQFHDQAgAkEgaiACKAIYIAIoAhwQ0YCAgAALQo7mrrnqjOTVOBDSgICAACEDIAIgADcDKCACIAGtNwMgIANB1IbAgABBAiACQSBqQQIQ04CAgAAQjICAgAAaIAJBMGokgICAgAALqQECAX8DfiOAgICAAEEwayIAJICAgIAAIABBEGoQtoCAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYELeAgIAACyAAQQE2AgAgAEEQaiAAENuAgIAAAkAgACkDECIBUA0AIABBJGoQ0ICAgAAgACgCJEEBRw0AIAAgACgCKCAAKAIsENGAgIAACxCNgICAACECIAApAxghAyAAQTBqJICAgIAAIAMgAiABpxsLPQECfwJAAkAgAUICUg0AQQAhAgwBC0EBQQIgAUL/AYNCBFEbIQIgAUIgiKchAwsgACADNgIEIAAgAjYCAAsVACAAEOaAgIAAIAFCARCWgICAABoLDAAgAEECENCBgIAACyIAIAAQ5oCAgAAgAa1CIIZCBIQgAq1CIIZCBIQQsoCAgAALYwMBfwF+AX8jgICAgABBEGsiASSAgICAACABIAA3AwBCAiECQQEhAwJAA0AgA0UNASADQX9qIQMgACECDAALCyABIAI3AwggAUEIakEBEKKBgIAAIQAgAUEQaiSAgICAACAACy4AAkAgASADRg0AAAsgAK1CIIZCBIQgAq1CIIZCBIQgAa1CIIZCBIQQq4CAgAALJwAgABCBgICAABoCQCAAENWAgIAADQBCg4CAgMCXARDGgICAAAALC10BAX8jgICAgABBEGsiASSAgICAACABQQRqELaAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBC3gICAAAsQzYCAgAAgABCJgICAACEAIAFBEGokgICAgAAgAEICUgvRAgMBfwJ+AX8jgICAgABBMGsiAiSAgICAABDXgICAACIDIAAQiYCAgAAhBAJAAkACQAJAAkAgAQ0AIAJBCGogBBDOgICAACACKAIIIgVBAkYNASAFQQFxRQ0CIAIoAgwiBSADEIKAgIAAQiCIp08NBCADIAWtQiCGQgSEEIqAgIAAIQMMBAsgBEICUQ0CQoOAgIDQlgEQxoCAgAAACxC0gICAAAALQoOAgIDglgEQxoCAgAAACyADIAAQi4CAgAAhAwsgAkECNgIgIAJBIGogAxDPgICAACACQRRqENCAgIAAAkAgAigCFEEBRw0AIAJBIGogAigCGCACKAIcENGAgIAAC0HkhsCAAEEZENiAgIAAENKAgIAAIQMgAiABrTcDKCACIAA3AyAgA0GUh8CAAEECIAJBIGpBAhDTgICAABCMgICAABogAkEwaiSAgICAAAupAQIBfwN+I4CAgIAAQTBrIgAkgICAgAAgAEEQahC2gICAAAJAIAAoAhBBAUcNACAAKAIUIAAoAhgQt4CAgAALIABBAjYCACAAQRBqIAAQ24CAgAACQCAAKQMQIgFQDQAgAEEkahDQgICAACAAKAIkQQFHDQAgACAAKAIoIAAoAiwQ0YCAgAALEI2AgIAAIQIgACkDGCEDIABBMGokgICAgAAgAyACIAGnGwtFAgF/AX4jgICAgABBEGsiAiSAgICAACACIAAgARDLgYCAAAJAIAIoAgBBAUcNAAALIAIpAwghAyACQRBqJICAgIAAIAMLVgEBfyOAgICAAEEQayIBJICAgIAAIAEQtoCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELeAgIAACyABQQo2AgAgACABENqAgIAAIAFBEGokgICAgAALTQECfkIAIQICQAJAIAEQ5oCAgAAiA0ICELuAgIAARQ0AIANCAhCAgICAACICQv8Bg0LNAFINASAAIAI3AwhCASECCyAAIAI3AwAPCwALTQECfkIAIQICQAJAIAEQ5oCAgAAiA0IBELuAgIAARQ0AIANCARCAgICAACICQv8Bg0LLAFINASAAIAI3AwhCASECCyAAIAI3AwAPCwALdwEDfyOAgICAAEEgayIAJICAgIAAIABBEGoQtoCAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYELeAgIAACyAAQQQ2AhAgAEEIaiAAQRBqEN2AgIAAIAAoAgghASAAKAIMIQIgAEEgaiSAgICAACACQQAgAUEBcRsLWgIBfgF/AkACQAJAIAEQ5oCAgAAiAkICELuAgIAADQBBACEBDAELIAJCAhCAgICAACICQv8Bg0IEUg0BIAJCIIinIQNBASEBCyAAIAM2AgQgACABNgIADwsAC4wBAQJ/I4CAgIAAQSBrIgEkgICAgAAgARC2gICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQt4CAgAALIAFBBTYCACABIAA3AwgCQCABEN+AgIAAIgJFDQAgAUEUahDQgICAACABKAIUQQFHDQAgASABKAIYIAEoAhwQ0YCAgAALIAFBIGokgICAgAAgAgsSACAAEOaAgIAAQgEQu4CAgAALVgEBfyOAgICAAEEQayIBJICAgIAAIAEQtoCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELeAgIAACyABQQk2AgAgACABENqAgIAAIAFBEGokgICAgAALVgEBfyOAgICAAEEQayIBJICAgIAAIAEQtoCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELeAgIAACyABQQc2AgAgACABENqAgIAAIAFBEGokgICAgAALjAEBAn8jgICAgABBIGsiASSAgICAACABELaAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC3gICAAAsgAUEDNgIAIAEgADcDCAJAIAEQ34CAgAAiAkUNACABQRRqENCAgIAAIAEoAhRBAUcNACABIAEoAhggASgCHBDRgICAAAsgAUEgaiSAgICAACACC3cBA38jgICAgABBIGsiACSAgICAACAAQRBqELaAgIAAAkAgACgCEEEBRw0AIAAoAhQgACgCGBC3gICAAAsgAEEGNgIQIABBCGogAEEQahDdgICAACAAKAIIIQEgACgCDCECIABBIGokgICAgAAgAkEAIAFBAXEbC10BAX8jgICAgABBEGsiASSAgICAACABQQRqELaAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBC3gICAAAsQ14CAgAAgABCJgICAACEAIAFBEGokgICAgAAgAEICUguPAQICfwF+I4CAgIAAQRBrIgAkgICAgAAgABC2gICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQt4CAgAALQQAhASAAQQA2AgACQCAAEOaAgIAAIgJCAhC7gICAAEUNAEEBIQECQAJAIAJCAhCAgICAAKdB/wFxDgIBAgALAAtBACEBCyAAQRBqJICAgIAAIAELpgQCAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIADgsAAQIDBAUGBwgJCgALIAFB8InAgABBBhDJgICAACABKAIADQsgASABKQMIEMqAgIAADAoLIAFB9onAgABBBhDJgICAACABKAIADQogASABKQMIEMqAgIAADAkLIAFB/InAgABBCxDJgICAACABKAIADQkgASABKQMIEMqAgIAADAgLIAFBh4rAgABBCRDJgICAACABKAIADQggASABKQMIIAApAwgQy4CAgAAMBwsgAUGQisCAAEENEMmAgIAAIAEoAgANByABIAEpAwgQyoCAgAAMBgsgAUGdisCAAEEIEMmAgIAAIAEoAgANBiABIAEpAwggACkDCBDLgICAAAwFCyABQaWKwIAAQRQQyYCAgAAgASgCAA0FIAEgASkDCBDKgICAAAwECyABQbmKwIAAQQ4QyYCAgAAgASgCAA0EIAEgASkDCBDKgICAAAwDCyABQceKwIAAQRQQyYCAgAAgASgCAA0DIAEgASkDCCAANQIEQiCGQgSEEMuAgIAADAILIAFB24rAgABBDBDJgICAACABKAIADQIgASABKQMIEMqAgIAADAELIAFB54rAgABBCRDJgICAACABKAIADQEgASABKQMIEMqAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILfAECfyOAgICAAEEQayIBJICAgIAAIAFBBGoQtoCAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELeAgIAACwJAAkAgABDegICAAEUNAEEAIQIMAQsCQBDcgICAAA0AQQEhAgwBCyAAEOKAgIAAIQILIAFBEGokgICAgAAgAgspAAJAIACnQQFxRQ0ADwsgAUHQdmqtQiCGQoOAgICAlgGEEMaAgIAAAAtpAgF/AX4CQCABKAIIIgIgASgCDEkNACAAQgI3AwAPCyABKQMAIAKtQiCGQgSEEIOAgIAAIQMCQCACQQFqIgJFDQAgACADNwMIIAEgAjYCCCAAIANC/wGDQs0AUq03AwAPCxC0gICAAAALlQICAn8EfiOAgICAAEHAAGsiAiSAgICAAEEAIQMCQANAIANBGEYNASACQQhqIANqQgI3AwAgA0EIaiEDDAALC0IAIQRCASEFAkAgAUL/AYNCzABSDQAgAUG4gcCAAEEDIAJBCGpBAxDrgICAACACQSBqIAIpAwgQ7ICAgAAgAigCIEEBRg0AIAIpAzghASACKQMwIQYgAkEgaiACKQMQEOyAgIAAIAIoAiBBAUYNACACKQMYIgdC/wGDQgRSDQAgAikDOCEEIAIpAzAhBSAAIAY3AyAgACAFNwMQIAAgATcDKCAAIAQ3AxggACAHQiCIPgIwQgAhBUIAIQQLIAAgBTcDACAAIAQ3AwggAkHAAGokgICAgAALMQACQCACIARGDQAACyAAIAGtQiCGQgSEIAOtQiCGQgSEIAKtQiCGQgSEEKWAgIAAGgt7AgF/AX4CQAJAAkAgAadB/wFxIgJBxABGDQAgAkEKRw0BQgAhAyAAQgA3AxggACABQgiINwMQDAILIAEQooCAgAAhAyABEKOAgIAAIQEgACADNwMYIAAgATcDEEIAIQMMAQsgAEKDkICAgAE3AwhCASEDCyAAIAM3AwALrgECAX8CfiOAgICAAEEgayICJICAgIAAIAJBCGogASkDECABKQMYEO6AgIAAQgEhAwJAIAIoAggNACACKQMQIQQgAkEIaiABKQMAIAEpAwgQ7oCAgAAgAigCCA0AIAIgAikDEDcDECACIAQ3AwggAiABNQIgQiCGQgSENwMYIABBuIHAgABBAyACQQhqQQMQ04CAgAA3AwhCACEDCyAAIAM3AwAgAkEgaiSAgICAAAtGAAJAAkAgAUL//////////wBWIAJCAFIgAlAbDQAgAUIIhkIKhCECDAELIAIgARChgICAACECCyAAQgA3AwAgACACNwMIC5ESCAF/AX4BfwN+An8BfgF/A34jgICAgABBwABrIgMkgICAgAAgA0EQaiAAEPCAgIAAAkAgAygCEEEBRg0AIAMpAxghBEEAIQUCQANAIAVBIEYNASADQRBqIAVqQgI3AwAgBUEIaiEFDAALCyABQv8Bg0LMAFINACABQZiBwIAAQQQgA0EQakEEEOuAgIAAIANBMGogAykDEBDxgICAACADKAIwDQAgAykDGCIBQv8Bg0LLAFINACADKQM4IQYgARCCgICAACEAIANBADYCCCADIAE3AwAgAyAAQiCIPgIMIANBMGogAxDygICAACADKQMwIgFCAlENACABp0EBcQ0AAkAgAykDOCIBp0H/AXEiBUHKAEYNACAFQQ5HDQELAkACQAJAIAFB8IDAgABBAhDzgICAAEIgiKcOAgABAwsgAygCCCADKAIMEPSAgIAADQJBACEFDAELIAMoAgggAygCDBD0gICAAEECSw0BIANBMGogAxDygICAACADKQMwIgFCAlENASABp0EBcQ0BIANBMGogAykDOBDwgICAACADKAIwDQEgAykDOCEHIANBMGogAxDygICAACADKQMwIgFCAlENASABp0EBcQ0BIAMpAzgiAEL/AYNCyABSDQFBASEFIAAQhICAgABCgICAgHCDQoCAgICACFINAQsgAykDICIIQv8Bg0LLAFINACADKQMoIgFC/wGDQgRSDQAgAkL/AYNCywBSDQAgAUIgiKchCSADQRBqELaAgIAAAkAgAygCEEEBRw0AIAMoAhQgAygCGBC3gICAAAsCQAJAAkAQ9YCAgAAgCUYNAEKDgICAwAAhAQwBCwJAAkAQjoCAgAAiAadB/wFxIgpBBkYNACAKQcAARw0DIAEQj4CAgAAhAQwBCyABQgiIIQELAkAgBiABVg0AQoOAgIAQIQEMAQsCQAJAIAIQgoCAgABCgICAgHCDQoCAgIAQUg0AIAIQgoCAgABCgICAgBBUDQAgAhCQgICAACIBQv8Bg0LLAFINBCABEIKAgIAAIQsgA0EANgIIIAMgATcDACADIAtCIIg+AgwgA0EQaiADEPKAgIAAIAMpAxAiAUICUQ0EIAGnQQFxDQQCQCADKQMYIgGnQf8BcSIKQcoARg0AIApBDkcNBQsCQAJAAkACQCABQbCAwIAAQQMQ84CAgABCIIinDgMAAQIICyADKAIIIAMoAgwQ9ICAgABBAUsNByADQTBqIAMQ8oCAgAAgAykDMCIBQgJRDQcgAadBAXENByADQRBqIAMpAzgQ9oCAgAAgAygCEEEBRg0HIAMpAyAhASADKQMYEJGAgIAAEJKAgIAAQgBSDQNBhILAgABBCRDYgICAACELAkAgAUL/AYNCDlINACALQv8Bg0IOUQ0DCyABIAsQkoCAgABQDQQMAwsgAygCCCADKAIMEPSAgIAAQQFLDQYgA0EwaiADEPKAgIAAIAMpAzAiAUICUQ0GIAGnQQFxDQYgA0EQaiADKQM4EPeAgIAAIAMoAhBFDQIMBgsgAygCCCADKAIMEPSAgIAAQQFLDQUgA0EwaiADEPKAgIAAIAMpAzAiAUICUQ0FIAGnQQFxDQUgA0EQaiADKQM4EPiAgIAAIAMoAhBFDQEMBQsgAyALQgiINwMQIAMgAUIIiDcDMAJAA0AgA0EwahD5gICAACEKIANBEGoQ+YCAgAAhDCAKQYCAxABGDQEgCiAMRw0CDAALCyAMQYCAxABGDQELQoOAgIDgACEBIAVFDQFB4IPAgABBDBD6gICAACAHEJOAgIAAEJSAgIAAIgtC/wGDQs0AUg0DIAsQ1YCAgABFDQEgByAEIAAQlYCAgAAaCxCNgICAACENIAIQgoCAgABCIIghDkIAIQFCBCEAAkADQCAOIAFRDQECQAJAIAIgABCDgICAACIHQv8Bg0LLAFINAEEAIQogBxCCgICAACEEIANBADYCCCADIAc3AwAgAyAEQiCIPgIMIANBEGogAxDygICAAEEBIQUCQAJAIAMpAxAiB0ICUQ0AQQEhBSAHp0EBcQ0AAkAgAykDGCIPp0H/AXEiDEHKAEYNACAMQQ5HDQELAkACQAJAIA9BsIDAgABBAxDzgICAAEIgiKcOAwABAgQLQQEhBSADKAIIIAMoAgwQ9ICAgABBAUsNAiADQTBqIAMQ8oCAgAAgAykDMCIHQgJRDQIgB6dBAXENAiADQRBqIAMpAzgQ9oCAgAAgAygCEA0CIAMpAyghByADKQMgIQQgAykDGCELQQEhCkEAIQUMAwtBASEFIAMoAgggAygCDBD0gICAAEEBSw0BIANBMGogAxDygICAACADKQMwIgdCAlENASAHp0EBcQ0BIANBEGogAykDOBD3gICAACADKAIQDQEgAykDICEEIAMpAxghC0EAIQVBACEKDAILQQEhBSADKAIIIAMoAgwQ9ICAgABBAUsNACADQTBqIAMQ8oCAgAAgAykDMCIHQgJRDQAgB6dBAXENACADQRBqIAMpAzgQ+ICAgAAgAygCEA0AIAMpAyghByADKQMgIQQgAykDGCELQQAhBUEAIQoMAQsLIAFC/////w9RDQUgBQ0FIAoNAUKDgICA0AAhAQwECyABQv////8PUhoMBAsgAyALNwMgIAMgBDcDGCADIAc3AxAgAEKAgICAEHwhACABQgF8IQEgDUHsgcCAAEEDIANBEGpBAxDTgICAABCLgICAACENDAALCyAJIAYgDRD7gICAACEBIANBAjYCECADIAE3AxgCQCADQRBqELGAgIAAIgJCARC7gICAAEUNAEEBIQUCQAJAIAJCARCAgICAAKdB/wFxDgIAAQULQQAhBQsgA0EwahDQgICAAAJAIAMoAjBBAUcNACADQRBqIAMoAjQgAygCOBCwgICAAAsgBUUNAEKDgICAMCEBDAELIANBAjYCECADIAE3AxggA0EQahCxgICAAEIBQgEQloCAgAAaIANBMGoQ0ICAgAACQCADKAIwQQFHDQAgA0EQaiADKAI0IAMoAjgQsICAgAALIAEgCBC+gICAAEICIQELIANBwABqJICAgIAAIAEPCxC0gICAAAALAAtCAQF+QgEhAgJAIAFC/wGDQsgAUg0AIAEQhICAgABCgICAgHCDQoCAgICABFINACAAIAE3AwhCACECCyAAIAI3AwALXQIBfwF+AkACQCABp0H/AXEiAkHAAEYNAAJAIAJBBkYNAEIBIQNCg5CAgIABIQEMAgsgAUIIiCEBQgAhAwwBC0IAIQMgARCPgICAACEBCyAAIAM3AwAgACABNwMIC0oCAX4Bf0ICIQICQCABKAIIIgMgASgCDE8NACAAIAEpAwAgA61CIIZCBIQQg4CAgAA3AwggASADQQFqNgIIQgAhAgsgACACNwMACxwAIAAgAa1CIIZCBIQgAq1CIIZCBIQQp4CAgAALGQACQCABIABJDQAgASAAaw8LELSAgIAAAAuMAQIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABC2gICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQt4CAgAALIABBADYCAAJAAkAgABCxgICAACIBQgIQu4CAgABFDQAgAUICEICAgIAAIgFC/wGDQgRRDQEACxDHgICAAAALIABBEGokgICAgAAgAUIgiKcL0wECAn8DfiOAgICAAEEgayICJICAgIAAQQAhAwJAA0AgA0EYRg0BIAJBCGogA2pCAjcDACADQQhqIQMMAAsLQgEhBAJAIAFC/wGDQswAUg0AIAFBhITAgABBAyACQQhqQQMQ64CAgAAgAikDCCIBQv8Bg0LLAFINACACKQMQIgVC/wGDQs0AUg0AAkAgAikDGCIGp0H/AXEiA0HKAEYNACADQQ5HDQELIAAgATcDGCAAIAY3AxAgACAFNwMIQgAhBAsgACAENwMAIAJBIGokgICAgAALvgECAn8BfiOAgICAAEEgayICJICAgIAAQQAhAwJAA0AgA0EQRg0BIAIgA2pCAjcDACADQQhqIQMMAAsLQgEhBAJAIAFC/wGDQswAUg0AIAFBrITAgABBAiACQQIQ64CAgAAgAkEQaiACKQMAEMyBgIAAIAIoAhANACACKQMYIQEgAkEQaiACKQMIEPCAgIAAIAIoAhANACAAIAIpAxg3AxAgACABNwMIQgAhBAsgACAENwMAIAJBIGokgICAgAAL4AECAn8CfiOAgICAAEEwayICJICAgIAAQQAhAwJAA0AgA0EYRg0BIAJBCGogA2pCAjcDACADQQhqIQMMAAsLQgEhBAJAIAFC/wGDQswAUg0AIAFBzITAgABBAyACQQhqQQMQ64CAgAAgAikDCCIBQv8Bg0LLAFINACACQSBqIAIpAxAQzIGAgAAgAigCIA0AIAIpAyghBSACQSBqIAIpAxgQ8ICAgAAgAigCIA0AIAIpAyghBCAAIAE3AxggACAENwMQIAAgBTcDCEIAIQQLIAAgBDcDACACQTBqJICAgIAAC5YBAgF+An8gACkDACEBA0ACQCABUEUNAEGAgMQADwsCQAJAIAFCMIinQT9xIgJBAUcNAEHfACECDAELAkACQAJAIAJBf2pBC08NAEEuIQMMAQsCQCACQXRqQRpPDQBBNSEDDAELIAJBJU0NAUE7IQMLIAIgA2ohAgwBCyAAIAFCBoYiATcDAAwBCwsgACABQgaGNwMAIAILGgAgAK1CIIZCBIQgAa1CIIZCBIQQpICAgAALowICAX8BfiOAgICAAEEQayIDJICAgIAAIAMQtoCAgAACQCADKAIAQQFHDQAgAygCBCADKAIIELeAgIAACxCcgICAACEEIAMgAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnI2AgAgBCAEEISAgIAAQoCAgIBwg0IEhCADQQQQp4GAgAAhBCADIAFCOIYgAUKA/gODQiiGhCABQoCA/AeDQhiGIAFCgICA+A+DQgiGhIQgAUIIiEKAgID4D4MgAUIYiEKAgPwHg4QgAUIoiEKA/gODIAFCOIiEhIQ3AwAgBCAEEISAgIAAQoCAgIBwg0IEhCADQQgQp4GAgAAgAhCdgICAABCTgICAABCIgICAACEBIANBEGokgICAgAAgAQudAgICfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAQQEgAKdB/wFxIgJBAEdBAXQgAkEBRhsiAkECRg0AIAEQtoCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELeAgIAACxC8gICAACEAEOWAgIAAIAJzQQFxRQ0BIAFBADYCACABIAJCAhD9gICAAAJAAkAgAkEBcQ0AQo7SqtzurM/1ABDSgICAACEDIAEgADcDACADQYiIwIAAQQEgAUEBENOAgIAAEIyAgIAAGgwBC0KO0qrc7qwDENKAgIAAIQMgASAANwMAIANB+IfAgABBASABQQEQ04CAgAAQjICAgAAaCyABQRBqJICAgIAAQgIPCwALQoOAgICglwEQxoCAgAAACxoAIAAQ5oCAgAAgAa1C/wGDIAIQloCAgAAaC40BAQJ/I4CAgIAAQRBrIgIkgICAgAACQCAAQv8Bg0LNAFINAEEBIAGnQf8BcSIDQQBHQQF0IANBAUYbIgNBAkYNACACQQRqELaAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBC3gICAAAsQvICAgAAaIAAgA0EBcRDMgICAACACQRBqJICAgIAAQgIPCwALjQEBAn8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AQQEgAadB/wFxIgNBAEdBAXQgA0EBRhsiA0ECRg0AIAJBBGoQtoCAgAACQCACKAIEQQFHDQAgAigCCCACKAIMELeAgIAACxC8gICAABogACADQQFxENaAgIAAIAJBEGokgICAgABCAg8LAAujAwEDfyOAgICAAEEgayICJICAgIAAAkACQAJAAkAgAEL/AYNCzQBSDQBBASABp0H/AXEiA0EAR0EBdCADQQFGGyIDQQJGDQAgAkEQahC2gICAAAJAIAIoAhBBAUcNACACKAIUIAIoAhgQt4CAgAALELyAgIAAGiAAEOKAgIAAIQQCQAJAIANBAXENACAERQ0DIAJBAzYCECACIAA3AxggAkEQahDmgICAAEIBEJeAgIAAGhDcgICAACIERQ0FIARBf2ohBAwBCyAEDQMgAkEDNgIQIAIgADcDGCACQRBqEIGBgIAAIAJBBGoQ0ICAgAACQCACKAIEQQFHDQAgAkEQaiACKAIIIAIoAgwQ0YCAgAALENyAgIAAQQFqIgRFDQQLIAQQgoGAgABBpIfAgABBDRDYgICAABDSgICAACEBIAIgADcDGCACIAOtNwMQIAFBvIfAgABBAiACQRBqQQIQ04CAgAAQjICAgAAaIAJBIGokgICAgABCAg8LAAtCg4CAgICXARDGgICAAAALQoOAgICglgEQxoCAgAAACxC0gICAAAALDgAgAEEBQgEQ/YCAgAALMQEBfyOAgICAAEEQayIBJICAgIAAIAFBBDYCACABIAAQ04GAgAAgAUEQaiSAgICAAAvuAgEDfyOAgICAAEEgayICJICAgIAAAkACQAJAIABC/wGDQs0AUg0AQQEgAadB/wFxIgNBAEdBAXQgA0EBRhsiA0ECRg0AIAJBEGoQtoCAgAACQCACKAIQQQFHDQAgAigCFCACKAIYELeAgIAACxC8gICAABogABDegICAACEEAkACQCADQQFxDQAgBEUNAyACQQU2AhAgAiAANwMYIAJBEGoQ5oCAgABCARCXgICAABoMAQsgBA0DIAJBBTYCECACIAA3AxggAkEQahCBgYCAACACQQRqENCAgIAAIAIoAgRBAUcNACACQRBqIAIoAgggAigCDBDRgICAAAtBzIfAgABBDBDYgICAABDSgICAACEBIAIgADcDGCACIAOtNwMQIAFB4IfAgABBAiACQRBqQQIQ04CAgAAQjICAgAAaIAJBIGokgICAgABCAg8LAAtCg4CAgJCXARDGgICAAAALQoOAgICwlgEQxoCAgAAAC3oBAX8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgAkEEahC2gICAAAJAIAIoAgRBAUcNACACKAIIIAIoAgwQt4CAgAALIAAQ1ICAgAAgAUIgiKcQhYGAgAAgAkEQaiSAgICAAEICDwsAC3ICAX8BfiOAgICAAEEQayIBJICAgIAAIAFBBjYCACABIAAQ04GAgABBkIjAgABBGhDYgICAABDSgICAACECIAEgAK1CIIZCBIQ3AwAgAkG4iMCAAEEBIAFBARDTgICAABCMgICAABogAUEQaiSAgICAAAusAQEBfyOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCzQBSDQAgAhC2gICAAAJAIAIoAgBBAUcNACACKAIEIAIoAggQt4CAgAALIAAQ1ICAgAAgARCHgYCAAEHAiMCAAEETENiAgIAAENKAgIAAIQAgAiABNwMAIABB5IjAgABBASACQQEQ04CAgAAQjICAgAAaIAJBEGokgICAgABCAg8LAAsxAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEHNgIAIAEgABDSgYCAACABQRBqJICAgIAAC5cCAQF/I4CAgIAAQSBrIgMkgICAgAACQCAAQv8Bg0LNAFINACABQv8Bg0IEUg0AIAJC/wGDQsgAUg0AIANBEGoQtoCAgAACQCADKAIQQQFHDQAgAygCFCADKAIYELeAgIAACyAAENSAgIAAIANBCDYCECADIAFCIIg+AhQgA0EQahDmgICAACACQgEQloCAgAAaIANBBGoQ0ICAgAACQCADKAIEQQFHDQAgA0EQaiADKAIIIAMoAgwQ0YCAgAALQYyJwIAAQRoQ2ICAgAAQ0oCAgAAhACADIAI3AxggAyABQoSAgIBwgzcDECAAQbyJwIAAQQIgA0EQakECENOAgIAAEIyAgIAAGiADQSBqJICAgIAAQgIPCwALrAEBAX8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQs0AUg0AIAIQtoCAgAACQCACKAIAQQFHDQAgAigCBCACKAIIELeAgIAACyAAENSAgIAAIAEQioGAgABBzInAgABBEhDYgICAABDSgICAACEAIAIgATcDACAAQeiJwIAAQQEgAkEBENOAgIAAEIyAgIAAGiACQRBqJICAgIAAQgIPCwALMQEBfyOAgICAAEEQayIBJICAgIAAIAFBCTYCACABIAAQ0oGAgAAgAUEQaiSAgICAAAt/AQF/I4CAgIAAQRBrIgIkgICAgAACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACQQRqELaAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBC3gICAAAsgABDUgICAACABEIyBgIAAIAEQjYGAgAAgAkEQaiSAgICAAEICDwsACzEBAX8jgICAgABBEGsiASSAgICAACABQQo2AgAgASAAENKBgIAAIAFBEGokgICAgAALXQIBfwF+I4CAgIAAQRBrIgEkgICAgABB7IjAgABBDhDYgICAABDSgICAACECIAEgADcDCCACQYSJwIAAQQEgAUEIakEBENOAgIAAEIyAgIAAGiABQRBqJICAgIAACwkAEOWAgIAArQsbAAJAIABC/wGDQs0AUQ0AAAsgABDVgICAAK0LCAAQzYCAgAALGwACQCAAQv8Bg0LNAFENAAALIAAQ5ICAgACtCwgAENeAgIAACxsAAkAgAEL/AYNCzQBRDQAACyAAEOKAgIAArQsPABDcgICAAK1CIIZCBIQLGwACQCAAQv8Bg0LNAFENAAALIAAQ3oCAgACtCxsAAkAgAEL/AYNCzQBRDQAACyAAEOeAgIAArQsPABDjgICAAK1CIIZCBIQLPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABDhgICAACAAKQMAIAAp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gICAAEEQayIBJICAgIAAAkACQAJAAkAgAEEBcUUNACABQbuFwIAAQQkQyYCAgAAgASgCAA0CIAEgASkDCBDKgICAAAwBCyABQbSFwIAAQQcQyYCAgAAgASgCAA0BIAEgASkDCBDKgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACCyIAQQAQq4GAgAAgAK1CIIZCBIQgAa1CIIZCBIQQsoCAgAAL3wECAX8CfiOAgICAAEEwayIBJICAgIAAAkACQCAAQeyEwIAAQRQQ+oCAgAAQxYCAgAANABDBgICAACICEIKAgIAAIQMgAUEANgIIIAEgAjcDACABIANCIIg+AgwDQCABQSBqIAEQxICAgAAgAUEQaiABKQMgIAEpAygQs4CAgAAgASgCEEEBRw0CIAEpAxggABDFgICAAEUNAAtCg4CAgPCEARDGgICAAAALQoOAgIDQhAEQxoCAgAAACyACIAAQi4CAgAAQuYGAgAAgAEEBELqBgIAAIAFBMGokgICAgAALuAECAX8CfiOAgICAAEEQayIBJICAgIAAAkACQCAARQ0AIAAQwYCAgAAQgoCAgABCIIinSw0BQQEQq4GAgAAgAK1CIIZCBIQiAkICEJaAgIAAGkGUhcCAAEENENiAgIAAENKAgIAAIQMgASACNwMIIANBrIXAgABBASABQQhqQQEQ04CAgAAQjICAgAAaIAFBEGokgICAgAAPC0KDgICAsIUBEMaAgIAAAAtCg4CAgJCFARDGgICAAAALmgEBAn8jgICAgABBEGsiAySAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQs0AUg0AQQEgAqdB/wFxIgRBAEdBAXQgBEEBRhsiBEECRg0AIANBBGoQtoCAgAACQCADKAIEQQFHDQAgAygCCCADKAIMELeAgIAACyAAENSAgIAAIAEgBEEBcRDMgICAACADQRBqJICAgIAAQgIPCwALmQEBAX8jgICAgABBEGsiASSAgICAACABIAAQ8ICAgAACQAJAIAEoAgBBAUYNACABKQMIIQAgARC2gICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQt4CAgAALELyAgIAAGhC1gICAAA0BQQEQsYGAgAAgABCegICAABogAUEQaiSAgICAAEICDwsAC0KDgICAwIMBEMaAgIAAAAsMAEEBIAAQtIGAgAALrgEBAX8jgICAgABBEGsiASSAgICAAAJAAkACQCAAQv8Bg0LIAFINACABQQRqELaAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBC3gICAAAsQvICAgAAaQQEQuICAgABB/QFxRQ0BIAAQlICAgABC/wGDQgJSDQJBABCxgYCAACABQRBqJICAgIAAQgIPCwALQoOAgICwgwEQxoCAgAAAC0KDgICAoIMBEMaAgIAAAAtbAQF/I4CAgIAAQRBrIgAkgICAgAAgAEEEahC2gICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQt4CAgAALELyAgIAAGkEAQQEQtIGAgAAgAEEQaiSAgICAAEICCxoAIAAQz4GAgAAgAa1C/wGDQgIQloCAgAAaCwkAELWAgIAArQsIABC9gICAAAvcAgICfwF+I4CAgIAAQSBrIgIkgICAgAAgAkEQaiAAELiBgIAAAkACQAJAAkAgAigCEEEBRg0AQQEgAadB/wFxIgNBAEdBAXQgA0EBRhsiA0ECRg0AIAIpAxghACACQRBqELaAgIAAAkAgAigCEEEBRw0AIAIoAhQgAigCGBC3gICAAAsQvICAgAAaAkACQCADQQFxDQAgAkEIahDBgICAACIBIAAQiYCAgAAQzoCAgAAgAigCCCIDQQJGDQMgA0UNBAJAIAIoAgwiAyABEIKAgIAAQiCIp08NACABIAOtQiCGQgSEEIqAgIAAIQELIAEQgoCAgAAhBBC/gICAACAEQiCIp0sNBSABELmBgIAAIABBABC6gYCAAAwBCyAAEK2BgIAACyACQSBqJICAgIAAQgIPCwALELSAgIAAAAtCg4CAgICFARDGgICAAAALQoOAgICQhQEQxoCAgAAACyMAAkAgAUL/AYNCyABRDQAgAEIBNwMADwsgACABEMKAgIAAC1sBAX8jgICAgABBEGsiASSAgICAAEEAEKuBgIAAIABCARCWgICAABogAUEEahDQgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQrIGAgAALIAFBEGokgICAgAAL0AEDAX8BfgF/I4CAgIAAQSBrIgIkgICAgABBgIXAgABBChDYgICAACEDIAIgADcDCCACIAM3AwBBACEEA0ACQCAEQRBHDQBBACEEAkADQCAEQRBGDQEgAkEQaiAEaiACIARqKQMANwMAIARBCGohBAwACwsgAkEQakECEKKBgIAAIQAgAiABrUL/AYM3AxAgAEGMhcCAAEEBIAJBEGpBARDTgICAABCMgICAABogAkEgaiSAgICAAA8LIAJBEGogBGpCAjcDACAEQQhqIQQMAAsLbQEBfyOAgICAAEEQayIBJICAgIAAAkAgAEL/AYNCBFINACABQQRqELaAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBC3gICAAAsQvICAgAAaIABCIIinEK6BgIAAIAFBEGokgICAgABCAg8LAAtUAgF/AX4jgICAgABBEGsiACSAgICAACAAQQRqELaAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBC3gICAAAsQwYCAgAAhASAAQRBqJICAgIAAIAELZAIBfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahC2gICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQt4CAgAALEMGAgIAAEIKAgIAAIQEgAEEQaiSAgICAACABQoCAgIBwg0IEhAvcAQIBfwJ+I4CAgIAAQTBrIgEkgICAgAAgAUEgaiAAELiBgIAAAkAgASgCIEEBRg0AIAEpAyghAiABQSBqELaAgIAAAkAgASgCIEEBRw0AIAEoAiQgASgCKBC3gICAAAsQwYCAgAAiABCCgICAACEDIAFBADYCCCABIAA3AwAgASADQiCIPgIMAkADQCABQSBqIAEQxICAgAAgAUEQaiABKQMgIAEpAygQs4CAgAAgASkDECIAp0EBRw0BIAEpAxggAhDFgICAAEUNAAsLIAFBMGokgICAgAAgAA8LAAsPABDIgICAAK1CIIZCBIQLVAEBfyOAgICAAEEQayICJICAgIAAIAIgABDwgICAAAJAIAIoAgBBAUYNACABQv8Bg0LLAFINACACKQMIIAEQvoCAgAAgAkEQaiSAgICAAEICDwsAC2UBAX8jgICAgABBEGsiAySAgICAACADIAAQ8ICAgAACQCADKAIAQQFGDQAgAUL/AYNCywBSDQAgAkL/AYNCBFINACADKQMIIAEgAkIgiKcQwICAgAAgA0EQaiSAgICAAEICDwsACzEAAkAgAEL/AYNCBFINACABQv8Bg0IEUg0AIABCIIinIAFCIIinELeAgIAAQgIPCwALhwUBBX8jgICAgABB0ABrIgIk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AAAAlAAQAAMAAABfARAAEAAAAG8BEAADAAAAKgQQAA4AAABjb25maWcAANAAEAAGAAAApgQQAAcAAABmdW5j8AEQAAQAAADoABAABAAAACcBEAACAAAAc2V0X2FkbWluVmlkRHN0Q29uZmlnVXNlZEhhc2hhbW91bnR0bwAAACEBEAAGAAAAJwEQAAIAAABjb25maXJtYXRpb25zZGVmYXVsdF9tdWx0aXBsaWVyX2Jwc2Zsb29yX21hcmdpbl91c2RnYXNvcHRpb25zcXVvcnVtc2VuZGVyAAAAPAEQAA0AAABJARAAFgAAAKYEEAAHAAAAXwEQABAAAABvARAAAwAAACoEEAAOAAAAcgEQAAcAAAB6BBAACgAAAHkBEAAGAAAAfwEQAAYAAABDb250cmFjdAAAABIAAAAAAAAAAFdhc21hcmdzY29udHJhY3Rmbl9uYW1lAPABEAAEAAAA9AEQAAgAAAD8ARAABwAAAGV4ZWN1dGFibGVzYWx0AAAcAhAACgAAACYCEAAEAAAAY29uc3RydWN0b3JfYXJnczwCEAAQAAAAHAIQAAoAAAAmAhAABAAAAOwBEAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzaWduZXJfc2V0AABHAxAABgAAAHRocmVzaG9sZF9zZXR0aHJlc2hvbGQAAKECEAAJAAAAU2lnbmVyc1RocmVzaG9sZGV4dGVuZF90bwAAAMQCEAAJAAAAoQIQAAkAAAB0dGxfY29uZmlnc19zZXRpbnN0YW5jZXBlcnNpc3RlbnQAAADvAhAACAAAAPcCEAAKAAAAdHRsX2NvbmZpZ3NfZnJvemVuRnJvemVuSW5zdGFuY2VQZXJzaXN0ZW50TWlncmF0aW5nYWN0aXZlYWRtaW4AAEcDEAAGAAAATQMQAAUAAABzZXRfc3VwcG9ydGVkX21lc3NhZ2VfbGlibWVzc2FnZV9saWJzdXBwb3J0ZWQAAAB9AxAACwAAAIgDEAAJAAAAc2V0X2FsbG93bGlzdGFsbG93ZWRvYXBwsQMQAAcAAAC4AxAABAAAAHNldF9kZW55bGlzdGRlbmllZAAA2AMQAAYAAAC4AxAABAAAAHBhdXNlcgAA8AMQAAYAAAB1bnBhdXNlcgAEEAAIAAAAc2V0X2RlZmF1bHRfbXVsdGlwbGllcl9icHNtdWx0aXBsaWVyX2JwcyoEEAAOAAAAc2V0X2RlcG9zaXRfYWRkcmVzc2RlcG9zaXRfYWRkcmVzcwAAUwQQAA8AAABzZXRfcHJpY2VfZmVlZHByaWNlX2ZlZWR6BBAACgAAAHNldF9zdXBwb3J0ZWRfb3B0aW9uX3R5cGVzZHN0X2VpZG9wdGlvbl90eXBlcwAAAKYEEAAHAAAArQQQAAwAAABzZXRfd29ya2VyX2ZlZV9saWJmZWVfbGliAAAA3gQQAAcAAABQYXVzZWRBZG1pbnNNZXNzYWdlTGlic0FsbG93bGlzdEFsbG93bGlzdFNpemVEZW55bGlzdERlZmF1bHRNdWx0aXBsaWVyQnBzRGVwb3NpdEFkZHJlc3NTdXBwb3J0ZWRPcHRpb25UeXBlc1dvcmtlckZlZUxpYlByaWNlRmVlZADn8AEOY29udHJhY3RzcGVjdjAAAAAEAAAAAAAAAAAAAAAIRHZuRXJyb3IAAAAGAAAAAAAAAA9BdXRoRGF0YUV4cGlyZWQAAAAAAQAAAAAAAAAPRWlkTm90U3VwcG9ydGVkAAAAAAIAAAAAAAAAD0hhc2hBbHJlYWR5VXNlZAAAAAADAAAAAAAAAApJbnZhbGlkVmlkAAAAAAAEAAAAAAAAABFOb25Db250cmFjdEludm9rZQAAAAAAAAUAAAAAAAAACU9ubHlBZG1pbgAAAAAAAAYAAAAFAAAAAAAAAAAAAAAMU2V0RHN0Q29uZmlnAAAAAQAAAA5zZXRfZHN0X2NvbmZpZwAAAAAAAQAAAAAAAAAGcGFyYW1zAAAAAAPqAAAH0AAAAA5Ec3RDb25maWdQYXJhbQAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAGU2VuZGVyAAAAAAACAAAAAAAAAC5ObyBleHBsaWNpdCBzZW5kZXIgKHBlcm1pc3Npb25sZXNzIGV4ZWN1dGlvbikuAAAAAAAETm9uZQAAAAEAAACPQSByZWdpc3RlcmVkIGFkbWluIChlZDI1NTE5KSBzdWJtaXR0aW5nIHRoZSB0cmFuc2FjdGlvbi4KVGhlIHR1cGxlIGlzIGAocHVibGljX2tleSwgc2lnbmF0dXJlKWAgd2hlcmUgdGhlIHNpZ25hdHVyZSBjb3ZlcnMgdGhlIFNvcm9iYW4gcGF5bG9hZC4AAAAABUFkbWluAAAAAAAAAgAAA+4AAAAgAAAD7gAAAEAAAAABAAAAx0F1dGhlbnRpY2F0aW9uIGRhdGEgZm9yIERWTiBjb250cmFjdCB0cmFuc2FjdGlvbnMuCgpUaGlzIHN0cnVjdCBpcyB1c2VkIHdpdGggU29yb2JhbidzIGN1c3RvbSBhY2NvdW50IGludGVyZmFjZSB0byBhdXRob3JpemUKdHJhbnNhY3Rpb25zIHRocm91Z2ggYSBjb21iaW5hdGlvbiBvZiBhZG1pbiBzaWduYXR1cmUgYW5kIG11bHRpc2lnIHF1b3J1bS4AAAAAAAAAABNUcmFuc2FjdGlvbkF1dGhEYXRhAAAAAAQAAABERXhwaXJhdGlvbiB0aW1lc3RhbXAgKGxlZGdlciB0aW1lKSBhZnRlciB3aGljaCB0aGlzIGF1dGggaXMgaW52YWxpZC4AAAAKZXhwaXJhdGlvbgAAAAAABgAAAD1FbnRpdHkgc3VibWl0dGluZyB0aGUgdHJhbnNhY3Rpb24gKGFkbWluLCBvciBwZXJtaXNzaW9ubGVzcykuAAAAAAAABnNlbmRlcgAAAAAH0AAAAAZTZW5kZXIAAAAAADxTaWduYXR1cmVzIGZyb20gbXVsdGlzaWcgc2lnbmVycyAoc2VjcDI1NmsxLCA2NSBieXRlcyBlYWNoKS4AAAAKc2lnbmF0dXJlcwAAAAAD6gAAA+4AAABBAAAAMlZlcmlmaWVyIElEIC0gbXVzdCBtYXRjaCB0aGUgRFZOJ3MgY29uZmlndXJlZCBWSUQuAAAAAAADdmlkAAAAAAQAAAABAAAAckNvbmZpZ3VyYXRpb24gZm9yIGEgZGVzdGluYXRpb24gY2hhaW4uCgpDb250YWlucyBmZWUgY2FsY3VsYXRpb24gcGFyYW1ldGVycyBzcGVjaWZpYyB0byBlYWNoIGRlc3RpbmF0aW9uIGVuZHBvaW50LgAAAAAAAAAAAAlEc3RDb25maWcAAAAAAAADAAAAO01pbmltdW0gZmVlIG1hcmdpbiBpbiBVU0QgKHNjYWxlZCBieSBuYXRpdmUgZGVjaW1hbHMgcmF0ZSkuAAAAABBmbG9vcl9tYXJnaW5fdXNkAAAACgAAAC5HYXMgZm9yIHZlcmlmaWNhdGlvbiBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4uAAAAAAADZ2FzAAAAAAoAAABnRmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICgxMDAwMCA9IDEwMCUpLgpJZiAwLCB0aGUgZGVmYXVsdCBtdWx0aXBsaWVyIGZyb20gd29ya2VyIGNvbmZpZyBpcyB1c2VkLgAAAAAObXVsdGlwbGllcl9icHMAAAAAAAQAAAABAAAANlBhcmFtZXRlciBmb3Igc2V0dGluZyBkZXN0aW5hdGlvbiBjaGFpbiBjb25maWd1cmF0aW9uLgAAAAAAAAAAAA5Ec3RDb25maWdQYXJhbQAAAAAAAgAAACdUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBkZXN0aW5hdGlvbi4AAAAABmNvbmZpZwAAAAAH0AAAAAlEc3RDb25maWcAAAAAAAAcVGhlIGRlc3RpbmF0aW9uIGVuZHBvaW50IElELgAAAAdkc3RfZWlkAAAAAAQAAAABAAAAiVJlcHJlc2VudHMgYSBzaW5nbGUgY29udHJhY3QgaW52b2NhdGlvbiBmb3IgbXVsdGlzaWcgYXV0aG9yaXphdGlvbi4KClVzZWQgaW4gYGhhc2hfY2FsbF9kYXRhYCB0byBjb21wdXRlIHRoZSBoYXNoIHRoYXQgc2lnbmVycyBzaWduIG92ZXIuAAAAAAAAAAAAAARDYWxsAAAAAwAAABNGdW5jdGlvbiBhcmd1bWVudHMuAAAAAARhcmdzAAAD6gAAAAAAAAAYRnVuY3Rpb24gbmFtZSB0byBpbnZva2UuAAAABGZ1bmMAAAARAAAAGFRhcmdldCBjb250cmFjdCBhZGRyZXNzLgAAAAJ0bwAAAAAAEwAAAAAAAAA0VmFsaWRhdGVzIGF1dGhvcml6YXRpb24gZm9yIERWTiBjb250cmFjdCBvcGVyYXRpb25zLgAAAAxfX2NoZWNrX2F1dGgAAAADAAAAAAAAABFzaWduYXR1cmVfcGF5bG9hZAAAAAAAA+4AAAAgAAAAAAAAAAlhdXRoX2RhdGEAAAAAAAfQAAAAE1RyYW5zYWN0aW9uQXV0aERhdGEAAAAAAAAAAA1hdXRoX2NvbnRleHRzAAAAAAAD6gAAB9AAAAAHQ29udGV4dAAAAAABAAAD6QAAAAIAAAADAAAAAAAAAORTZXRzIHRoZSBwYXVzZWQgc3RhdGUgb2YgdGhlIHdvcmtlci4KCldoZW4gcGF1c2VkLCB0aGUgd29ya2VyIHdpbGwgcmVqZWN0IG5ldyBqb2IgYXNzaWdubWVudHMgKGUuZy4sIGFzc2lnbl9qb2IsIGdldF9mZWUpLgpFeGlzdGluZyBqb2JzIGluIHByb2dyZXNzIGFyZSBub3QgYWZmZWN0ZWQuCgojIEFyZ3VtZW50cwoqIGBwYXVzZWRgIC0gYHRydWVgIHRvIHBhdXNlLCBgZmFsc2VgIHRvIHVucGF1c2UAAAAKc2V0X3BhdXNlZAAAAAAAAQAAAAAAAAAGcGF1c2VkAAAAAAABAAAAAAAAAAAAAAD9U2V0cyBhZG1pbiBzdGF0dXMgZm9yIGFuIGFkZHJlc3MuCgpBZG1pbnMgY2FuIGNvbmZpZ3VyZSB3b3JrZXIgc2V0dGluZ3MgbGlrZSBmZWUgbXVsdGlwbGllcnMsIGRlcG9zaXQgYWRkcmVzc2VzLAphbmQgc3VwcG9ydGVkIG9wdGlvbiB0eXBlcy4KCiMgQXJndW1lbnRzCiogYGFkbWluYCAtIFRoZSBhZGRyZXNzIHRvIHNldCBhZG1pbiBzdGF0dXMgZm9yCiogYGFjdGl2ZWAgLSBgdHJ1ZWAgdG8gYWRkIGFkbWluLCBgZmFsc2VgIHRvIHJlbW92ZQAAAAAAAAlzZXRfYWRtaW4AAAAAAAACAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAAAAAABN1NldHMgd2hldGhlciBhIG1lc3NhZ2UgbGlicmFyeSBpcyBzdXBwb3J0ZWQgYnkgdGhpcyB3b3JrZXIuCgpNZXNzYWdlIGxpYnJhcmllcyAoZS5nLiwgVUxOMzAyKSBjYWxsIHdvcmtlcnMgdG8gYXNzaWduIGpvYnMuIE9ubHkgc3VwcG9ydGVkCmxpYnJhcmllcyBjYW4gaW50ZXJhY3Qgd2l0aCB0aGlzIHdvcmtlci4KCiMgQXJndW1lbnRzCiogYG1lc3NhZ2VfbGliYCAtIFRoZSBtZXNzYWdlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcwoqIGBzdXBwb3J0ZWRgIC0gYHRydWVgIHRvIGFkZCBzdXBwb3J0LCBgZmFsc2VgIHRvIHJlbW92ZSBzdXBwb3J0AAAAABlzZXRfc3VwcG9ydGVkX21lc3NhZ2VfbGliAAAAAAAAAgAAAAAAAAALbWVzc2FnZV9saWIAAAAAEwAAAAAAAAAJc3VwcG9ydGVkAAAAAAAAAQAAAAAAAAAAAAABWFNldHMgYWxsb3dsaXN0IHN0YXR1cyBmb3IgYW4gT0FwcCBhZGRyZXNzLgoKV2hlbiB0aGUgYWxsb3dsaXN0IGlzIGVtcHR5LCBhbGwgT0FwcHMgYXJlIGFsbG93ZWQgKHVubGVzcyBvbiBkZW55bGlzdCkuCldoZW4gdGhlIGFsbG93bGlzdCBpcyBub3QgZW1wdHksIG9ubHkgYWxsb3dsaXN0ZWQgT0FwcHMgYXJlIGFsbG93ZWQuCkRlbnlsaXN0IGFsd2F5cyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgYWxsb3dsaXN0LgoKIyBBcmd1bWVudHMKKiBgb2FwcGAgLSBUaGUgT0FwcCBjb250cmFjdCBhZGRyZXNzCiogYGFsbG93ZWRgIC0gYHRydWVgIHRvIGFkZCB0byBhbGxvd2xpc3QsIGBmYWxzZWAgdG8gcmVtb3ZlAAAADXNldF9hbGxvd2xpc3QAAAAAAAACAAAAAAAAAARvYXBwAAAAEwAAAAAAAAAHYWxsb3dlZAAAAAABAAAAAAAAAAAAAAEJU2V0cyBkZW55bGlzdCBzdGF0dXMgZm9yIGFuIE9BcHAgYWRkcmVzcy4KCkRlbnlsaXN0ZWQgT0FwcHMgYXJlIGJsb2NrZWQgZnJvbSB1c2luZyB0aGlzIHdvcmtlciwgZXZlbiBpZiB0aGV5J3JlIG9uCnRoZSBhbGxvd2xpc3QgKGRlbnlsaXN0IHRha2VzIHByZWNlZGVuY2UpLgoKIyBBcmd1bWVudHMKKiBgb2FwcGAgLSBUaGUgT0FwcCBjb250cmFjdCBhZGRyZXNzCiogYGRlbmllZGAgLSBgdHJ1ZWAgdG8gYWRkIHRvIGRlbnlsaXN0LCBgZmFsc2VgIHRvIHJlbW92ZQAAAAAAAAxzZXRfZGVueWxpc3QAAAACAAAAAAAAAARvYXBwAAAAEwAAAAAAAAAGZGVuaWVkAAAAAAABAAAAAAAAAAAAAAE7U2V0cyB0aGUgZGVmYXVsdCBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMuCgpUaGUgbXVsdGlwbGllciBpcyBhcHBsaWVkIHRvIGJhc2UgZmVlcyBkdXJpbmcgZmVlIGNhbGN1bGF0aW9uLiBVc2VkIHdoZW4Kbm8gZGVzdGluYXRpb24tc3BlY2lmaWMgbXVsdGlwbGllciBpcyBjb25maWd1cmVkLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gQWRtaW4gYWRkcmVzcyAobXVzdCBwcm92aWRlIGF1dGhvcml6YXRpb24pCiogYG11bHRpcGxpZXJfYnBzYCAtIE11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICgxMDAwMCA9IDF4LCAxMjAwMCA9IDEuMngpAAAAABpzZXRfZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAAAAAAAAAAAAA8VNldHMgdGhlIGRlcG9zaXQgYWRkcmVzcyB3aGVyZSB3b3JrZXIgZmVlcyBhcmUgY29sbGVjdGVkLgoKV2hlbiBqb2JzIGFyZSBhc3NpZ25lZCwgZmVlcyBhcmUgZGlyZWN0ZWQgdG8gdGhpcyBhZGRyZXNzLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gQWRtaW4gYWRkcmVzcyAobXVzdCBwcm92aWRlIGF1dGhvcml6YXRpb24pCiogYGRlcG9zaXRfYWRkcmVzc2AgLSBBZGRyZXNzIHRvIHJlY2VpdmUgY29sbGVjdGVkIGZlZXMAAAAAAAATc2V0X2RlcG9zaXRfYWRkcmVzcwAAAAACAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAAD2RlcG9zaXRfYWRkcmVzcwAAAAATAAAAAAAAAAAAAAEJU2V0cyBzdXBwb3J0ZWQgZXhlY3V0b3Igb3B0aW9uIHR5cGVzIGZvciBhIGRlc3RpbmF0aW9uIGVuZHBvaW50LgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gQWRtaW4gYWRkcmVzcyAobXVzdCBwcm92aWRlIGF1dGhvcml6YXRpb24pCiogYGVpZGAgLSBEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikKKiBgb3B0aW9uX3R5cGVzYCAtIFN1cHBvcnRlZCBvcHRpb24gdHlwZXMuIEVhY2ggYnl0ZSByZXByZXNlbnRzIGFuIG9wdGlvbiB0eXBlLgAAAAAAABpzZXRfc3VwcG9ydGVkX29wdGlvbl90eXBlcwAAAAAAAwAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAANlaWQAAAAABAAAAAAAAAAMb3B0aW9uX3R5cGVzAAAADgAAAAAAAAAAAAABElNldHMgdGhlIHdvcmtlciBmZWUgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzLgoKVGhlIGZlZSBsaWJyYXJ5IGNhbGN1bGF0ZXMgZmVlcyBiYXNlZCBvbiBleGVjdXRvciBvcHRpb25zIGFuZCBwcmljZSBmZWVkIGRhdGEuCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBBZG1pbiBhZGRyZXNzIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgd29ya2VyX2ZlZV9saWJgIC0gRmVlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcyBpbXBsZW1lbnRpbmcgYElFeGVjdXRvckZlZUxpYmAAAAAAABJzZXRfd29ya2VyX2ZlZV9saWIAAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAOd29ya2VyX2ZlZV9saWIAAAAAABMAAAAAAAAAAAAAARJTZXRzIHRoZSBwcmljZSBmZWVkIGNvbnRyYWN0IGFkZHJlc3MuCgpUaGUgcHJpY2UgZmVlZCBwcm92aWRlcyBnYXMgcHJpY2VzIGFuZCBleGNoYW5nZSByYXRlcyBmb3IgY3Jvc3MtY2hhaW4KZmVlIGNhbGN1bGF0aW9ucy4KCiMgQXJndW1lbnRzCiogYGFkbWluYCAtIEFkbWluIGFkZHJlc3MgKG11c3QgcHJvdmlkZSBhdXRob3JpemF0aW9uKQoqIGBwcmljZV9mZWVkYCAtIFByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcyBpbXBsZW1lbnRpbmcgYElMYXllclplcm9QcmljZUZlZWRgAAAAAAAOc2V0X3ByaWNlX2ZlZWQAAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAKcHJpY2VfZmVlZAAAAAAAEwAAAAAAAAAAAAAAJVJldHVybnMgd2hldGhlciB0aGUgd29ya2VyIGlzIHBhdXNlZC4AAAAAAAAGcGF1c2VkAAAAAAAAAAAAAQAAAAEAAAAAAAAAVVJldHVybnMgd2hldGhlciBhbiBhZGRyZXNzIGlzIGFuIGFkbWluLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gVGhlIGFkZHJlc3MgdG8gY2hlY2sAAAAAAAAIaXNfYWRtaW4AAAABAAAAAAAAAAVhZG1pbgAAAAAAABMAAAABAAAAAQAAAAAAAAAcUmV0dXJucyBhbGwgYWRtaW4gYWRkcmVzc2VzLgAAAAZhZG1pbnMAAAAAAAAAAAABAAAD6gAAABMAAAAAAAAAb1JldHVybnMgd2hldGhlciBhIG1lc3NhZ2UgbGlicmFyeSBpcyBzdXBwb3J0ZWQuCgojIEFyZ3VtZW50cwoqIGBtZXNzYWdlX2xpYmAgLSBNZXNzYWdlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcwAAAAAYaXNfc3VwcG9ydGVkX21lc3NhZ2VfbGliAAAAAQAAAAAAAAALbWVzc2FnZV9saWIAAAAAEwAAAAEAAAABAAAAAAAAAHNSZXR1cm5zIGFsbCBzdXBwb3J0ZWQgbWVzc2FnZSBsaWJyYXJ5IGFkZHJlc3Nlcy4KCiMgUmV0dXJucwpWZWN0b3Igb2Ygc3VwcG9ydGVkIG1lc3NhZ2UgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzZXMuAAAAAAxtZXNzYWdlX2xpYnMAAAAAAAAAAQAAA+oAAAATAAAAAAAAAFpSZXR1cm5zIHdoZXRoZXIgYW4gT0FwcCBpcyBvbiB0aGUgYWxsb3dsaXN0LgoKIyBBcmd1bWVudHMKKiBgb2FwcGAgLSBPQXBwIGNvbnRyYWN0IGFkZHJlc3MAAAAAAA9pc19vbl9hbGxvd2xpc3QAAAAAAQAAAAAAAAAEb2FwcAAAABMAAAABAAAAAQAAAAAAAAAxUmV0dXJucyB0aGUgbnVtYmVyIG9mIGFkZHJlc3NlcyBvbiB0aGUgYWxsb3dsaXN0LgAAAAAAAA5hbGxvd2xpc3Rfc2l6ZQAAAAAAAAAAAAEAAAAEAAAAAAAAAFlSZXR1cm5zIHdoZXRoZXIgYW4gT0FwcCBpcyBvbiB0aGUgZGVueWxpc3QuCgojIEFyZ3VtZW50cwoqIGBvYXBwYCAtIE9BcHAgY29udHJhY3QgYWRkcmVzcwAAAAAAAA5pc19vbl9kZW55bGlzdAAAAAAAAQAAAAAAAAAEb2FwcAAAABMAAAABAAAAAQAAAAAAAAD5UmV0dXJucyB3aGV0aGVyIGFuIE9BcHAgaGFzIGFjY2VzcyBjb250cm9sIGxpc3QgKEFDTCkgcGVybWlzc2lvbi4KCkFDTCBldmFsdWF0aW9uIG9yZGVyOgoxLiBJZiBvbiBkZW55bGlzdCDihpIgZGVuaWVkCjIuIElmIGFsbG93bGlzdCBpcyBlbXB0eSBPUiBvbiBhbGxvd2xpc3Qg4oaSIGFsbG93ZWQKMy4gT3RoZXJ3aXNlIOKGkiBkZW5pZWQKCiMgQXJndW1lbnRzCiogYG9hcHBgIC0gT0FwcCBjb250cmFjdCBhZGRyZXNzIHRvIGNoZWNrAAAAAAAAB2hhc19hY2wAAAAAAQAAAAAAAAAEb2FwcAAAABMAAAABAAAAAQAAAAAAAAAzUmV0dXJucyB0aGUgZGVmYXVsdCBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMuAAAAABZkZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAAAAAAAAQAAAAQAAAAAAAAANVJldHVybnMgdGhlIGRlcG9zaXQgYWRkcmVzcyB3aGVyZSBmZWVzIGFyZSBjb2xsZWN0ZWQuAAAAAAAAD2RlcG9zaXRfYWRkcmVzcwAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAHxSZXR1cm5zIHN1cHBvcnRlZCBvcHRpb24gdHlwZXMgZm9yIGEgZGVzdGluYXRpb24gZW5kcG9pbnQuCgojIEFyZ3VtZW50cwoqIGBlaWRgIC0gRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpAAAAGmdldF9zdXBwb3J0ZWRfb3B0aW9uX3R5cGVzAAAAAAABAAAAAAAAAANlaWQAAAAABAAAAAEAAAPoAAAADgAAAAAAAAAwUmV0dXJucyB0aGUgd29ya2VyIGZlZSBsaWJyYXJ5IGNvbnRyYWN0IGFkZHJlc3MuAAAADndvcmtlcl9mZWVfbGliAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAChSZXR1cm5zIHRoZSBwcmljZSBmZWVkIGNvbnRyYWN0IGFkZHJlc3MuAAAACnByaWNlX2ZlZWQAAAAAAAAAAAABAAAD6AAAABMAAAAAAAAAeENhbGN1bGF0ZXMgdGhlIHZlcmlmaWNhdGlvbiBmZWUgZm9yIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4KCkNhbGxlZCBieSB0aGUgc2VuZCBsaWJyYXJ5IHRvIHF1b3RlIERWTiBmZWVzIGJlZm9yZSBzZW5kaW5nLgAAAAdnZXRfZmVlAAAAAAcAAAAAAAAACHNlbmRfbGliAAAAEwAAAAAAAAAGc2VuZGVyAAAAAAATAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAAAAAAADXBhY2tldF9oZWFkZXIAAAAAAAAOAAAAAAAAAAxwYXlsb2FkX2hhc2gAAAPuAAAAIAAAAAAAAAANY29uZmlybWF0aW9ucwAAAAAAAAYAAAAAAAAAB29wdGlvbnMAAAAADgAAAAEAAAALAAAAAAAAALhBc3NpZ25zIGEgdmVyaWZpY2F0aW9uIGpvYiB0byB0aGlzIERWTiBhbmQgcmV0dXJucyBmZWUgcGF5bWVudCBpbmZvLgoKQ2FsbGVkIGJ5IHRoZSBzZW5kIGxpYnJhcnkgd2hlbiBhIG1lc3NhZ2UgaXMgc2VudC4gVGhlIERWTiB3aWxsIGxhdGVyCnZlcmlmeSB0aGUgbWVzc2FnZSBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4uAAAACmFzc2lnbl9qb2IAAAAAAAcAAAAAAAAACHNlbmRfbGliAAAAEwAAAAAAAAAGc2VuZGVyAAAAAAATAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAAAAAAADXBhY2tldF9oZWFkZXIAAAAAAAAOAAAAAAAAAAxwYXlsb2FkX2hhc2gAAAPuAAAAIAAAAAAAAAANY29uZmlybWF0aW9ucwAAAAAAAAYAAAAAAAAAB29wdGlvbnMAAAAADgAAAAEAAAfQAAAADEZlZVJlY2lwaWVudAAAAAAAAABEU2V0cyBkZXN0aW5hdGlvbiBjaGFpbiBjb25maWd1cmF0aW9ucy4gUmVxdWlyZXMgYWRtaW4gYXV0aG9yaXphdGlvbi4AAAAOc2V0X2RzdF9jb25maWcAAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAGcGFyYW1zAAAAAAPqAAAH0AAAAA5Ec3RDb25maWdQYXJhbQAAAAAAAAAAAAAAAABBUmV0dXJucyB0aGUgZGVzdGluYXRpb24gY29uZmlndXJhdGlvbiBmb3IgYSBzcGVjaWZpYyBlbmRwb2ludCBJRC4AAAAAAAAKZHN0X2NvbmZpZwAAAAAAAQAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAQAAA+gAAAfQAAAACURzdENvbmZpZwAAAAAAAAAAAAAlUmV0dXJucyB0aGUgVmVyaWZpZXIgSUQgZm9yIHRoaXMgRFZOLgAAAAAAAAN2aWQAAAAAAAAAAAEAAAAEAAAAAAAAAHdDb21wdXRlcyB0aGUgaGFzaCBvZiBjYWxsIGRhdGEgZm9yIG11bHRpc2lnIHNpZ25pbmcuCgpPZmYtY2hhaW4gc2lnbmVycyB1c2UgdGhpcyB0byBjb21wdXRlIHRoZSBoYXNoIHRoZXkgbmVlZCB0byBzaWduLgAAAAAOaGFzaF9jYWxsX2RhdGEAAAAAAAMAAAAAAAAAA3ZpZAAAAAAEAAAAAAAAAApleHBpcmF0aW9uAAAAAAAGAAAAAAAAAAVjYWxscwAAAAAAA+oAAAfQAAAABENhbGwAAAABAAAD7gAAACAAAAAAAAACZEluaXRpYWxpemVzIHRoZSBEVk4gY29udHJhY3QuCgojIEFyZ3VtZW50cwoqIGB2aWRgIC0gVmVyaWZpZXIgSUQsIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIERWTgoqIGBzaWduZXJzYCAtIEluaXRpYWwgbXVsdGlzaWcgc2lnbmVycyAoMjAtYnl0ZSBFdGhlcmV1bSBhZGRyZXNzZXMpCiogYHRocmVzaG9sZGAgLSBNaW5pbXVtIHNpZ25hdHVyZXMgcmVxdWlyZWQgZm9yIG11bHRpc2lnIG9wZXJhdGlvbnMKKiBgYWRtaW5zYCAtIEluaXRpYWwgYWRtaW4gYWRkcmVzc2VzIGZvciBvcGVyYXRpb25hbCBmdW5jdGlvbnMKKiBgc3VwcG9ydGVkX21zZ2xpYnNgIC0gTWVzc2FnZSBsaWJyYXJpZXMgdGhpcyBEVk4gc3VwcG9ydHMgKGUuZy4sIFVMTjMwMikKKiBgcHJpY2VfZmVlZGAgLSBQcmljZSBmZWVkIGNvbnRyYWN0IGZvciBmZWUgY2FsY3VsYXRpb25zCiogYGRlZmF1bHRfbXVsdGlwbGllcl9icHNgIC0gRGVmYXVsdCBmZWUgbXVsdGlwbGllciAoMTAwMDAgPSAxeCkKKiBgd29ya2VyX2ZlZV9saWJgIC0gRmVlIGxpYnJhcnkgY29udHJhY3QgZm9yIGNvbXB1dGluZyBEVk4gZmVlcwoqIGBkZXBvc2l0X2FkZHJlc3NgIC0gQWRkcmVzcyB0byByZWNlaXZlIGZlZSBwYXltZW50cwAAAA1fX2NvbnN0cnVjdG9yAAAAAAAACQAAAAAAAAADdmlkAAAAAAQAAAAAAAAAB3NpZ25lcnMAAAAD6gAAA+4AAAAUAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAZhZG1pbnMAAAAAA+oAAAATAAAAAAAAABFzdXBwb3J0ZWRfbXNnbGlicwAAAAAAA+oAAAATAAAAAAAAAApwcmljZV9mZWVkAAAAAAATAAAAAAAAABZkZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAAEAAAAAAAAAA53b3JrZXJfZmVlX2xpYgAAAAAAEwAAAAAAAAAPZGVwb3NpdF9hZGRyZXNzAAAAABMAAAAAAAAAAAAAAWpTZXRzIGFkbWluIHN0YXR1cyBmb3IgYW4gYWRkcmVzcy4gQ2FuIGJlIGNhbGxlZCBieSBhbiBleGlzdGluZyBhZG1pbi4KClRoaXMgYWxsb3dzIGV4aXN0aW5nIGFkbWlucyB0byBhZGQgb3IgcmVtb3ZlIG90aGVyIGFkbWlucyB3aXRob3V0IGdvaW5nIHRocm91Z2gKdGhlIG93bmVyL211bHRpc2lnIHBhdGguCgojIEFyZ3VtZW50cwoqIGBjYWxsZXJgIC0gVGhlIGFkbWluIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiAobXVzdCBwcm92aWRlIGF1dGhvcml6YXRpb24pCiogYGFkbWluYCAtIFRoZSBhZGRyZXNzIHRvIHNldCBhZG1pbiBzdGF0dXMgZm9yCiogYGFjdGl2ZWAgLSBgdHJ1ZWAgdG8gYWRkIGFkbWluLCBgZmFsc2VgIHRvIHJlbW92ZQAAAAAAEnNldF9hZG1pbl9ieV9hZG1pbgAAAAAAAwAAAAAAAAAGY2FsbGVyAAAAAAATAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAAAAAAAlVRoZSB0eXBlIG9mIGRhdGEgcmVxdWlyZWQgZm9yIG1pZ3JhdGlvbi4KVXBncmFkZXMgdGhlIGNvbnRyYWN0IHRvIG5ldyBXQVNNIGJ5dGVjb2RlLgpTZXRzIGEgbWlncmF0aW9uIGZsYWcgdGhhdCBtdXN0IGJlIGNsZWFyZWQgYnkgY2FsbGluZyBgbWlncmF0ZWAuAAAAAAAAB3VwZ3JhZGUAAAAAAQAAAAAAAAANbmV3X3dhc21faGFzaAAAAAAAA+4AAAAgAAAAAAAAAAAAAAB2UnVucyBtaWdyYXRpb24gbG9naWMgYWZ0ZXIgYW4gdXBncmFkZS4KQ2FuIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlIG1pZ3JhdGlvbiBmbGFnIGlzIHNldCBieSBhIHByZXZpb3VzIGB1cGdyYWRlYCBjYWxsLgAAAAAAB21pZ3JhdGUAAAAAAQAAAAAAAAAObWlncmF0aW9uX2RhdGEAAAAAAA4AAAAAAAAAAAAAAF5QZXJtYW5lbnRseSBmcmVlemVzIHRoZSBjb250cmFjdCwgcHJldmVudGluZyBhbnkgZnV0dXJlIHVwZ3JhZGVzLgpUaGlzIGFjdGlvbiBpcyBpcnJldmVyc2libGUuAAAAAAAGZnJlZXplAAAAAAAAAAAAAAAAAAAAAAA7UmV0dXJucyB3aGV0aGVyIHRoZSBjb250cmFjdCBpcyBmcm96ZW4gKHVwZ3JhZGVzIGRpc2FibGVkKS4AAAAACWlzX2Zyb3plbgAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAACmF1dGhvcml6ZXIAAAAAAAAAAAABAAAAEwAAAAAAAABJQWRkcyBvciByZW1vdmVzIGEgc2lnbmVyIGZyb20gdGhlIG11bHRpc2lnLiBSZXF1aXJlcyBvd25lciBhdXRob3JpemF0aW9uLgAAAAAAAApzZXRfc2lnbmVyAAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAAAAAERTZXRzIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIChxdW9ydW0pLiBSZXF1aXJlcyBvd25lciBhdXRob3JpemF0aW9uLgAAAA1zZXRfdGhyZXNob2xkAAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAAAAAAH1JldHVybnMgYWxsIHJlZ2lzdGVyZWQgc2lnbmVycy4AAAAAC2dldF9zaWduZXJzAAAAAAAAAAABAAAD6gAAA+4AAAAUAAAAAAAAAC9SZXR1cm5zIHRoZSB0b3RhbCBudW1iZXIgb2YgcmVnaXN0ZXJlZCBzaWduZXJzLgAAAAANdG90YWxfc2lnbmVycwAAAAAAAAAAAAABAAAABAAAAAAAAAAsQ2hlY2tzIGlmIGFuIGFkZHJlc3MgaXMgYSByZWdpc3RlcmVkIHNpZ25lci4AAAAJaXNfc2lnbmVyAAAAAAAAAQAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAABAAAAAAAAADFSZXR1cm5zIHRoZSBjdXJyZW50IHNpZ25hdHVyZSB0aHJlc2hvbGQgKHF1b3J1bSkuAAAAAAAACXRocmVzaG9sZAAAAAAAAAAAAAABAAAABAAAAAAAAAA1VmVyaWZpZXMgc2lnbmF0dXJlcyBhZ2FpbnN0IHRoZSBjb25maWd1cmVkIHRocmVzaG9sZC4AAAAAAAARdmVyaWZ5X3NpZ25hdHVyZXMAAAAAAAACAAAAAAAAAAZkaWdlc3QAAAAAA+4AAAAgAAAAAAAAAApzaWduYXR1cmVzAAAAAAPqAAAD7gAAAEEAAAAAAAAAAAAAAC9WZXJpZmllcyBzaWduYXR1cmVzIGFnYWluc3QgYSBjdXN0b20gdGhyZXNob2xkLgAAAAATdmVyaWZ5X25fc2lnbmF0dXJlcwAAAAADAAAAAAAAAAZkaWdlc3QAAAAAA+4AAAAgAAAAAAAAAApzaWduYXR1cmVzAAAAAAPqAAAD7gAAAEEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAAAAAAAKVFeHRlbmRzIHRoZSBpbnN0YW5jZSBUVEwuCgojIEFyZ3VtZW50cwoKKiBgdGhyZXNob2xkYCAtIFRoZSB0aHJlc2hvbGQgdG8gZXh0ZW5kIHRoZSBUVEwgKGlmIGN1cnJlbnQgVFRMIGlzIGJlbG93IHRoaXMsIGV4dGVuZCkuCiogYGV4dGVuZF90b2AgLSBUaGUgVFRMIHRvIGV4dGVuZCB0by4AAAAAAAATZXh0ZW5kX2luc3RhbmNlX3R0bAAAAAACAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAlleHRlbmRfdG8AAAAAAAAEAAAAAAAAAAAAAAGPU2V0cyBUVEwgY29uZmlncyBmb3IgaW5zdGFuY2UgYW5kIHBlcnNpc3RlbnQgc3RvcmFnZS4KCi0gYE5vbmVgIHZhbHVlcyByZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgY29uZmlnIChkaXNhYmxlcyBhdXRvLWV4dGVuc2lvbiBmb3IgdGhhdCB0eXBlKQotIFZhbGlkYXRlcyB0aGF0IGB0aHJlc2hvbGQgPD0gZXh0ZW5kX3RvIDw9IE1BWF9UVExgCgojIEFyZ3VtZW50cwotIGBpbnN0YW5jZWAgLSBUVEwgY29uZmlnIGZvciBpbnN0YW5jZSBzdG9yYWdlCi0gYHBlcnNpc3RlbnRgIC0gVFRMIGNvbmZpZyBmb3IgcGVyc2lzdGVudCBzdG9yYWdlCgojIFBhbmljcwotIGBUdGxDb25maWdGcm96ZW5gIGlmIGNvbmZpZ3MgYXJlIGZyb3plbgotIGBJbnZhbGlkVHRsQ29uZmlnYCBpZiB2YWxpZGF0aW9uIGZhaWxzAAAAAA9zZXRfdHRsX2NvbmZpZ3MAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAASFJldHVybnMgdGhlIGN1cnJlbnQgVFRMIGNvbmZpZ3MgYXMgKGluc3RhbmNlX2NvbmZpZywgcGVyc2lzdGVudF9jb25maWcpLgAAAAt0dGxfY29uZmlncwAAAAAAAAAAAQAAA+0AAAACAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAOFQZXJtYW5lbnRseSBmcmVlemVzIFRUTCBjb25maWdzLCBwcmV2ZW50aW5nIGFueSBmdXR1cmUgbW9kaWZpY2F0aW9ucy4KClRoaXMgaXMgaXJyZXZlcnNpYmxlIGFuZCBwcm92aWRlcyBpbW11dGFiaWxpdHkgZ3VhcmFudGVlcyB0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AAAAAAAGAAAAAAAAABJJbnN1ZmZpY2llbnRacm9GZWUAAAAAAAcAAAAAAAAAEEludmFsaWRGZWVBbW91bnQAAAAIAAAAAAAAAA1JbnZhbGlkRXhwaXJ5AAAAAAAACQAAAAAAAAAMSW52YWxpZEluZGV4AAAACgAAAAAAAAAMSW52YWxpZE5vbmNlAAAACwAAAAAAAAASSW52YWxpZFBheWxvYWRIYXNoAAAAAAAMAAAAAAAAABVJbnZhbGlkUmVjZWl2ZUxpYnJhcnkAAAAAAAANAAAAAAAAABFPbmx5Tm9uRGVmYXVsdExpYgAAAAAAAA4AAAAAAAAADk9ubHlSZWNlaXZlTGliAAAAAAAPAAAAAAAAABFPbmx5UmVnaXN0ZXJlZExpYgAAAAAAABAAAAAAAAAAC09ubHlTZW5kTGliAAAAABEAAAAAAAAAFFBhdGhOb3RJbml0aWFsaXphYmxlAAAAEgAAAAAAAAARUGF0aE5vdFZlcmlmaWFibGUAAAAAAAATAAAAAAAAABNQYXlsb2FkSGFzaE5vdEZvdW5kAAAAABQAAAAAAAAACVNhbWVWYWx1ZQAAAAAAABUAAAAAAAAADFVuYXV0aG9yaXplZAAAABYAAAAAAAAADlVuc3VwcG9ydGVkRWlkAAAAAAAXAAAAAAAAAApaZXJvWnJvRmVlAAAAAAAYAAAAAAAAAA5acm9VbmF2YWlsYWJsZQAAAAAAGQAAAAEAAAAtUGFyYW1ldGVycyBmb3Igc2VuZGluZyBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuAAAAAAAAAAAAAA9NZXNzYWdpbmdQYXJhbXMAAAAABQAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAcVGhlIG1lc3NhZ2UgcGF5bG9hZCB0byBzZW5kLgAAAAdtZXNzYWdlAAAAAA4AAAAhRW5jb2RlZCBleGVjdXRvciBhbmQgRFZOIG9wdGlvbnMuAAAAAAAAB29wdGlvbnMAAAAADgAAADlXaGV0aGVyIHRvIHBheSBmZWVzIGluIFpSTyB0b2tlbiBpbnN0ZWFkIG9mIG5hdGl2ZSB0b2tlbi4AAAAAAAAKcGF5X2luX3pybwAAAAAAAQAAADVSZWNlaXZlciBhZGRyZXNzIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAAQAAAE1Tb3VyY2UgbWVzc2FnZSBpbmZvcm1hdGlvbiBpZGVudGlmeWluZyB3aGVyZSBhIGNyb3NzLWNoYWluIG1lc3NhZ2UgY2FtZSBmcm9tLgAAAAAAAAAAAAAGT3JpZ2luAAAAAAADAAAAF05vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAAAAVub25jZQAAAAAAAAYAAAAuU2VuZGVyIGFkZHJlc3Mgb24gdGhlIHNvdXJjZSBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAABnNlbmRlcgAAAAAD7gAAACAAAAAmU291cmNlIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAKEZlZSBzdHJ1Y3R1cmUgZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2luZy4AAAAAAAAADE1lc3NhZ2luZ0ZlZQAAAAIAAAAfRmVlIHBhaWQgaW4gbmF0aXZlIHRva2VuIChYTE0pLgAAAAAKbmF0aXZlX2ZlZQAAAAAACwAAAChGZWUgcGFpZCBpbiBaUk8gdG9rZW4gKExheWVyWmVybyB0b2tlbikuAAAAB3pyb19mZWUAAAAACwAAAAEAAABCUmVjZWlwdCByZXR1cm5lZCBhZnRlciBzdWNjZXNzZnVsbHkgc2VuZGluZyBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuAAAAAAAAAAAAEE1lc3NhZ2luZ1JlY2VpcHQAAAADAAAAKVRoZSBmZWVzIGNoYXJnZWQgZm9yIHNlbmRpbmcgdGhlIG1lc3NhZ2UuAAAAAAAAA2ZlZQAAAAfQAAAADE1lc3NhZ2luZ0ZlZQAAACtHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIG1lc3NhZ2UuAAAAAARndWlkAAAD7gAAACAAAAAkVGhlIG91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAAAIAAAA4VHlwZSBvZiBtZXNzYWdlIGxpYnJhcnkgaW5kaWNhdGluZyBzdXBwb3J0ZWQgb3BlcmF0aW9ucy4AAAAAAAAADk1lc3NhZ2VMaWJUeXBlAAAAAAADAAAAAAAAAB9TdXBwb3J0cyBvbmx5IHNlbmRpbmcgbWVzc2FnZXMuAAAAAARTZW5kAAAAAAAAACFTdXBwb3J0cyBvbmx5IHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAHUmVjZWl2ZQAAAAAAAAAALVN1cHBvcnRzIGJvdGggc2VuZGluZyBhbmQgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAA5TZW5kQW5kUmVjZWl2ZQAAAAAAAQAAALdWZXJzaW9uIGluZm9ybWF0aW9uIGZvciBhIG1lc3NhZ2UgbGlicmFyeS4KCk5vdGU6IGBtaW5vcmAgYW5kIGBlbmRwb2ludF92ZXJzaW9uYCB1c2UgYHUzMmAgaW5zdGVhZCBvZiBgdThgIGJlY2F1c2UgU3RlbGxhciBkb2VzIG5vdApzdXBwb3J0IGB1OGAgdHlwZXMgaW4gY29udHJhY3QgaW50ZXJmYWNlIGZ1bmN0aW9ucy4AAAAAAAAAABFNZXNzYWdlTGliVmVyc2lvbgAAAAAAAAMAAAAzRW5kcG9pbnQgdmVyc2lvbiAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAABBlbmRwb2ludF92ZXJzaW9uAAAABAAAABVNYWpvciB2ZXJzaW9uIG51bWJlci4AAAAAAAAFbWFqb3IAAAAAAAAGAAAAN01pbm9yIHZlcnNpb24gbnVtYmVyIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAABW1pbm9yAAAAAAAABAAAAAEAAAA2VGltZW91dCBjb25maWd1cmF0aW9uIGZvciByZWNlaXZlIGxpYnJhcnkgdHJhbnNpdGlvbnMuAAAAAAAAAAAAB1RpbWVvdXQAAAAAAgAAAChVbml4IHRpbWVzdGFtcCB3aGVuIHRoZSB0aW1lb3V0IGV4cGlyZXMuAAAABmV4cGlyeQAAAAAABgAAAClUaGUgbmV3IGxpYnJhcnkgYWRkcmVzcyB0byB0cmFuc2l0aW9uIHRvLgAAAAAAAANsaWIAAAAAEwAAAAEAAAA1UGFyYW1ldGVycyBmb3Igc2V0dGluZyBtZXNzYWdlIGxpYnJhcnkgY29uZmlndXJhdGlvbi4AAAAAAAAAAAAADlNldENvbmZpZ1BhcmFtAAAAAAADAAAAH1hEUi1lbmNvZGVkIGNvbmZpZ3VyYXRpb24gZGF0YS4AAAAABmNvbmZpZwAAAAAADgAAADBUaGUgdHlwZSBvZiBjb25maWd1cmF0aW9uIChlLmcuLCBleGVjdXRvciwgVUxOKS4AAAALY29uZmlnX3R5cGUAAAAABAAAACdUaGUgZW5kcG9pbnQgSUQgdGhpcyBjb25maWcgYXBwbGllcyB0by4AAAAAA2VpZAAAAAAEAAAAAQAAADFSZXNvbHZlZCBsaWJyYXJ5IGluZm9ybWF0aW9uIHdpdGggZGVmYXVsdCBzdGF0dXMuAAAAAAAAAAAAAA9SZXNvbHZlZExpYnJhcnkAAAAAAgAAAERXaGV0aGVyIHRoaXMgaXMgdGhlIGRlZmF1bHQgbGlicmFyeSAodHJ1ZSkgb3IgT0FwcC1zcGVjaWZpYyAoZmFsc2UpLgAAAAppc19kZWZhdWx0AAAAAAABAAAAHVRoZSByZXNvbHZlZCBsaWJyYXJ5IGFkZHJlc3MuAAAAAAAAA2xpYgAAAAATAAAAAQAAAEhPdXRib3VuZCBwYWNrZXQgY29udGFpbmluZyBhbGwgaW5mb3JtYXRpb24gZm9yIGNyb3NzLWNoYWluIHRyYW5zbWlzc2lvbi4AAAAAAAAADk91dGJvdW5kUGFja2V0AAAAAAAHAAAAGERlc3RpbmF0aW9uIGVuZHBvaW50IElELgAAAAdkc3RfZWlkAAAAAAQAAAAsR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgbWVzc2FnZS4AAAAEZ3VpZAAAA+4AAAAgAAAAFFRoZSBtZXNzYWdlIHBheWxvYWQuAAAAB21lc3NhZ2UAAAAADgAAACBPdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAAxUmVjZWl2ZXIgYWRkcmVzcyBvbiBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAH1NlbmRlciBhZGRyZXNzIG9uIHNvdXJjZSBjaGFpbi4AAAAABnNlbmRlcgAAAAAAEwAAABNTb3VyY2UgZW5kcG9pbnQgSUQuAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAK0EgZmVlIHJlY2lwaWVudCB3aXRoIHRoZSBhbW91bnQgdG8gYmUgcGFpZC4AAAAAAAAAAAxGZWVSZWNpcGllbnQAAAACAAAAFUFtb3VudCBvZiBmZWUgdG8gcGF5LgAAAAAAAAZhbW91bnQAAAAAAAsAAAAfVGhlIGFkZHJlc3MgdG8gc2VuZCB0aGUgZmVlIHRvLgAAAAACdG8AAAAAABMAAAABAAAAPFJlc3VsdCBvZiBzZW5kIG9wZXJhdGlvbiBjb250YWluaW5nIGZlZXMgYW5kIGVuY29kZWQgcGFja2V0LgAAAAAAAAANRmVlc0FuZFBhY2tldAAAAAAAAAMAAAAqVGhlIGVuY29kZWQgcGFja2V0IHJlYWR5IGZvciB0cmFuc21pc3Npb24uAAAAAAAOZW5jb2RlZF9wYWNrZXQAAAAAAA4AAAA/TGlzdCBvZiBuYXRpdmUgdG9rZW4gZmVlIHJlY2lwaWVudHMgKGV4ZWN1dG9yLCBEVk5zLCB0cmVhc3VyeSkuAAAAABVuYXRpdmVfZmVlX3JlY2lwaWVudHMAAAAAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAsTGlzdCBvZiBaUk8gdG9rZW4gZmVlIHJlY2lwaWVudHMgKHRyZWFzdXJ5KS4AAAASenJvX2ZlZV9yZWNpcGllbnRzAAAAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAABAAAA4VBhcmFtZXRlcnMgZm9yIERWTiBmZWUgY2FsY3VsYXRpb24uCgpDb250YWlucyBhbGwgaW5wdXRzIG5lZWRlZCBieSB0aGUgZmVlIGxpYnJhcnkgdG8gY2FsY3VsYXRlIHZlcmlmaWNhdGlvbiBmZWVzCmZvciBjcm9zcy1jaGFpbiBtZXNzYWdlcy4gSW5jbHVkZXMgbWVzc2FnZSBwYXJhbWV0ZXJzLCBjb21tb24gY29uZmlndXJhdGlvbiwKYW5kIGRlc3RpbmF0aW9uLXNwZWNpZmljIHNldHRpbmdzLgAAAAAAAAAAAAAMRHZuRmVlUGFyYW1zAAAACgAAACdOdW1iZXIgb2YgYmxvY2sgY29uZmlybWF0aW9ucyByZXF1aXJlZC4AAAAADWNvbmZpcm1hdGlvbnMAAAAAAAAGAAAATERlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICh1c2VkIGlmIG5vIGRzdC1zcGVjaWZpYyBtdWx0aXBsaWVyKS4AAAAWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAABAAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAjTWluaW11bSBmZWUgbWFyZ2luIGluIFVTRCAoc2NhbGVkKS4AAAAAEGZsb29yX21hcmdpbl91c2QAAAAKAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkRlc3RpbmF0aW9uLVNwZWNpZmljIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KR2FzIGVzdGltYXRlIGZvciB2ZXJpZmljYXRpb24gb24gZGVzdGluYXRpb24gY2hhaW4uAAAAA2dhcwAAAAAKAAAARkRlc3RpbmF0aW9uLXNwZWNpZmljIGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAoMCA9IHVzZSBkZWZhdWx0KS4AAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAAAtEVk4gb3B0aW9ucwAAAAAHb3B0aW9ucwAAAAAOAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNvbW1vbiBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcyBmb3IgZ2FzIHByaWNlIGFuZCBleGNoYW5nZSByYXRlIGRhdGEuAAAACnByaWNlX2ZlZWQAAAAAABMAAAAnTnVtYmVyIG9mIHJlcXVpcmVkIHNpZ25hdHVyZXMgKHF1b3J1bSkuAAAAAAZxdW9ydW0AAAAAAAQAAADlPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KTWVzc2FnZSBQYXJhbWV0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBPQXBwIHNlbmRlciBhZGRyZXNzLgAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAA41BhcmFtZXRlcnMgZm9yIGV4ZWN1dG9yIGZlZSBjYWxjdWxhdGlvbi4KCkNvbnRhaW5zIGFsbCBpbnB1dHMgbmVlZGVkIGJ5IHRoZSBmZWUgbGlicmFyeSB0byBjYWxjdWxhdGUgZXhlY3V0aW9uIGZlZXMKZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2VzLiBJbmNsdWRlcyBtZXNzYWdlIHBhcmFtZXRlcnMsIGNvbW1vbiBjb25maWd1cmF0aW9uLAphbmQgZGVzdGluYXRpb24tc3BlY2lmaWMgc2V0dGluZ3MuAAAAAAAAAAAJRmVlUGFyYW1zAAAAAAAACwAAACZTaXplIG9mIHRoZSBtZXNzYWdlIGNhbGxkYXRhIGluIGJ5dGVzLgAAAAAADWNhbGxkYXRhX3NpemUAAAAAAAAEAAAATERlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICh1c2VkIGlmIG5vIGRzdC1zcGVjaWZpYyBtdWx0aXBsaWVyKS4AAAAWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAABAAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAjTWluaW11bSBmZWUgbWFyZ2luIGluIFVTRCAoc2NhbGVkKS4AAAAAEGZsb29yX21hcmdpbl91c2QAAAAKAAAANkJhc2UgZ2FzIGZvciBlYWNoIGx6Q29tcG9zZSBjYWxsIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAAAAE2x6X2NvbXBvc2VfYmFzZV9nYXMAAAAABgAAARM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpEZXN0aW5hdGlvbi1TcGVjaWZpYyBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkJhc2UgZ2FzIGZvciBselJlY2VpdmUgZXhlY3V0aW9uIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAAATbHpfcmVjZWl2ZV9iYXNlX2dhcwAAAAAGAAAARkRlc3RpbmF0aW9uLXNwZWNpZmljIGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAoMCA9IHVzZSBkZWZhdWx0KS4AAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAACxNYXhpbXVtIG5hdGl2ZSB0b2tlbiB2YWx1ZSB0aGF0IGNhbiBiZSBzZW50LgAAAApuYXRpdmVfY2FwAAAAAAAKAAAARkVuY29kZWQgZXhlY3V0b3Igb3B0aW9ucyAobHpSZWNlaXZlIGdhcywgbHpDb21wb3NlLCBuYXRpdmVEcm9wLCBldGMuKS4AAAAAAAdvcHRpb25zAAAAAA4AAAEQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ29tbW9uIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzIGZvciBnYXMgcHJpY2UgYW5kIGV4Y2hhbmdlIHJhdGUgZGF0YS4AAAAKcHJpY2VfZmVlZAAAAAAAEwAAAOU9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpNZXNzYWdlIFBhcmFtZXRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhlIE9BcHAgc2VuZGVyIGFkZHJlc3MuAAAAAAAABnNlbmRlcgAAAAAAEwAAAAEAAACER2FzIHByaWNlIGluZm9ybWF0aW9uIGZvciBhIGRlc3RpbmF0aW9uIGVuZHBvaW50LgoKQ29udGFpbnMgdGhlIGV4Y2hhbmdlIHJhdGUgYW5kIGdhcyBjb3N0cyBuZWVkZWQgZm9yIGNyb3NzLWNoYWluIGZlZSBjYWxjdWxhdGlvbnMuAAAAAAAAAAVQcmljZQAAAAAAAAMAAAA3R2FzIGNvc3QgcGVyIGJ5dGUgb2YgY2FsbGRhdGEgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLgAAAAAMZ2FzX3Blcl9ieXRlAAAABAAAAEJHYXMgcHJpY2UgaW4gdGhlIHNtYWxsZXN0IHVuaXQgKHdlaSBmb3IgRVZNLCBzdHJvb3BzIGZvciBTdGVsbGFyKS4AAAAAABFnYXNfcHJpY2VfaW5fdW5pdAAAAAAAAAYAAACpUHJpY2UgcmF0aW8gPSAocmVtb3RlIG5hdGl2ZSB0b2tlbiBwcmljZSAvIGxvY2FsIG5hdGl2ZSB0b2tlbiBwcmljZSkgKiBQUklDRV9SQVRJT19ERU5PTUlOQVRPUi4KVXNlZCB0byBjb252ZXJ0IGRlc3RpbmF0aW9uIGNoYWluIGdhcyBjb3N0cyB0byBzb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuLgAAAAAAAAtwcmljZV9yYXRpbwAAAAAKAAAAAQAAAIBGZWUgZXN0aW1hdGlvbiByZXN1bHQgd2l0aCBkZXRhaWxlZCBicmVha2Rvd24uCgpDb250YWlucyB0aGUgY2FsY3VsYXRlZCBmZWUgYW5kIGFsbCBpbnRlcm1lZGlhdGUgdmFsdWVzIHVzZWQgaW4gdGhlIGNhbGN1bGF0aW9uLgAAAAAAAAALRmVlRXN0aW1hdGUAAAAABAAAADBTb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuIHByaWNlIGluIFVTRCAoc2NhbGVkKS4AAAAQbmF0aXZlX3ByaWNlX3VzZAAAAAoAAAAlUHJpY2UgcmF0aW8gdXNlZCBmb3IgdGhlIGNhbGN1bGF0aW9uLgAAAAAAAAtwcmljZV9yYXRpbwAAAAAKAAAAMkRlbm9taW5hdG9yIGZvciB0aGUgcHJpY2UgcmF0aW8gKHR5cGljYWxseSAxMF4yMCkuAAAAAAAXcHJpY2VfcmF0aW9fZGVub21pbmF0b3IAAAAACgAAADFUb3RhbCBnYXMgZmVlIGluIHNvdXJjZSBjaGFpbiBuYXRpdmUgdG9rZW4gdW5pdHMuAAAAAAAADXRvdGFsX2dhc19mZWUAAAAAAAALAAAABAAAAB1QYWNrZXRDb2RlY1YxRXJyb3I6IDExMDAtMTEwOQAAAAAAAAAAAAASUGFja2V0Q29kZWNWMUVycm9yAAAAAAACAAAAAAAAABNJbnZhbGlkUGFja2V0SGVhZGVyAAAABEwAAAAAAAAAFEludmFsaWRQYWNrZXRWZXJzaW9uAAAETQAAAAQAAAAdV29ya2VyT3B0aW9uc0Vycm9yOiAxMTEwLTExMTkAAAAAAAAAAAAAEldvcmtlck9wdGlvbnNFcnJvcgAAAAAACQAAAAAAAAASSW52YWxpZEJ5dGVzTGVuZ3RoAAAAAARWAAAAAAAAABlJbnZhbGlkTGVnYWN5T3B0aW9uc1R5cGUxAAAAAAAEVwAAAAAAAAAZSW52YWxpZExlZ2FjeU9wdGlvbnNUeXBlMgAAAAAABFgAAAAAAAAAEUludmFsaWRPcHRpb25UeXBlAAAAAAAEWQAAAAAAAAAOSW52YWxpZE9wdGlvbnMAAAAABFoAAAAAAAAAD0ludmFsaWRXb3JrZXJJZAAAAARbAAAAAAAAAB1MZWdhY3lPcHRpb25zVHlwZTFHYXNPdmVyZmxvdwAAAAAABFwAAAAAAAAAIExlZ2FjeU9wdGlvbnNUeXBlMkFtb3VudE92ZXJmbG93AAAEXQAAAAAAAAAdTGVnYWN5T3B0aW9uc1R5cGUyR2FzT3ZlcmZsb3cAAAAAAAReAAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPpAAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/IAAAAEAAAAH1R0bENvbmZpZ3VyYWJsZUVycm9yOiAxMDIwLTEwMjkAAAAAAAAAABRUdGxDb25maWd1cmFibGVFcnJvcgAAAAMAAAAAAAAAEEludmFsaWRUdGxDb25maWcAAAP8AAAAAAAAAA9UdGxDb25maWdGcm96ZW4AAAAD/QAAAAAAAAAWVHRsQ29uZmlnQWxyZWFkeUZyb3plbgAAAAAD/gAAAAQAAAAXT3duYWJsZUVycm9yOiAxMDMwLTEwMzkAAAAAAAAAAAxPd25hYmxlRXJyb3IAAAAGAAAAAAAAABNJbnZhbGlkUGVuZGluZ093bmVyAAAABAYAAAAAAAAACkludmFsaWRUdGwAAAAABAcAAAAAAAAAEU5vUGVuZGluZ1RyYW5zZmVyAAAAAAAECAAAAAAAAAAPT3duZXJBbHJlYWR5U2V0AAAABAkAAAAAAAAAC093bmVyTm90U2V0AAAABAoAAAAAAAAAElRyYW5zZmVySW5Qcm9ncmVzcwAAAAAECwAAAAQAAAAYQnl0ZXNFeHRFcnJvcjogMTA0MC0xMDQ5AAAAAAAAAA1CeXRlc0V4dEVycm9yAAAAAAAAAQAAAAAAAAAOTGVuZ3RoTWlzbWF0Y2gAAAAABBAAAAAEAAAAG1VwZ3JhZGVhYmxlRXJyb3I6IDEwNTAtMTA1OQAAAAAAAAAAEFVwZ3JhZGVhYmxlRXJyb3IAAAADAAAAAAAAABRJbnZhbGlkTWlncmF0aW9uRGF0YQAABBoAAAAAAAAAE01pZ3JhdGlvbk5vdEFsbG93ZWQAAAAEGwAAAAAAAAAOVXBncmFkZXNGcm96ZW4AAAAABBwAAAAEAAAAGE11bHRpc2lnRXJyb3I6IDEwNjAtMTA2OQAAAAAAAAANTXVsdGlzaWdFcnJvcgAAAAAAAAgAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAEJAAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCUAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQmAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCcAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQoAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCkAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQqAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAEKwAAAAUAAAAwRXZlbnQgZW1pdHRlZCB3aGVuIGEgc2lnbmVyIGlzIGFkZGVkIG9yIHJlbW92ZWQuAAAAAAAAAAlTaWduZXJTZXQAAAAAAAABAAAACnNpZ25lcl9zZXQAAAAAAAIAAAAAAAAABnNpZ25lcgAAAAAD7gAAABQAAAABAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAgAAAAUAAAA2RXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIGlzIGNoYW5nZWQuAAAAAAAAAAAADFRocmVzaG9sZFNldAAAAAEAAAANdGhyZXNob2xkX3NldAAAAAAAAAEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA9NdWx0aXNpZ1N0b3JhZ2UAAAAAAgAAAAAAAAAAAAAAB1NpZ25lcnMAAAAAAAAAAAAAAAAJVGhyZXNob2xkAAAAAAAABQAAAFdFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIChib3RoIHNpbmdsZS1zdGVwIGFuZCB0d28tc3RlcCBjb21wbGV0aW9uKS4AAAAAAAAAABRPd25lcnNoaXBUcmFuc2ZlcnJlZAAAAAEAAAAVb3duZXJzaGlwX3RyYW5zZmVycmVkAAAAAAAAAgAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAgAAAAUAAAA7RXZlbnQgZW1pdHRlZCB3aGVuIGEgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2ZlciBpcyBwcm9wb3NlZC4AAAAAAAAAABVPd25lcnNoaXBUcmFuc2ZlcnJpbmcAAAAAAAABAAAAFm93bmVyc2hpcF90cmFuc2ZlcnJpbmcAAAAAAAMAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyByZW5vdW5jZWQuAAAAAAAAAAAAEk93bmVyc2hpcFJlbm91bmNlZAAAAAAAAQAAABNvd25lcnNoaXBfcmVub3VuY2VkAAAAAAEAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA5Pd25hYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABU93bmVyAAAAAAAAAAAAAAAAAAAMUGVuZGluZ093bmVyAAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQAAAAFAAAAJ0V2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgc2V0LgAAAAAAAAAADVR0bENvbmZpZ3NTZXQAAAAAAAABAAAAD3R0bF9jb25maWdzX3NldAAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAACnBl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";
|
|
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 = "
|
|
16
|
+
export declare const WASM_HASH = "58784606010f24b0342599b3f6f0da7c5a0ed3254c26bdc4d64b51e71c213368";
|
|
18
17
|
/**
|
|
19
18
|
* Get the WASM bytecode as a Buffer
|
|
20
19
|
* Use this to upload the WASM to the network
|
|
@@ -39,10 +38,38 @@ export declare const DvnError: {
|
|
|
39
38
|
6: {
|
|
40
39
|
message: string;
|
|
41
40
|
};
|
|
42
|
-
7: {
|
|
43
|
-
message: string;
|
|
44
|
-
};
|
|
45
41
|
};
|
|
42
|
+
export type Sender = {
|
|
43
|
+
tag: "None";
|
|
44
|
+
values: void;
|
|
45
|
+
} | {
|
|
46
|
+
tag: "Admin";
|
|
47
|
+
values: readonly [Buffer, Buffer];
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Authentication data for DVN contract transactions.
|
|
51
|
+
*
|
|
52
|
+
* This struct is used with Soroban's custom account interface to authorize
|
|
53
|
+
* transactions through a combination of admin signature and multisig quorum.
|
|
54
|
+
*/
|
|
55
|
+
export interface TransactionAuthData {
|
|
56
|
+
/**
|
|
57
|
+
* Expiration timestamp (ledger time) after which this auth is invalid.
|
|
58
|
+
*/
|
|
59
|
+
expiration: u64;
|
|
60
|
+
/**
|
|
61
|
+
* Entity submitting the transaction (admin, or permissionless).
|
|
62
|
+
*/
|
|
63
|
+
sender: Sender;
|
|
64
|
+
/**
|
|
65
|
+
* Signatures from multisig signers (secp256k1, 65 bytes each).
|
|
66
|
+
*/
|
|
67
|
+
signatures: Array<Buffer>;
|
|
68
|
+
/**
|
|
69
|
+
* Verifier ID - must match the DVN's configured VID.
|
|
70
|
+
*/
|
|
71
|
+
vid: u32;
|
|
72
|
+
}
|
|
46
73
|
/**
|
|
47
74
|
* Configuration for a destination chain.
|
|
48
75
|
*
|
|
@@ -95,37 +122,6 @@ export interface Call {
|
|
|
95
122
|
*/
|
|
96
123
|
to: string;
|
|
97
124
|
}
|
|
98
|
-
/**
|
|
99
|
-
* Authentication data for DVN contract transactions.
|
|
100
|
-
*
|
|
101
|
-
* This struct is used with Soroban's custom account interface to authorize
|
|
102
|
-
* transactions through a combination of admin signature and multisig quorum.
|
|
103
|
-
*/
|
|
104
|
-
export interface TransactionAuthData {
|
|
105
|
-
/**
|
|
106
|
-
* Expiration timestamp (ledger time) after which this auth is invalid.
|
|
107
|
-
*/
|
|
108
|
-
expiration: u64;
|
|
109
|
-
/**
|
|
110
|
-
* Entity submitting the transaction (admin, or permissionless).
|
|
111
|
-
*/
|
|
112
|
-
sender: Sender;
|
|
113
|
-
/**
|
|
114
|
-
* Signatures from multisig signers (secp256k1, 65 bytes each).
|
|
115
|
-
*/
|
|
116
|
-
signatures: Array<Buffer>;
|
|
117
|
-
/**
|
|
118
|
-
* Verifier ID - must match the DVN's configured VID.
|
|
119
|
-
*/
|
|
120
|
-
vid: u32;
|
|
121
|
-
}
|
|
122
|
-
export type Sender = {
|
|
123
|
-
tag: "None";
|
|
124
|
-
values: void;
|
|
125
|
-
} | {
|
|
126
|
-
tag: "Admin";
|
|
127
|
-
values: readonly [Buffer, Buffer];
|
|
128
|
-
};
|
|
129
125
|
export type DvnStorage = {
|
|
130
126
|
tag: "Vid";
|
|
131
127
|
values: void;
|
|
@@ -424,6 +420,169 @@ export interface FeesAndPacket {
|
|
|
424
420
|
*/
|
|
425
421
|
zro_fee_recipients: Array<FeeRecipient>;
|
|
426
422
|
}
|
|
423
|
+
/**
|
|
424
|
+
* Parameters for DVN fee calculation.
|
|
425
|
+
*
|
|
426
|
+
* Contains all inputs needed by the fee library to calculate verification fees
|
|
427
|
+
* for cross-chain messages. Includes message parameters, common configuration,
|
|
428
|
+
* and destination-specific settings.
|
|
429
|
+
*/
|
|
430
|
+
export interface DvnFeeParams {
|
|
431
|
+
/**
|
|
432
|
+
* Number of block confirmations required.
|
|
433
|
+
*/
|
|
434
|
+
confirmations: u64;
|
|
435
|
+
/**
|
|
436
|
+
* Default fee multiplier in basis points (used if no dst-specific multiplier).
|
|
437
|
+
*/
|
|
438
|
+
default_multiplier_bps: u32;
|
|
439
|
+
/**
|
|
440
|
+
* Destination endpoint ID (chain identifier).
|
|
441
|
+
*/
|
|
442
|
+
dst_eid: u32;
|
|
443
|
+
/**
|
|
444
|
+
* Minimum fee margin in USD (scaled).
|
|
445
|
+
*/
|
|
446
|
+
floor_margin_usd: u128;
|
|
447
|
+
/**
|
|
448
|
+
* ============================================================================================
|
|
449
|
+
* Destination-Specific Configuration
|
|
450
|
+
* ============================================================================================
|
|
451
|
+
* Gas estimate for verification on destination chain.
|
|
452
|
+
*/
|
|
453
|
+
gas: u128;
|
|
454
|
+
/**
|
|
455
|
+
* Destination-specific fee multiplier in basis points (0 = use default).
|
|
456
|
+
*/
|
|
457
|
+
multiplier_bps: u32;
|
|
458
|
+
/**
|
|
459
|
+
* DVN options
|
|
460
|
+
*/
|
|
461
|
+
options: Buffer;
|
|
462
|
+
/**
|
|
463
|
+
* ============================================================================================
|
|
464
|
+
* Common Configuration
|
|
465
|
+
* ============================================================================================
|
|
466
|
+
* Price feed contract address for gas price and exchange rate data.
|
|
467
|
+
*/
|
|
468
|
+
price_feed: string;
|
|
469
|
+
/**
|
|
470
|
+
* Number of required signatures (quorum).
|
|
471
|
+
*/
|
|
472
|
+
quorum: u32;
|
|
473
|
+
/**
|
|
474
|
+
* ============================================================================================
|
|
475
|
+
* Message Parameters
|
|
476
|
+
* ============================================================================================
|
|
477
|
+
* The OApp sender address.
|
|
478
|
+
*/
|
|
479
|
+
sender: string;
|
|
480
|
+
}
|
|
481
|
+
/**
|
|
482
|
+
* Parameters for executor fee calculation.
|
|
483
|
+
*
|
|
484
|
+
* Contains all inputs needed by the fee library to calculate execution fees
|
|
485
|
+
* for cross-chain messages. Includes message parameters, common configuration,
|
|
486
|
+
* and destination-specific settings.
|
|
487
|
+
*/
|
|
488
|
+
export interface FeeParams {
|
|
489
|
+
/**
|
|
490
|
+
* Size of the message calldata in bytes.
|
|
491
|
+
*/
|
|
492
|
+
calldata_size: u32;
|
|
493
|
+
/**
|
|
494
|
+
* Default fee multiplier in basis points (used if no dst-specific multiplier).
|
|
495
|
+
*/
|
|
496
|
+
default_multiplier_bps: u32;
|
|
497
|
+
/**
|
|
498
|
+
* Destination endpoint ID (chain identifier).
|
|
499
|
+
*/
|
|
500
|
+
dst_eid: u32;
|
|
501
|
+
/**
|
|
502
|
+
* Minimum fee margin in USD (scaled).
|
|
503
|
+
*/
|
|
504
|
+
floor_margin_usd: u128;
|
|
505
|
+
/**
|
|
506
|
+
* Base gas for each lzCompose call on destination chain.
|
|
507
|
+
*/
|
|
508
|
+
lz_compose_base_gas: u64;
|
|
509
|
+
/**
|
|
510
|
+
* ============================================================================================
|
|
511
|
+
* Destination-Specific Configuration
|
|
512
|
+
* ============================================================================================
|
|
513
|
+
* Base gas for lzReceive execution on destination chain.
|
|
514
|
+
*/
|
|
515
|
+
lz_receive_base_gas: u64;
|
|
516
|
+
/**
|
|
517
|
+
* Destination-specific fee multiplier in basis points (0 = use default).
|
|
518
|
+
*/
|
|
519
|
+
multiplier_bps: u32;
|
|
520
|
+
/**
|
|
521
|
+
* Maximum native token value that can be sent.
|
|
522
|
+
*/
|
|
523
|
+
native_cap: u128;
|
|
524
|
+
/**
|
|
525
|
+
* Encoded executor options (lzReceive gas, lzCompose, nativeDrop, etc.).
|
|
526
|
+
*/
|
|
527
|
+
options: Buffer;
|
|
528
|
+
/**
|
|
529
|
+
* ============================================================================================
|
|
530
|
+
* Common Configuration
|
|
531
|
+
* ============================================================================================
|
|
532
|
+
* Price feed contract address for gas price and exchange rate data.
|
|
533
|
+
*/
|
|
534
|
+
price_feed: string;
|
|
535
|
+
/**
|
|
536
|
+
* ============================================================================================
|
|
537
|
+
* Message Parameters
|
|
538
|
+
* ============================================================================================
|
|
539
|
+
* The OApp sender address.
|
|
540
|
+
*/
|
|
541
|
+
sender: string;
|
|
542
|
+
}
|
|
543
|
+
/**
|
|
544
|
+
* Gas price information for a destination endpoint.
|
|
545
|
+
*
|
|
546
|
+
* Contains the exchange rate and gas costs needed for cross-chain fee calculations.
|
|
547
|
+
*/
|
|
548
|
+
export interface Price {
|
|
549
|
+
/**
|
|
550
|
+
* Gas cost per byte of calldata on the destination chain.
|
|
551
|
+
*/
|
|
552
|
+
gas_per_byte: u32;
|
|
553
|
+
/**
|
|
554
|
+
* Gas price in the smallest unit (wei for EVM, stroops for Stellar).
|
|
555
|
+
*/
|
|
556
|
+
gas_price_in_unit: u64;
|
|
557
|
+
/**
|
|
558
|
+
* Price ratio = (remote native token price / local native token price) * PRICE_RATIO_DENOMINATOR.
|
|
559
|
+
* Used to convert destination chain gas costs to source chain native token.
|
|
560
|
+
*/
|
|
561
|
+
price_ratio: u128;
|
|
562
|
+
}
|
|
563
|
+
/**
|
|
564
|
+
* Fee estimation result with detailed breakdown.
|
|
565
|
+
*
|
|
566
|
+
* Contains the calculated fee and all intermediate values used in the calculation.
|
|
567
|
+
*/
|
|
568
|
+
export interface FeeEstimate {
|
|
569
|
+
/**
|
|
570
|
+
* Source chain native token price in USD (scaled).
|
|
571
|
+
*/
|
|
572
|
+
native_price_usd: u128;
|
|
573
|
+
/**
|
|
574
|
+
* Price ratio used for the calculation.
|
|
575
|
+
*/
|
|
576
|
+
price_ratio: u128;
|
|
577
|
+
/**
|
|
578
|
+
* Denominator for the price ratio (typically 10^20).
|
|
579
|
+
*/
|
|
580
|
+
price_ratio_denominator: u128;
|
|
581
|
+
/**
|
|
582
|
+
* Total gas fee in source chain native token units.
|
|
583
|
+
*/
|
|
584
|
+
total_gas_fee: i128;
|
|
585
|
+
}
|
|
427
586
|
/**
|
|
428
587
|
* PacketCodecV1Error: 1100-1109
|
|
429
588
|
*/
|
|
@@ -538,6 +697,12 @@ export declare const UpgradeableError: {
|
|
|
538
697
|
1050: {
|
|
539
698
|
message: string;
|
|
540
699
|
};
|
|
700
|
+
1051: {
|
|
701
|
+
message: string;
|
|
702
|
+
};
|
|
703
|
+
1052: {
|
|
704
|
+
message: string;
|
|
705
|
+
};
|
|
541
706
|
};
|
|
542
707
|
/**
|
|
543
708
|
* MultisigError: 1060-1069
|
|
@@ -606,6 +771,9 @@ export type TtlConfigStorage = {
|
|
|
606
771
|
values: void;
|
|
607
772
|
};
|
|
608
773
|
export type UpgradeableStorage = {
|
|
774
|
+
tag: "Frozen";
|
|
775
|
+
values: void;
|
|
776
|
+
} | {
|
|
609
777
|
tag: "Migrating";
|
|
610
778
|
values: void;
|
|
611
779
|
};
|
|
@@ -661,211 +829,39 @@ export declare const WorkerError: {
|
|
|
661
829
|
1215: {
|
|
662
830
|
message: string;
|
|
663
831
|
};
|
|
664
|
-
1216: {
|
|
665
|
-
message: string;
|
|
666
|
-
};
|
|
667
|
-
1217: {
|
|
668
|
-
message: string;
|
|
669
|
-
};
|
|
670
|
-
1218: {
|
|
671
|
-
message: string;
|
|
672
|
-
};
|
|
673
832
|
};
|
|
674
|
-
/**
|
|
675
|
-
* Parameters for DVN fee calculation.
|
|
676
|
-
*
|
|
677
|
-
* Contains all inputs needed by the fee library to calculate verification fees
|
|
678
|
-
* for cross-chain messages. Includes message parameters, common configuration,
|
|
679
|
-
* and destination-specific settings.
|
|
680
|
-
*/
|
|
681
|
-
export interface DvnFeeParams {
|
|
682
|
-
/**
|
|
683
|
-
* Number of block confirmations required.
|
|
684
|
-
*/
|
|
685
|
-
confirmations: u64;
|
|
686
|
-
/**
|
|
687
|
-
* Default fee multiplier in basis points (used if no dst-specific multiplier).
|
|
688
|
-
*/
|
|
689
|
-
default_multiplier_bps: u32;
|
|
690
|
-
/**
|
|
691
|
-
* Destination endpoint ID (chain identifier).
|
|
692
|
-
*/
|
|
693
|
-
dst_eid: u32;
|
|
694
|
-
/**
|
|
695
|
-
* Minimum fee margin in USD (scaled).
|
|
696
|
-
*/
|
|
697
|
-
floor_margin_usd: u128;
|
|
698
|
-
/**
|
|
699
|
-
* ============================================================================================
|
|
700
|
-
* Destination-Specific Configuration
|
|
701
|
-
* ============================================================================================
|
|
702
|
-
* Gas estimate for verification on destination chain.
|
|
703
|
-
*/
|
|
704
|
-
gas: u128;
|
|
705
|
-
/**
|
|
706
|
-
* Destination-specific fee multiplier in basis points (0 = use default).
|
|
707
|
-
*/
|
|
708
|
-
multiplier_bps: u32;
|
|
709
|
-
/**
|
|
710
|
-
* DVN options
|
|
711
|
-
*/
|
|
712
|
-
options: Buffer;
|
|
713
|
-
/**
|
|
714
|
-
* ============================================================================================
|
|
715
|
-
* Common Configuration
|
|
716
|
-
* ============================================================================================
|
|
717
|
-
* Price feed contract address for gas price and exchange rate data.
|
|
718
|
-
*/
|
|
719
|
-
price_feed: string;
|
|
720
|
-
/**
|
|
721
|
-
* Number of required signatures (quorum).
|
|
722
|
-
*/
|
|
723
|
-
quorum: u32;
|
|
724
|
-
/**
|
|
725
|
-
* ============================================================================================
|
|
726
|
-
* Message Parameters
|
|
727
|
-
* ============================================================================================
|
|
728
|
-
* The OApp sender address.
|
|
729
|
-
*/
|
|
730
|
-
sender: string;
|
|
731
|
-
}
|
|
732
|
-
/**
|
|
733
|
-
* Parameters for executor fee calculation.
|
|
734
|
-
*
|
|
735
|
-
* Contains all inputs needed by the fee library to calculate execution fees
|
|
736
|
-
* for cross-chain messages. Includes message parameters, common configuration,
|
|
737
|
-
* and destination-specific settings.
|
|
738
|
-
*/
|
|
739
|
-
export interface FeeParams {
|
|
740
|
-
/**
|
|
741
|
-
* Size of the message calldata in bytes.
|
|
742
|
-
*/
|
|
743
|
-
calldata_size: u32;
|
|
744
|
-
/**
|
|
745
|
-
* Default fee multiplier in basis points (used if no dst-specific multiplier).
|
|
746
|
-
*/
|
|
747
|
-
default_multiplier_bps: u32;
|
|
748
|
-
/**
|
|
749
|
-
* Destination endpoint ID (chain identifier).
|
|
750
|
-
*/
|
|
751
|
-
dst_eid: u32;
|
|
752
|
-
/**
|
|
753
|
-
* Minimum fee margin in USD (scaled).
|
|
754
|
-
*/
|
|
755
|
-
floor_margin_usd: u128;
|
|
756
|
-
/**
|
|
757
|
-
* Base gas for each lzCompose call on destination chain.
|
|
758
|
-
*/
|
|
759
|
-
lz_compose_base_gas: u64;
|
|
760
|
-
/**
|
|
761
|
-
* ============================================================================================
|
|
762
|
-
* Destination-Specific Configuration
|
|
763
|
-
* ============================================================================================
|
|
764
|
-
* Base gas for lzReceive execution on destination chain.
|
|
765
|
-
*/
|
|
766
|
-
lz_receive_base_gas: u64;
|
|
767
|
-
/**
|
|
768
|
-
* Destination-specific fee multiplier in basis points (0 = use default).
|
|
769
|
-
*/
|
|
770
|
-
multiplier_bps: u32;
|
|
771
|
-
/**
|
|
772
|
-
* Maximum native token value that can be sent.
|
|
773
|
-
*/
|
|
774
|
-
native_cap: u128;
|
|
775
|
-
/**
|
|
776
|
-
* Encoded executor options (lzReceive gas, lzCompose, nativeDrop, etc.).
|
|
777
|
-
*/
|
|
778
|
-
options: Buffer;
|
|
779
|
-
/**
|
|
780
|
-
* ============================================================================================
|
|
781
|
-
* Common Configuration
|
|
782
|
-
* ============================================================================================
|
|
783
|
-
* Price feed contract address for gas price and exchange rate data.
|
|
784
|
-
*/
|
|
785
|
-
price_feed: string;
|
|
786
|
-
/**
|
|
787
|
-
* ============================================================================================
|
|
788
|
-
* Message Parameters
|
|
789
|
-
* ============================================================================================
|
|
790
|
-
* The OApp sender address.
|
|
791
|
-
*/
|
|
792
|
-
sender: string;
|
|
793
|
-
}
|
|
794
|
-
/**
|
|
795
|
-
* Gas price information for a destination endpoint.
|
|
796
|
-
*
|
|
797
|
-
* Contains the exchange rate and gas costs needed for cross-chain fee calculations.
|
|
798
|
-
*/
|
|
799
|
-
export interface Price {
|
|
800
|
-
/**
|
|
801
|
-
* Gas cost per byte of calldata on the destination chain.
|
|
802
|
-
*/
|
|
803
|
-
gas_per_byte: u32;
|
|
804
|
-
/**
|
|
805
|
-
* Gas price in the smallest unit (wei for EVM, stroops for Stellar).
|
|
806
|
-
*/
|
|
807
|
-
gas_price_in_unit: u64;
|
|
808
|
-
/**
|
|
809
|
-
* Price ratio = (remote native token price / local native token price) * PRICE_RATIO_DENOMINATOR.
|
|
810
|
-
* Used to convert destination chain gas costs to source chain native token.
|
|
811
|
-
*/
|
|
812
|
-
price_ratio: u128;
|
|
813
|
-
}
|
|
814
|
-
/**
|
|
815
|
-
* Fee estimation result with detailed breakdown.
|
|
816
|
-
*
|
|
817
|
-
* Contains the calculated fee and all intermediate values used in the calculation.
|
|
818
|
-
*/
|
|
819
|
-
export interface FeeEstimate {
|
|
820
|
-
/**
|
|
821
|
-
* Source chain native token price in USD (scaled).
|
|
822
|
-
*/
|
|
823
|
-
native_price_usd: u128;
|
|
824
|
-
/**
|
|
825
|
-
* Price ratio used for the calculation.
|
|
826
|
-
*/
|
|
827
|
-
price_ratio: u128;
|
|
828
|
-
/**
|
|
829
|
-
* Denominator for the price ratio (typically 10^20).
|
|
830
|
-
*/
|
|
831
|
-
price_ratio_denominator: u128;
|
|
832
|
-
/**
|
|
833
|
-
* Total gas fee in source chain native token units.
|
|
834
|
-
*/
|
|
835
|
-
total_gas_fee: i128;
|
|
836
|
-
}
|
|
837
833
|
export type WorkerStorage = {
|
|
838
834
|
tag: "Paused";
|
|
839
835
|
values: void;
|
|
840
836
|
} | {
|
|
841
|
-
tag: "
|
|
837
|
+
tag: "Admins";
|
|
842
838
|
values: void;
|
|
843
839
|
} | {
|
|
844
|
-
tag: "
|
|
840
|
+
tag: "MessageLibs";
|
|
845
841
|
values: void;
|
|
846
842
|
} | {
|
|
847
|
-
tag: "
|
|
848
|
-
values:
|
|
843
|
+
tag: "Allowlist";
|
|
844
|
+
values: readonly [string];
|
|
849
845
|
} | {
|
|
850
|
-
tag: "
|
|
846
|
+
tag: "AllowlistSize";
|
|
851
847
|
values: void;
|
|
852
848
|
} | {
|
|
853
|
-
tag: "
|
|
854
|
-
values: readonly [
|
|
849
|
+
tag: "Denylist";
|
|
850
|
+
values: readonly [string];
|
|
855
851
|
} | {
|
|
856
|
-
tag: "
|
|
852
|
+
tag: "DefaultMultiplierBps";
|
|
857
853
|
values: void;
|
|
858
854
|
} | {
|
|
859
|
-
tag: "
|
|
860
|
-
values:
|
|
855
|
+
tag: "DepositAddress";
|
|
856
|
+
values: void;
|
|
861
857
|
} | {
|
|
862
|
-
tag: "
|
|
863
|
-
values: readonly [
|
|
858
|
+
tag: "SupportedOptionTypes";
|
|
859
|
+
values: readonly [u32];
|
|
864
860
|
} | {
|
|
865
|
-
tag: "
|
|
861
|
+
tag: "WorkerFeeLib";
|
|
866
862
|
values: void;
|
|
867
863
|
} | {
|
|
868
|
-
tag: "
|
|
864
|
+
tag: "PriceFeed";
|
|
869
865
|
values: void;
|
|
870
866
|
};
|
|
871
867
|
export interface Client {
|
|
@@ -895,6 +891,34 @@ export interface Client {
|
|
|
895
891
|
*/
|
|
896
892
|
simulate?: boolean;
|
|
897
893
|
}) => Promise<AssembledTransaction<null>>;
|
|
894
|
+
/**
|
|
895
|
+
* Construct and simulate a set_admin transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
896
|
+
* Sets admin status for an address.
|
|
897
|
+
*
|
|
898
|
+
* Admins can configure worker settings like fee multipliers, deposit addresses,
|
|
899
|
+
* and supported option types.
|
|
900
|
+
*
|
|
901
|
+
* # Arguments
|
|
902
|
+
* * `admin` - The address to set admin status for
|
|
903
|
+
* * `active` - `true` to add admin, `false` to remove
|
|
904
|
+
*/
|
|
905
|
+
set_admin: ({ admin, active }: {
|
|
906
|
+
admin: string;
|
|
907
|
+
active: boolean;
|
|
908
|
+
}, txnOptions?: {
|
|
909
|
+
/**
|
|
910
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
911
|
+
*/
|
|
912
|
+
fee?: number;
|
|
913
|
+
/**
|
|
914
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
915
|
+
*/
|
|
916
|
+
timeoutInSeconds?: number;
|
|
917
|
+
/**
|
|
918
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
919
|
+
*/
|
|
920
|
+
simulate?: boolean;
|
|
921
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
898
922
|
/**
|
|
899
923
|
* Construct and simulate a set_supported_message_lib transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
900
924
|
* Sets whether a message library is supported by this worker.
|
|
@@ -1042,7 +1066,7 @@ export interface Client {
|
|
|
1042
1066
|
* # Arguments
|
|
1043
1067
|
* * `admin` - Admin address (must provide authorization)
|
|
1044
1068
|
* * `eid` - Destination endpoint ID (chain identifier)
|
|
1045
|
-
* * `option_types` -
|
|
1069
|
+
* * `option_types` - Supported option types. Each byte represents an option type.
|
|
1046
1070
|
*/
|
|
1047
1071
|
set_supported_option_types: ({ admin, eid, option_types }: {
|
|
1048
1072
|
admin: string;
|
|
@@ -1118,15 +1142,10 @@ export interface Client {
|
|
|
1118
1142
|
simulate?: boolean;
|
|
1119
1143
|
}) => Promise<AssembledTransaction<null>>;
|
|
1120
1144
|
/**
|
|
1121
|
-
* Construct and simulate a
|
|
1122
|
-
* Returns whether
|
|
1123
|
-
*
|
|
1124
|
-
* # Arguments
|
|
1125
|
-
* * `admin` - The address to check
|
|
1145
|
+
* Construct and simulate a paused transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1146
|
+
* Returns whether the worker is paused.
|
|
1126
1147
|
*/
|
|
1127
|
-
|
|
1128
|
-
admin: string;
|
|
1129
|
-
}, txnOptions?: {
|
|
1148
|
+
paused: (txnOptions?: {
|
|
1130
1149
|
/**
|
|
1131
1150
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1132
1151
|
*/
|
|
@@ -1141,10 +1160,15 @@ export interface Client {
|
|
|
1141
1160
|
simulate?: boolean;
|
|
1142
1161
|
}) => Promise<AssembledTransaction<boolean>>;
|
|
1143
1162
|
/**
|
|
1144
|
-
* Construct and simulate a
|
|
1145
|
-
* Returns
|
|
1163
|
+
* Construct and simulate a is_admin transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1164
|
+
* Returns whether an address is an admin.
|
|
1165
|
+
*
|
|
1166
|
+
* # Arguments
|
|
1167
|
+
* * `admin` - The address to check
|
|
1146
1168
|
*/
|
|
1147
|
-
|
|
1169
|
+
is_admin: ({ admin }: {
|
|
1170
|
+
admin: string;
|
|
1171
|
+
}, txnOptions?: {
|
|
1148
1172
|
/**
|
|
1149
1173
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1150
1174
|
*/
|
|
@@ -1157,12 +1181,12 @@ export interface Client {
|
|
|
1157
1181
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1158
1182
|
*/
|
|
1159
1183
|
simulate?: boolean;
|
|
1160
|
-
}) => Promise<AssembledTransaction<
|
|
1184
|
+
}) => Promise<AssembledTransaction<boolean>>;
|
|
1161
1185
|
/**
|
|
1162
|
-
* Construct and simulate a
|
|
1163
|
-
* Returns
|
|
1186
|
+
* Construct and simulate a admins transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1187
|
+
* Returns all admin addresses.
|
|
1164
1188
|
*/
|
|
1165
|
-
|
|
1189
|
+
admins: (txnOptions?: {
|
|
1166
1190
|
/**
|
|
1167
1191
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1168
1192
|
*/
|
|
@@ -1175,7 +1199,7 @@ export interface Client {
|
|
|
1175
1199
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1176
1200
|
*/
|
|
1177
1201
|
simulate?: boolean;
|
|
1178
|
-
}) => Promise<AssembledTransaction<
|
|
1202
|
+
}) => Promise<AssembledTransaction<Array<string>>>;
|
|
1179
1203
|
/**
|
|
1180
1204
|
* Construct and simulate a is_supported_message_lib transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1181
1205
|
* Returns whether a message library is supported.
|
|
@@ -1243,6 +1267,24 @@ export interface Client {
|
|
|
1243
1267
|
*/
|
|
1244
1268
|
simulate?: boolean;
|
|
1245
1269
|
}) => Promise<AssembledTransaction<boolean>>;
|
|
1270
|
+
/**
|
|
1271
|
+
* Construct and simulate a allowlist_size transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1272
|
+
* Returns the number of addresses on the allowlist.
|
|
1273
|
+
*/
|
|
1274
|
+
allowlist_size: (txnOptions?: {
|
|
1275
|
+
/**
|
|
1276
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1277
|
+
*/
|
|
1278
|
+
fee?: number;
|
|
1279
|
+
/**
|
|
1280
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1281
|
+
*/
|
|
1282
|
+
timeoutInSeconds?: number;
|
|
1283
|
+
/**
|
|
1284
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1285
|
+
*/
|
|
1286
|
+
simulate?: boolean;
|
|
1287
|
+
}) => Promise<AssembledTransaction<u32>>;
|
|
1246
1288
|
/**
|
|
1247
1289
|
* Construct and simulate a is_on_denylist transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1248
1290
|
* Returns whether an OApp is on the denylist.
|
|
@@ -1276,10 +1318,10 @@ export interface Client {
|
|
|
1276
1318
|
* 3. Otherwise → denied
|
|
1277
1319
|
*
|
|
1278
1320
|
* # Arguments
|
|
1279
|
-
* * `
|
|
1321
|
+
* * `oapp` - OApp contract address to check
|
|
1280
1322
|
*/
|
|
1281
|
-
has_acl: ({
|
|
1282
|
-
|
|
1323
|
+
has_acl: ({ oapp }: {
|
|
1324
|
+
oapp: string;
|
|
1283
1325
|
}, txnOptions?: {
|
|
1284
1326
|
/**
|
|
1285
1327
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -1294,47 +1336,11 @@ export interface Client {
|
|
|
1294
1336
|
*/
|
|
1295
1337
|
simulate?: boolean;
|
|
1296
1338
|
}) => Promise<AssembledTransaction<boolean>>;
|
|
1297
|
-
/**
|
|
1298
|
-
* Construct and simulate a
|
|
1299
|
-
* Returns the
|
|
1300
|
-
*/
|
|
1301
|
-
allowlist_size: (txnOptions?: {
|
|
1302
|
-
/**
|
|
1303
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1304
|
-
*/
|
|
1305
|
-
fee?: number;
|
|
1306
|
-
/**
|
|
1307
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1308
|
-
*/
|
|
1309
|
-
timeoutInSeconds?: number;
|
|
1310
|
-
/**
|
|
1311
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1312
|
-
*/
|
|
1313
|
-
simulate?: boolean;
|
|
1314
|
-
}) => Promise<AssembledTransaction<u32>>;
|
|
1315
|
-
/**
|
|
1316
|
-
* Construct and simulate a default_multiplier_bps transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1317
|
-
* Returns the default fee multiplier in basis points.
|
|
1318
|
-
*/
|
|
1319
|
-
default_multiplier_bps: (txnOptions?: {
|
|
1320
|
-
/**
|
|
1321
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1322
|
-
*/
|
|
1323
|
-
fee?: number;
|
|
1324
|
-
/**
|
|
1325
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1326
|
-
*/
|
|
1327
|
-
timeoutInSeconds?: number;
|
|
1328
|
-
/**
|
|
1329
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1330
|
-
*/
|
|
1331
|
-
simulate?: boolean;
|
|
1332
|
-
}) => Promise<AssembledTransaction<u32>>;
|
|
1333
|
-
/**
|
|
1334
|
-
* Construct and simulate a deposit_address transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1335
|
-
* Returns the deposit address where fees are collected.
|
|
1339
|
+
/**
|
|
1340
|
+
* Construct and simulate a default_multiplier_bps transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1341
|
+
* Returns the default fee multiplier in basis points.
|
|
1336
1342
|
*/
|
|
1337
|
-
|
|
1343
|
+
default_multiplier_bps: (txnOptions?: {
|
|
1338
1344
|
/**
|
|
1339
1345
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1340
1346
|
*/
|
|
@@ -1347,12 +1353,12 @@ export interface Client {
|
|
|
1347
1353
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1348
1354
|
*/
|
|
1349
1355
|
simulate?: boolean;
|
|
1350
|
-
}) => Promise<AssembledTransaction<
|
|
1356
|
+
}) => Promise<AssembledTransaction<u32>>;
|
|
1351
1357
|
/**
|
|
1352
|
-
* Construct and simulate a
|
|
1353
|
-
* Returns the
|
|
1358
|
+
* Construct and simulate a deposit_address transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1359
|
+
* Returns the deposit address where fees are collected.
|
|
1354
1360
|
*/
|
|
1355
|
-
|
|
1361
|
+
deposit_address: (txnOptions?: {
|
|
1356
1362
|
/**
|
|
1357
1363
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1358
1364
|
*/
|
|
@@ -1365,7 +1371,7 @@ export interface Client {
|
|
|
1365
1371
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1366
1372
|
*/
|
|
1367
1373
|
simulate?: boolean;
|
|
1368
|
-
}) => Promise<AssembledTransaction<string
|
|
1374
|
+
}) => Promise<AssembledTransaction<Option<string>>>;
|
|
1369
1375
|
/**
|
|
1370
1376
|
* Construct and simulate a get_supported_option_types transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1371
1377
|
* Returns supported option types for a destination endpoint.
|
|
@@ -1406,7 +1412,25 @@ export interface Client {
|
|
|
1406
1412
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1407
1413
|
*/
|
|
1408
1414
|
simulate?: boolean;
|
|
1409
|
-
}) => Promise<AssembledTransaction<string
|
|
1415
|
+
}) => Promise<AssembledTransaction<Option<string>>>;
|
|
1416
|
+
/**
|
|
1417
|
+
* Construct and simulate a price_feed transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1418
|
+
* Returns the price feed contract address.
|
|
1419
|
+
*/
|
|
1420
|
+
price_feed: (txnOptions?: {
|
|
1421
|
+
/**
|
|
1422
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1423
|
+
*/
|
|
1424
|
+
fee?: number;
|
|
1425
|
+
/**
|
|
1426
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1427
|
+
*/
|
|
1428
|
+
timeoutInSeconds?: number;
|
|
1429
|
+
/**
|
|
1430
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1431
|
+
*/
|
|
1432
|
+
simulate?: boolean;
|
|
1433
|
+
}) => Promise<AssembledTransaction<Option<string>>>;
|
|
1410
1434
|
/**
|
|
1411
1435
|
* Construct and simulate a get_fee transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1412
1436
|
* Calculates the verification fee for a cross-chain message.
|
|
@@ -1548,7 +1572,7 @@ export interface Client {
|
|
|
1548
1572
|
simulate?: boolean;
|
|
1549
1573
|
}) => Promise<AssembledTransaction<Buffer>>;
|
|
1550
1574
|
/**
|
|
1551
|
-
* Construct and simulate a
|
|
1575
|
+
* Construct and simulate a set_admin_by_admin transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1552
1576
|
* Sets admin status for an address. Can be called by an existing admin.
|
|
1553
1577
|
*
|
|
1554
1578
|
* This allows existing admins to add or remove other admins without going through
|
|
@@ -1559,7 +1583,7 @@ export interface Client {
|
|
|
1559
1583
|
* * `admin` - The address to set admin status for
|
|
1560
1584
|
* * `active` - `true` to add admin, `false` to remove
|
|
1561
1585
|
*/
|
|
1562
|
-
|
|
1586
|
+
set_admin_by_admin: ({ caller, admin, active }: {
|
|
1563
1587
|
caller: string;
|
|
1564
1588
|
admin: string;
|
|
1565
1589
|
active: boolean;
|
|
@@ -1578,20 +1602,13 @@ export interface Client {
|
|
|
1578
1602
|
simulate?: boolean;
|
|
1579
1603
|
}) => Promise<AssembledTransaction<null>>;
|
|
1580
1604
|
/**
|
|
1581
|
-
* Construct and simulate a
|
|
1582
|
-
*
|
|
1583
|
-
*
|
|
1584
|
-
*
|
|
1585
|
-
* requiring only multisig quorum signatures. Must be called as a single
|
|
1586
|
-
* operation (cannot be bundled with other calls).
|
|
1587
|
-
*
|
|
1588
|
-
* # Arguments
|
|
1589
|
-
* * `admin` - The address to set admin status for
|
|
1590
|
-
* * `active` - `true` to add admin, `false` to remove
|
|
1605
|
+
* Construct and simulate a upgrade transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1606
|
+
* The type of data required for migration.
|
|
1607
|
+
* Upgrades the contract to new WASM bytecode.
|
|
1608
|
+
* Sets a migration flag that must be cleared by calling `migrate`.
|
|
1591
1609
|
*/
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
active: boolean;
|
|
1610
|
+
upgrade: ({ new_wasm_hash }: {
|
|
1611
|
+
new_wasm_hash: Buffer;
|
|
1595
1612
|
}, txnOptions?: {
|
|
1596
1613
|
/**
|
|
1597
1614
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -1607,10 +1624,12 @@ export interface Client {
|
|
|
1607
1624
|
simulate?: boolean;
|
|
1608
1625
|
}) => Promise<AssembledTransaction<null>>;
|
|
1609
1626
|
/**
|
|
1610
|
-
* Construct and simulate a
|
|
1627
|
+
* Construct and simulate a migrate transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1628
|
+
* Runs migration logic after an upgrade.
|
|
1629
|
+
* Can only be called when the migration flag is set by a previous `upgrade` call.
|
|
1611
1630
|
*/
|
|
1612
|
-
|
|
1613
|
-
|
|
1631
|
+
migrate: ({ migration_data }: {
|
|
1632
|
+
migration_data: Buffer;
|
|
1614
1633
|
}, txnOptions?: {
|
|
1615
1634
|
/**
|
|
1616
1635
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -1626,11 +1645,11 @@ export interface Client {
|
|
|
1626
1645
|
simulate?: boolean;
|
|
1627
1646
|
}) => Promise<AssembledTransaction<null>>;
|
|
1628
1647
|
/**
|
|
1629
|
-
* Construct and simulate a
|
|
1648
|
+
* Construct and simulate a freeze transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1649
|
+
* Permanently freezes the contract, preventing any future upgrades.
|
|
1650
|
+
* This action is irreversible.
|
|
1630
1651
|
*/
|
|
1631
|
-
|
|
1632
|
-
migration_data: MigrationData;
|
|
1633
|
-
}, txnOptions?: {
|
|
1652
|
+
freeze: (txnOptions?: {
|
|
1634
1653
|
/**
|
|
1635
1654
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1636
1655
|
*/
|
|
@@ -1644,6 +1663,24 @@ export interface Client {
|
|
|
1644
1663
|
*/
|
|
1645
1664
|
simulate?: boolean;
|
|
1646
1665
|
}) => Promise<AssembledTransaction<null>>;
|
|
1666
|
+
/**
|
|
1667
|
+
* Construct and simulate a is_frozen transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1668
|
+
* Returns whether the contract is frozen (upgrades disabled).
|
|
1669
|
+
*/
|
|
1670
|
+
is_frozen: (txnOptions?: {
|
|
1671
|
+
/**
|
|
1672
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1673
|
+
*/
|
|
1674
|
+
fee?: number;
|
|
1675
|
+
/**
|
|
1676
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1677
|
+
*/
|
|
1678
|
+
timeoutInSeconds?: number;
|
|
1679
|
+
/**
|
|
1680
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1681
|
+
*/
|
|
1682
|
+
simulate?: boolean;
|
|
1683
|
+
}) => Promise<AssembledTransaction<boolean>>;
|
|
1647
1684
|
/**
|
|
1648
1685
|
* Construct and simulate a authorizer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1649
1686
|
*/
|
|
@@ -1662,23 +1699,12 @@ export interface Client {
|
|
|
1662
1699
|
simulate?: boolean;
|
|
1663
1700
|
}) => Promise<AssembledTransaction<string>>;
|
|
1664
1701
|
/**
|
|
1665
|
-
* Construct and simulate a
|
|
1666
|
-
*
|
|
1667
|
-
*
|
|
1668
|
-
* - `None` values remove the corresponding config (disables auto-extension for that type)
|
|
1669
|
-
* - Validates that `threshold <= extend_to <= MAX_TTL`
|
|
1670
|
-
*
|
|
1671
|
-
* # Arguments
|
|
1672
|
-
* - `instance` - TTL config for instance storage
|
|
1673
|
-
* - `persistent` - TTL config for persistent storage
|
|
1674
|
-
*
|
|
1675
|
-
* # Panics
|
|
1676
|
-
* - `TtlConfigFrozen` if configs are frozen
|
|
1677
|
-
* - `InvalidTtlConfig` if validation fails
|
|
1702
|
+
* Construct and simulate a set_signer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1703
|
+
* Adds or removes a signer from the multisig. Requires owner authorization.
|
|
1678
1704
|
*/
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1705
|
+
set_signer: ({ signer, active }: {
|
|
1706
|
+
signer: Buffer;
|
|
1707
|
+
active: boolean;
|
|
1682
1708
|
}, txnOptions?: {
|
|
1683
1709
|
/**
|
|
1684
1710
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -1694,10 +1720,12 @@ export interface Client {
|
|
|
1694
1720
|
simulate?: boolean;
|
|
1695
1721
|
}) => Promise<AssembledTransaction<null>>;
|
|
1696
1722
|
/**
|
|
1697
|
-
* Construct and simulate a
|
|
1698
|
-
*
|
|
1723
|
+
* Construct and simulate a set_threshold transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1724
|
+
* Sets the signature threshold (quorum). Requires owner authorization.
|
|
1699
1725
|
*/
|
|
1700
|
-
|
|
1726
|
+
set_threshold: ({ threshold }: {
|
|
1727
|
+
threshold: u32;
|
|
1728
|
+
}, txnOptions?: {
|
|
1701
1729
|
/**
|
|
1702
1730
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1703
1731
|
*/
|
|
@@ -1710,18 +1738,12 @@ export interface Client {
|
|
|
1710
1738
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1711
1739
|
*/
|
|
1712
1740
|
simulate?: boolean;
|
|
1713
|
-
}) => Promise<AssembledTransaction<
|
|
1741
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
1714
1742
|
/**
|
|
1715
|
-
* Construct and simulate a
|
|
1716
|
-
*
|
|
1717
|
-
*
|
|
1718
|
-
* This is irreversible and provides immutability guarantees to users.
|
|
1719
|
-
* Emits `TtlConfigsFrozen` event.
|
|
1720
|
-
*
|
|
1721
|
-
* # Panics
|
|
1722
|
-
* - `TtlConfigAlreadyFrozen` if already frozen
|
|
1743
|
+
* Construct and simulate a get_signers transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1744
|
+
* Returns all registered signers.
|
|
1723
1745
|
*/
|
|
1724
|
-
|
|
1746
|
+
get_signers: (txnOptions?: {
|
|
1725
1747
|
/**
|
|
1726
1748
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1727
1749
|
*/
|
|
@@ -1734,12 +1756,12 @@ export interface Client {
|
|
|
1734
1756
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1735
1757
|
*/
|
|
1736
1758
|
simulate?: boolean;
|
|
1737
|
-
}) => Promise<AssembledTransaction<
|
|
1759
|
+
}) => Promise<AssembledTransaction<Array<Buffer>>>;
|
|
1738
1760
|
/**
|
|
1739
|
-
* Construct and simulate a
|
|
1740
|
-
* Returns
|
|
1761
|
+
* Construct and simulate a total_signers transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1762
|
+
* Returns the total number of registered signers.
|
|
1741
1763
|
*/
|
|
1742
|
-
|
|
1764
|
+
total_signers: (txnOptions?: {
|
|
1743
1765
|
/**
|
|
1744
1766
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1745
1767
|
*/
|
|
@@ -1752,19 +1774,13 @@ export interface Client {
|
|
|
1752
1774
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1753
1775
|
*/
|
|
1754
1776
|
simulate?: boolean;
|
|
1755
|
-
}) => Promise<AssembledTransaction<
|
|
1777
|
+
}) => Promise<AssembledTransaction<u32>>;
|
|
1756
1778
|
/**
|
|
1757
|
-
* Construct and simulate a
|
|
1758
|
-
*
|
|
1759
|
-
*
|
|
1760
|
-
* # Arguments
|
|
1761
|
-
*
|
|
1762
|
-
* * `threshold` - The threshold to extend the TTL (if current TTL is below this, extend).
|
|
1763
|
-
* * `extend_to` - The TTL to extend to.
|
|
1779
|
+
* Construct and simulate a is_signer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1780
|
+
* Checks if an address is a registered signer.
|
|
1764
1781
|
*/
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
extend_to: u32;
|
|
1782
|
+
is_signer: ({ signer }: {
|
|
1783
|
+
signer: Buffer;
|
|
1768
1784
|
}, txnOptions?: {
|
|
1769
1785
|
/**
|
|
1770
1786
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -1778,15 +1794,12 @@ export interface Client {
|
|
|
1778
1794
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1779
1795
|
*/
|
|
1780
1796
|
simulate?: boolean;
|
|
1781
|
-
}) => Promise<AssembledTransaction<
|
|
1797
|
+
}) => Promise<AssembledTransaction<boolean>>;
|
|
1782
1798
|
/**
|
|
1783
|
-
* Construct and simulate a
|
|
1784
|
-
*
|
|
1799
|
+
* Construct and simulate a threshold transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1800
|
+
* Returns the current signature threshold (quorum).
|
|
1785
1801
|
*/
|
|
1786
|
-
|
|
1787
|
-
signer: Buffer;
|
|
1788
|
-
active: boolean;
|
|
1789
|
-
}, txnOptions?: {
|
|
1802
|
+
threshold: (txnOptions?: {
|
|
1790
1803
|
/**
|
|
1791
1804
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1792
1805
|
*/
|
|
@@ -1799,13 +1812,14 @@ export interface Client {
|
|
|
1799
1812
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1800
1813
|
*/
|
|
1801
1814
|
simulate?: boolean;
|
|
1802
|
-
}) => Promise<AssembledTransaction<
|
|
1815
|
+
}) => Promise<AssembledTransaction<u32>>;
|
|
1803
1816
|
/**
|
|
1804
|
-
* Construct and simulate a
|
|
1805
|
-
*
|
|
1817
|
+
* Construct and simulate a verify_signatures transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1818
|
+
* Verifies signatures against the configured threshold.
|
|
1806
1819
|
*/
|
|
1807
|
-
|
|
1808
|
-
|
|
1820
|
+
verify_signatures: ({ digest, signatures }: {
|
|
1821
|
+
digest: Buffer;
|
|
1822
|
+
signatures: Array<Buffer>;
|
|
1809
1823
|
}, txnOptions?: {
|
|
1810
1824
|
/**
|
|
1811
1825
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -1821,10 +1835,14 @@ export interface Client {
|
|
|
1821
1835
|
simulate?: boolean;
|
|
1822
1836
|
}) => Promise<AssembledTransaction<null>>;
|
|
1823
1837
|
/**
|
|
1824
|
-
* Construct and simulate a
|
|
1825
|
-
*
|
|
1838
|
+
* Construct and simulate a verify_n_signatures transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1839
|
+
* Verifies signatures against a custom threshold.
|
|
1826
1840
|
*/
|
|
1827
|
-
|
|
1841
|
+
verify_n_signatures: ({ digest, signatures, threshold }: {
|
|
1842
|
+
digest: Buffer;
|
|
1843
|
+
signatures: Array<Buffer>;
|
|
1844
|
+
threshold: u32;
|
|
1845
|
+
}, txnOptions?: {
|
|
1828
1846
|
/**
|
|
1829
1847
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1830
1848
|
*/
|
|
@@ -1837,12 +1855,20 @@ export interface Client {
|
|
|
1837
1855
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1838
1856
|
*/
|
|
1839
1857
|
simulate?: boolean;
|
|
1840
|
-
}) => Promise<AssembledTransaction<
|
|
1858
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
1841
1859
|
/**
|
|
1842
|
-
* Construct and simulate a
|
|
1843
|
-
*
|
|
1860
|
+
* 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.
|
|
1861
|
+
* Extends the instance TTL.
|
|
1862
|
+
*
|
|
1863
|
+
* # Arguments
|
|
1864
|
+
*
|
|
1865
|
+
* * `threshold` - The threshold to extend the TTL (if current TTL is below this, extend).
|
|
1866
|
+
* * `extend_to` - The TTL to extend to.
|
|
1844
1867
|
*/
|
|
1845
|
-
|
|
1868
|
+
extend_instance_ttl: ({ threshold, extend_to }: {
|
|
1869
|
+
threshold: u32;
|
|
1870
|
+
extend_to: u32;
|
|
1871
|
+
}, txnOptions?: {
|
|
1846
1872
|
/**
|
|
1847
1873
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1848
1874
|
*/
|
|
@@ -1855,13 +1881,25 @@ export interface Client {
|
|
|
1855
1881
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1856
1882
|
*/
|
|
1857
1883
|
simulate?: boolean;
|
|
1858
|
-
}) => Promise<AssembledTransaction<
|
|
1884
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
1859
1885
|
/**
|
|
1860
|
-
* Construct and simulate a
|
|
1861
|
-
*
|
|
1886
|
+
* 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.
|
|
1887
|
+
* Sets TTL configs for instance and persistent storage.
|
|
1888
|
+
*
|
|
1889
|
+
* - `None` values remove the corresponding config (disables auto-extension for that type)
|
|
1890
|
+
* - Validates that `threshold <= extend_to <= MAX_TTL`
|
|
1891
|
+
*
|
|
1892
|
+
* # Arguments
|
|
1893
|
+
* - `instance` - TTL config for instance storage
|
|
1894
|
+
* - `persistent` - TTL config for persistent storage
|
|
1895
|
+
*
|
|
1896
|
+
* # Panics
|
|
1897
|
+
* - `TtlConfigFrozen` if configs are frozen
|
|
1898
|
+
* - `InvalidTtlConfig` if validation fails
|
|
1862
1899
|
*/
|
|
1863
|
-
|
|
1864
|
-
|
|
1900
|
+
set_ttl_configs: ({ instance, persistent }: {
|
|
1901
|
+
instance: Option<TtlConfig>;
|
|
1902
|
+
persistent: Option<TtlConfig>;
|
|
1865
1903
|
}, txnOptions?: {
|
|
1866
1904
|
/**
|
|
1867
1905
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -1875,12 +1913,12 @@ export interface Client {
|
|
|
1875
1913
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1876
1914
|
*/
|
|
1877
1915
|
simulate?: boolean;
|
|
1878
|
-
}) => Promise<AssembledTransaction<
|
|
1916
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
1879
1917
|
/**
|
|
1880
|
-
* Construct and simulate a
|
|
1881
|
-
* Returns the current
|
|
1918
|
+
* 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.
|
|
1919
|
+
* Returns the current TTL configs as (instance_config, persistent_config).
|
|
1882
1920
|
*/
|
|
1883
|
-
|
|
1921
|
+
ttl_configs: (txnOptions?: {
|
|
1884
1922
|
/**
|
|
1885
1923
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1886
1924
|
*/
|
|
@@ -1893,15 +1931,18 @@ export interface Client {
|
|
|
1893
1931
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1894
1932
|
*/
|
|
1895
1933
|
simulate?: boolean;
|
|
1896
|
-
}) => Promise<AssembledTransaction<
|
|
1934
|
+
}) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
|
|
1897
1935
|
/**
|
|
1898
|
-
* Construct and simulate a
|
|
1899
|
-
*
|
|
1936
|
+
* 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.
|
|
1937
|
+
* Permanently freezes TTL configs, preventing any future modifications.
|
|
1938
|
+
*
|
|
1939
|
+
* This is irreversible and provides immutability guarantees to users.
|
|
1940
|
+
* Emits `TtlConfigsFrozen` event.
|
|
1941
|
+
*
|
|
1942
|
+
* # Panics
|
|
1943
|
+
* - `TtlConfigAlreadyFrozen` if already frozen
|
|
1900
1944
|
*/
|
|
1901
|
-
|
|
1902
|
-
digest: Buffer;
|
|
1903
|
-
signatures: Array<Buffer>;
|
|
1904
|
-
}, txnOptions?: {
|
|
1945
|
+
freeze_ttl_configs: (txnOptions?: {
|
|
1905
1946
|
/**
|
|
1906
1947
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1907
1948
|
*/
|
|
@@ -1916,14 +1957,10 @@ export interface Client {
|
|
|
1916
1957
|
simulate?: boolean;
|
|
1917
1958
|
}) => Promise<AssembledTransaction<null>>;
|
|
1918
1959
|
/**
|
|
1919
|
-
* Construct and simulate a
|
|
1920
|
-
*
|
|
1960
|
+
* 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.
|
|
1961
|
+
* Returns whether TTL configs are frozen.
|
|
1921
1962
|
*/
|
|
1922
|
-
|
|
1923
|
-
digest: Buffer;
|
|
1924
|
-
signatures: Array<Buffer>;
|
|
1925
|
-
threshold: u32;
|
|
1926
|
-
}, txnOptions?: {
|
|
1963
|
+
is_ttl_configs_frozen: (txnOptions?: {
|
|
1927
1964
|
/**
|
|
1928
1965
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1929
1966
|
*/
|
|
@@ -1936,7 +1973,7 @@ export interface Client {
|
|
|
1936
1973
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1937
1974
|
*/
|
|
1938
1975
|
simulate?: boolean;
|
|
1939
|
-
}) => Promise<AssembledTransaction<
|
|
1976
|
+
}) => Promise<AssembledTransaction<boolean>>;
|
|
1940
1977
|
}
|
|
1941
1978
|
export declare class Client extends ContractClient {
|
|
1942
1979
|
readonly options: ContractClientOptions;
|
|
@@ -1965,6 +2002,7 @@ export declare class Client extends ContractClient {
|
|
|
1965
2002
|
constructor(options: ContractClientOptions);
|
|
1966
2003
|
readonly fromJSON: {
|
|
1967
2004
|
set_paused: (json: string) => AssembledTransaction<null>;
|
|
2005
|
+
set_admin: (json: string) => AssembledTransaction<null>;
|
|
1968
2006
|
set_supported_message_lib: (json: string) => AssembledTransaction<null>;
|
|
1969
2007
|
set_allowlist: (json: string) => AssembledTransaction<null>;
|
|
1970
2008
|
set_denylist: (json: string) => AssembledTransaction<null>;
|
|
@@ -1973,36 +2011,32 @@ export declare class Client extends ContractClient {
|
|
|
1973
2011
|
set_supported_option_types: (json: string) => AssembledTransaction<null>;
|
|
1974
2012
|
set_worker_fee_lib: (json: string) => AssembledTransaction<null>;
|
|
1975
2013
|
set_price_feed: (json: string) => AssembledTransaction<null>;
|
|
2014
|
+
paused: (json: string) => AssembledTransaction<boolean>;
|
|
1976
2015
|
is_admin: (json: string) => AssembledTransaction<boolean>;
|
|
1977
2016
|
admins: (json: string) => AssembledTransaction<string[]>;
|
|
1978
|
-
paused: (json: string) => AssembledTransaction<boolean>;
|
|
1979
2017
|
is_supported_message_lib: (json: string) => AssembledTransaction<boolean>;
|
|
1980
2018
|
message_libs: (json: string) => AssembledTransaction<string[]>;
|
|
1981
2019
|
is_on_allowlist: (json: string) => AssembledTransaction<boolean>;
|
|
2020
|
+
allowlist_size: (json: string) => AssembledTransaction<number>;
|
|
1982
2021
|
is_on_denylist: (json: string) => AssembledTransaction<boolean>;
|
|
1983
2022
|
has_acl: (json: string) => AssembledTransaction<boolean>;
|
|
1984
|
-
allowlist_size: (json: string) => AssembledTransaction<number>;
|
|
1985
2023
|
default_multiplier_bps: (json: string) => AssembledTransaction<number>;
|
|
1986
|
-
deposit_address: (json: string) => AssembledTransaction<string
|
|
1987
|
-
price_feed: (json: string) => AssembledTransaction<string>;
|
|
2024
|
+
deposit_address: (json: string) => AssembledTransaction<Option<string>>;
|
|
1988
2025
|
get_supported_option_types: (json: string) => AssembledTransaction<Option<Buffer<ArrayBufferLike>>>;
|
|
1989
|
-
worker_fee_lib: (json: string) => AssembledTransaction<string
|
|
2026
|
+
worker_fee_lib: (json: string) => AssembledTransaction<Option<string>>;
|
|
2027
|
+
price_feed: (json: string) => AssembledTransaction<Option<string>>;
|
|
1990
2028
|
get_fee: (json: string) => AssembledTransaction<bigint>;
|
|
1991
2029
|
assign_job: (json: string) => AssembledTransaction<FeeRecipient>;
|
|
1992
2030
|
set_dst_config: (json: string) => AssembledTransaction<null>;
|
|
1993
2031
|
dst_config: (json: string) => AssembledTransaction<Option<DstConfig>>;
|
|
1994
2032
|
vid: (json: string) => AssembledTransaction<number>;
|
|
1995
2033
|
hash_call_data: (json: string) => AssembledTransaction<Buffer<ArrayBufferLike>>;
|
|
1996
|
-
|
|
1997
|
-
quorum_change_admin: (json: string) => AssembledTransaction<null>;
|
|
2034
|
+
set_admin_by_admin: (json: string) => AssembledTransaction<null>;
|
|
1998
2035
|
upgrade: (json: string) => AssembledTransaction<null>;
|
|
1999
2036
|
migrate: (json: string) => AssembledTransaction<null>;
|
|
2037
|
+
freeze: (json: string) => AssembledTransaction<null>;
|
|
2038
|
+
is_frozen: (json: string) => AssembledTransaction<boolean>;
|
|
2000
2039
|
authorizer: (json: string) => AssembledTransaction<string>;
|
|
2001
|
-
set_ttl_configs: (json: string) => AssembledTransaction<null>;
|
|
2002
|
-
ttl_configs: (json: string) => AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>;
|
|
2003
|
-
freeze_ttl_configs: (json: string) => AssembledTransaction<null>;
|
|
2004
|
-
is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
|
|
2005
|
-
extend_instance_ttl: (json: string) => AssembledTransaction<null>;
|
|
2006
2040
|
set_signer: (json: string) => AssembledTransaction<null>;
|
|
2007
2041
|
set_threshold: (json: string) => AssembledTransaction<null>;
|
|
2008
2042
|
get_signers: (json: string) => AssembledTransaction<Buffer<ArrayBufferLike>[]>;
|
|
@@ -2011,5 +2045,10 @@ export declare class Client extends ContractClient {
|
|
|
2011
2045
|
threshold: (json: string) => AssembledTransaction<number>;
|
|
2012
2046
|
verify_signatures: (json: string) => AssembledTransaction<null>;
|
|
2013
2047
|
verify_n_signatures: (json: string) => AssembledTransaction<null>;
|
|
2048
|
+
extend_instance_ttl: (json: string) => AssembledTransaction<null>;
|
|
2049
|
+
set_ttl_configs: (json: string) => AssembledTransaction<null>;
|
|
2050
|
+
ttl_configs: (json: string) => AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>;
|
|
2051
|
+
freeze_ttl_configs: (json: string) => AssembledTransaction<null>;
|
|
2052
|
+
is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
|
|
2014
2053
|
};
|
|
2015
2054
|
}
|