@layerzerolabs/protocol-stellar-v2 0.2.40 → 0.2.43
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 +312 -397
- package/.turbo/turbo-lint.log +185 -245
- package/.turbo/turbo-test.log +1846 -1942
- package/Cargo.lock +22 -127
- package/Cargo.toml +4 -6
- package/contracts/common-macros/src/lib.rs +38 -15
- package/contracts/common-macros/src/lz_contract.rs +12 -21
- package/contracts/common-macros/src/tests/lz_contract.rs +17 -8
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__lz_contract__snapshot_generated_lz_contract_code.snap +20 -0
- package/contracts/common-macros/src/upgradeable.rs +37 -30
- package/contracts/endpoint-v2/src/endpoint_v2.rs +4 -3
- package/contracts/endpoint-v2/src/errors.rs +2 -2
- package/contracts/endpoint-v2/src/messaging_channel.rs +11 -0
- package/contracts/endpoint-v2/src/messaging_composer.rs +1 -0
- package/contracts/endpoint-v2/src/tests/endpoint_v2/clear.rs +12 -25
- package/contracts/endpoint-v2/src/tests/endpoint_v2/initializable.rs +4 -4
- package/contracts/endpoint-v2/src/tests/endpoint_v2/verifiable.rs +50 -10
- package/contracts/endpoint-v2/src/tests/endpoint_v2/verify.rs +6 -35
- package/contracts/endpoint-v2/src/tests/messaging_channel/burn.rs +2 -2
- package/contracts/endpoint-v2/src/tests/messaging_channel/clear_payload.rs +50 -1
- package/contracts/endpoint-v2/src/tests/messaging_channel/inbound.rs +78 -0
- package/contracts/endpoint-v2/src/tests/messaging_channel/insert_and_drain_pending_nonces.rs +272 -0
- package/contracts/endpoint-v2/src/tests/messaging_channel/mod.rs +1 -0
- package/contracts/endpoint-v2/src/tests/messaging_channel/nilify.rs +10 -5
- package/contracts/endpoint-v2/src/tests/messaging_channel/skip.rs +30 -0
- package/contracts/macro-integration-tests/tests/runtime/oapp/mod.rs +25 -6
- package/contracts/macro-integration-tests/tests/runtime/oapp/oapp_core.rs +13 -11
- package/contracts/macro-integration-tests/tests/runtime/oapp/options_type3.rs +13 -10
- package/contracts/macro-integration-tests/tests/runtime/oapp/receiver.rs +15 -11
- package/contracts/macro-integration-tests/tests/runtime/oapp/sender.rs +5 -3
- package/contracts/macro-integration-tests/tests/runtime/ownable/mod.rs +1 -1
- package/contracts/macro-integration-tests/tests/runtime/ownable/two_step_transfer.rs +14 -12
- package/contracts/macro-integration-tests/tests/runtime/upgradeable/migrate_guard_and_state.rs +3 -9
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_invalid_inner_option.stderr +24 -1
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_missing_internal.stderr +3 -3
- package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/upgradeable_rbac.rs +44 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_auth_trait.rs +28 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_auth_trait.stderr +397 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_lz_receive_internal.rs +1 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_lz_receive_internal.stderr +10 -10
- package/contracts/macro-integration-tests/tests/ui/oapp/pass/custom_all.rs +4 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/pass/custom_single_trait.rs +7 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/pass/minimal_contract.rs +5 -4
- package/contracts/macro-integration-tests/tests/ui/oapp/pass/struct_with_fields.rs +2 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/basic.rs +1 -1
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/attr_args.stderr +1 -1
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_auth_trait.stderr +2 -2
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_upgradeable_internal.stderr +2 -2
- package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/rbac.rs +44 -0
- package/contracts/oapps/counter/integration_tests/utils.rs +5 -3
- package/contracts/oapps/counter/src/counter.rs +4 -3
- package/contracts/oapps/counter/src/tests/mod.rs +16 -1
- package/contracts/oapps/counter/src/tests/test_counter.rs +5 -2
- package/contracts/oapps/oapp/src/oapp_core.rs +22 -8
- package/contracts/oapps/oapp/src/oapp_options_type3.rs +7 -5
- package/contracts/oapps/oapp/src/tests/mod.rs +21 -0
- package/contracts/oapps/oapp/src/tests/oapp_core.rs +14 -11
- package/contracts/oapps/oapp/src/tests/oapp_options_type3.rs +17 -10
- package/contracts/oapps/oapp/src/tests/oapp_receiver.rs +6 -3
- package/contracts/oapps/oapp/src/tests/oapp_sender.rs +5 -3
- package/contracts/oapps/oapp/src/tests/test_macros.rs +25 -0
- package/contracts/oapps/oapp-macros/src/generators.rs +12 -9
- package/contracts/oapps/oapp-macros/src/lib.rs +1 -1
- package/contracts/oapps/oapp-macros/src/tests/snapshots/oapp_macros__tests__oapp__snapshot_generate_oapp.snap +15 -7
- package/contracts/oapps/oft/integration-tests/setup.rs +22 -4
- package/contracts/oapps/oft/integration-tests/utils.rs +94 -13
- package/contracts/oapps/oft/src/extensions/oft_fee.rs +23 -10
- package/contracts/oapps/oft/src/extensions/pausable.rs +31 -10
- package/contracts/oapps/oft/src/extensions/rate_limiter.rs +9 -4
- package/contracts/oapps/oft/src/oft.rs +3 -3
- package/contracts/oapps/oft/src/tests/extensions/oft_fee.rs +39 -27
- package/contracts/oapps/oft/src/tests/extensions/pausable.rs +38 -24
- package/contracts/oapps/oft/src/tests/extensions/rate_limiter.rs +87 -69
- package/contracts/oapps/oft/src/tests/oft_types/lock_unlock.rs +1 -0
- package/contracts/oapps/oft-core/integration-tests/setup.rs +28 -3
- package/contracts/oapps/oft-core/src/oft_core.rs +11 -6
- package/contracts/oapps/oft-core/src/tests/test_msg_inspector.rs +20 -20
- package/contracts/oapps/oft-core/src/tests/test_utils.rs +33 -3
- package/contracts/upgrader/src/lib.rs +67 -30
- package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract3.wasm +0 -0
- package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract4.wasm +0 -0
- package/contracts/upgrader/src/tests/test_upgrader.rs +50 -4
- package/contracts/utils/src/ownable.rs +16 -5
- package/contracts/utils/src/tests/ownable.rs +39 -39
- package/contracts/utils/src/upgradeable.rs +60 -17
- package/docs/oapp-guide.md +18 -13
- package/package.json +5 -5
- package/sdk/.turbo/turbo-test.log +359 -348
- package/sdk/dist/generated/bml.d.ts +4 -4
- package/sdk/dist/generated/bml.js +6 -6
- package/sdk/dist/generated/counter.d.ts +269 -123
- package/sdk/dist/generated/counter.js +45 -25
- package/sdk/dist/generated/dvn.d.ts +4 -6
- package/sdk/dist/generated/dvn.js +8 -8
- package/sdk/dist/generated/dvn_fee_lib.d.ts +8 -10
- package/sdk/dist/generated/dvn_fee_lib.js +8 -8
- package/sdk/dist/generated/endpoint.d.ts +9 -9
- package/sdk/dist/generated/endpoint.js +9 -9
- package/sdk/dist/generated/executor.d.ts +9 -11
- package/sdk/dist/generated/executor.js +11 -11
- package/sdk/dist/generated/executor_fee_lib.d.ts +9 -11
- package/sdk/dist/generated/executor_fee_lib.js +11 -11
- package/sdk/dist/generated/executor_helper.d.ts +4 -4
- package/sdk/dist/generated/executor_helper.js +6 -6
- package/sdk/dist/generated/layerzero_view.d.ts +9 -11
- package/sdk/dist/generated/layerzero_view.js +11 -11
- package/sdk/dist/generated/oft.d.ts +323 -156
- package/sdk/dist/generated/oft.js +65 -43
- package/sdk/dist/generated/price_feed.d.ts +8 -10
- package/sdk/dist/generated/price_feed.js +8 -8
- package/sdk/dist/generated/sac_manager.d.ts +8 -8
- package/sdk/dist/generated/sac_manager.js +6 -6
- package/sdk/dist/generated/sml.d.ts +9 -9
- package/sdk/dist/generated/sml.js +9 -9
- package/sdk/dist/generated/treasury.d.ts +9 -9
- package/sdk/dist/generated/treasury.js +9 -9
- package/sdk/dist/generated/uln302.d.ts +9 -9
- package/sdk/dist/generated/uln302.js +9 -9
- package/sdk/dist/generated/upgrader.d.ts +25 -16
- package/sdk/dist/generated/upgrader.js +5 -5
- package/sdk/package.json +1 -1
- package/sdk/test/counter-sml.test.ts +20 -0
- package/sdk/test/counter-uln.test.ts +20 -0
- package/sdk/test/oft-sml.test.ts +22 -0
- package/sdk/test/upgrader.test.ts +1 -0
- package/ts-bindings-gen.toml +67 -0
- package/turbo.json +1 -8
- package/tools/ts-bindings-gen/Cargo.toml +0 -16
- package/tools/ts-bindings-gen/src/main.rs +0 -214
|
@@ -6,14 +6,14 @@ export * as contract from '@stellar/stellar-sdk/contract';
|
|
|
6
6
|
export * as rpc from '@stellar/stellar-sdk/rpc';
|
|
7
7
|
/**
|
|
8
8
|
* Embedded WASM bytecode (base64-encoded)
|
|
9
|
-
* Size:
|
|
9
|
+
* Size: 51636 bytes (50.43 KB)
|
|
10
10
|
*/
|
|
11
|
-
export declare const WASM_BASE64 = "AGFzbQEAAAAB2gEiYAJ+fgF+YAN+fn4BfmAAAX5gBH5+fn4BfmABfgF+YAV+fn5+fgBgAn9/AX5gA35+fgBgAn9/AGABfwF+YAJ+fgF/YAJ/fgBgA39+fgBgCn9/fn5+fn5+fn4AYAF+AGAFfn9/f38AYAAAYAN/f38AYAF/AGABfwF/YAABf2ACfn8AYAR+fn9/AX5gAX4Bf2ADfn9/AX5gAn9+AX5gAn5+AGAEf39/fwF+YAR+fn5+AGACfn8BfmAFfn5+fn4BfmAGfn5+fn5+AX5gB35+fn5+fn4BfmADfn9/AALfASUBbAExAAABbAFfAAEBdgFfAAIBZAFfAAEBeAE3AAIBbAE3AAMBYQEwAAQBYgE0AAIBYgE4AAQBYgE2AAABaQFhAAQBaQFiAAQBYgFmAAEBYgE5AAABeAExAAABbAEyAAABdgEzAAQBdgExAAABYgFlAAABaQFfAAQBaQEwAAQBdgFnAAABaQE4AAQBaQE3AAQBaQE2AAABYgFqAAABYgEyAAMBYgExAAMBbQE5AAEBbQFhAAMBeAEwAAABYgFiAAQBeAEzAAIBeAE4AAIBbAEwAAABbAE4AAABeAE1AAQDjQGLAQUABgcFCAkKCwsMBAgLDQIECw4JCQ8LCxAREAYICAYSEBMQFAkSEhASAhIVChASCRIRCwgMBhYXEAsYCwAVGQwUCwIAAgIEDhoAEAYEGxQMAgIACAALCAgJAhIIAgICEgIEAAQcAAQSAR0BAxQMHgkEAQALAgICAgIECQQABAsfCwEgIRASEQsRCBEFAwEAEQYhBH8BQYCAwAALfwBBvIPAAAt/AEGehsAAC38AQaCGwAALB4sFKAZtZW1vcnkCAAphdXRob3JpemVyAGcFb3duZXIAaQ1wZW5kaW5nX293bmVyAGoSdHJhbnNmZXJfb3duZXJzaGlwAGsacHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXIAbhBhY2NlcHRfb3duZXJzaGlwAHUScmVub3VuY2Vfb3duZXJzaGlwAHYTZXh0ZW5kX2luc3RhbmNlX3R0bAB3D3NldF90dGxfY29uZmlncwB5C3R0bF9jb25maWdzAH4SZnJlZXplX3R0bF9jb25maWdzAIEBFWlzX3R0bF9jb25maWdzX2Zyb3plbgCCAQxvYXBwX3ZlcnNpb24AgwEIZW5kcG9pbnQAhQEEcGVlcgCGAQhzZXRfcGVlcgCHAQxzZXRfZGVsZWdhdGUAiAEQZW5mb3JjZWRfb3B0aW9ucwCKARRzZXRfZW5mb3JjZWRfb3B0aW9ucwCLAQ9jb21iaW5lX29wdGlvbnMAjQENX19jb25zdHJ1Y3RvcgCPAQVxdW90ZQCQAQlpbmNyZW1lbnQAkwERc2V0X29yZGVyZWRfbm9uY2UAlQESc2tpcF9pbmJvdW5kX25vbmNlAJYBCHdpdGhkcmF3AJcBA2VpZACZAQVjb3VudACaAQ5jb21wb3NlZF9jb3VudACcAQ1pbmJvdW5kX2NvdW50AJ4BDm91dGJvdW5kX2NvdW50AKABCm5leHRfbm9uY2UAoQEVYWxsb3dfaW5pdGlhbGl6ZV9wYXRoAKIBCmx6X3JlY2VpdmUApAEVaXNfY29tcG9zZV9tc2dfc2VuZGVyAKYBCmx6X2NvbXBvc2UApwEBXwMBCl9fZGF0YV9lbmQDAgtfX2hlYXBfYmFzZQMDCpyEAYsBsQEBAn8jgICAgABBMGsiBSSAgICAACAFIAMgBBCmgICAADcDECAFIAI3AwggBSABNwMAQQAhBgNAAkAgBkEYRw0AQQAhBgJAA0AgBkEYRg0BIAVBGGogBmogBSAGaikDADcDACAGQQhqIQYMAAsLIABCju7qlb623vMAIAVBGGpBAxCngICAABCogICAACAFQTBqJICAgIAADwsgBUEYaiAGakICNwMAIAZBCGohBgwACwtDAQF/I4CAgIAAQRBrIgIkgICAgAAgAiAAIAEQkoGAgAACQCACKAIAQQFHDQAACyACKQMIIQEgAkEQaiSAgICAACABCxoAIACtQiCGQgSEIAGtQiCGQgSEEJWAgIAACyEAAkAgACABIAIQg4CAgABC/wGDQgJRDQAQvYCAgAAACwuxAQECfyOAgICAAEEwayIFJICAgIAAIAUgAyAEEKaAgIAANwMQIAUgAjcDCCAFIAE3AwBBACEGA0ACQCAGQRhHDQBBACEGAkADQCAGQRhGDQEgBUEYaiAGaiAFIAZqKQMANwMAIAZBCGohBgwACwsgAEKO7uqVvrbe8wAgBUEYakEDEKeAgIAAEKiAgIAAIAVBMGokgICAgAAPCyAFQRhqIAZqQgI3AwAgBkEIaiEGDAALC3QCAX8CfiOAgICAAEEQayICJICAgIAAQgAhAwJAAkAgARCrgICAACIEQgEQrICAgABFDQAgAiAEQgEQgICAgAAQrYCAgAAgAigCAEEBRg0BIAAgAikDCDcDCEIBIQMLIAAgAzcDACACQRBqJICAgIAADwsAC+IDAgF/An4jgICAgABBMGsiASSAgICAAAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAA4HAAECAwQFBgALIAFBCGpBgIDAgABBAxDWgICAACABKAIIDQggAUEIaiABKQMQENeAgIAADAYLIAFBIGpBg4DAgABBEBDWgICAACABKAIgDQcgASABKQMoNwMIIAEgACkDCDcDGCABIAA1AgRCIIZCBIQ3AxAgAUEgaiABQQhqENiAgIAAIAEpAyghAiABKQMgIQMMBgsgAUEIakGTgMCAAEEMENaAgIAAIAEoAggNBiABQQhqIAEpAxAQ14CAgAAMBAsgAUEIakGfgMCAAEEFENaAgIAAIAEoAggNBSABQQhqIAEpAxAQ14CAgAAMAwsgAUEIakGkgMCAAEENENaAgIAAIAEoAggNBCABQQhqIAEpAxAQ14CAgAAMAgsgAUEIakGxgMCAAEEMENaAgIAAIAEoAggNAyABQQhqIAEpAxAgADUCBEIghkIEhBDZgICAAAwBCyABQQhqQb2AwIAAQQ0Q1oCAgAAgASgCCA0CIAFBCGogASkDECAANQIEQiCGQgSEENmAgIAACyABKQMQIQIgASkDCCEDCyADUA0BCwALIAFBMGokgICAgAAgAgsPACAAIAEQooCAgABCAVELXQIBfwF+AkACQCABp0H/AXEiAkHAAEYNAAJAIAJBBkYNAEIBIQNCg5CAgIABIQEMAgsgAUIIiCEBQgAhAwwBC0IAIQMgARCUgICAACEBCyAAIAM3AwAgACABNwMICw4AIAAgAUIBEK+AgIAACxsAIAAQq4CAgAAgARCwgICAACACEIGAgIAAGgtBAQF/I4CAgIAAQRBrIgEkgICAgAAgASAAEKWBgIAAAkAgASgCAEEBRw0AAAsgASkDCCEAIAFBEGokgICAgAAgAAt0AgF/An4jgICAgABBEGsiAiSAgICAAEIAIQMCQAJAIAEQq4CAgAAiBEICEKyAgIAARQ0AIAIgBEICEICAgIAAEK2AgIAAIAIoAgBBAUYNASAAIAIpAwg3AwhCASEDCyAAIAM3AwAgAkEQaiSAgICAAA8LAAsOACAAIAFCAhCvgICAAAuABQECfyOAgICAAEHwAGsiCiSAgICAABC0gICAABC1gICAACAEELSAgIAAIAUgBhClgICAAAJAAkAgByAIhEIAUiILRQ0AIApBwABqELSAgIAAQo7o9x8QgoCAgAAQg4CAgAAQtoCAgAAgCikDQCIGQgJRDQECQCAGp0EBcUUNACAKKQNIIAQQtICAgAAgByAIEKWAgIAADAELQoOAgICw+gEQt4CAgAAACyABELiAgIAAIQQQtICAgAAhCBCEgICAACEHIAogCzoAJCAKIAM3AxggCiACNwMQIAogBDcDCCAKIAE2AiAgCkEIahC5gICAACEEIAogCTcDOCAKIAQ3AzAgCiAHNwMoQQAhAQNAAkAgAUEYRw0AQQAhAQJAA0AgAUEYRg0BIApBwABqIAFqIApBKGogAWopAwA3AwAgAUEIaiEBDAALCyAIQo7Ss5UOIApBwABqQQMQp4CAgAAQg4CAgAAhBEEAIQECQANAIAFBGEYNASAKQShqIAFqQgI3AwAgAUEIaiEBDAALCyAEQv8Bg0LMAFINAiAEQeyBwIAAQQMgCkEoakEDELqAgIAAIApBwABqIAopAygQu4CAgAAgCigCQEEBcQ0CIAopA2ghBCAKKQNgIQggCikDWCEHIAopA1AhBiAKQcAAaiAKKQMwELyAgIAAIAooAkANAiAKKQNIIQUgCkHAAGogCikDOBCtgICAACAKKAJAQQFGDQIgCikDSCEJIAAgCDcDECAAIAY3AwAgACAJNwMoIAAgBTcDICAAIAQ3AxggACAHNwMIIApB8ABqJICAgIAADwsgCkHAAGogAWpCAjcDACABQQhqIQEMAAsLEL2AgIAAAAtJAgF/AX4Qv4CAgAACQAJAQQAgABDDgICAACIBQgIQrICAgABFDQAgAUICEICAgIAAIgFC/wGDQs0AUQ0BAAsQxYCAgAAACyABCzYAAkAgAEGEgsCAAEEMEPCAgIAAEIKAgIAAEIOAgIAAIgBC/wGDQs0AUQ0AEL2AgIAAAAsgAAs5AAJAIAFCAlENAAJAIAFC/wGDQs0AUQ0AIABCAjcDAA8LIAAgATcDCCAAQgE3AwAPCyAAQgA3AwALCwAgABCkgICAABoLTgIBfwF+I4CAgIAAQRBrIgEkgICAgAAgASAAEMKAgIAAAkAgASgCAA0AQoOAgICQ+gEQt4CAgAAACyABKQMIIQIgAUEQaiSAgICAACACC3MCAX8BfiOAgICAAEEwayIBJICAgIAAIAEgACkDADcDKCABIAAxABw3AyAgASAAKQMQNwMYIAEgACkDCDcDECABIAA1AhhCIIZCBIQ3AwhB7IDAgABBBSABQQhqQQUQ8oCAgAAhAiABQTBqJICAgIAAIAILMQACQCACIARGDQAACyAAIAGtQiCGQgSEIAOtQiCGQgSEIAKtQiCGQgSEEJ2AgIAAGgvvAQICfwN+I4CAgIAAQTBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtCACEEQgEhBQJAIAFC/wGDQswAUg0AIAFB1IHAgABBAiACQQIQuoCAgAAgAkEQaiACKQMAEJiBgIAAIAIoAhBBAUYNACACKQMoIQEgAikDICEGIAJBEGogAikDCBCYgYCAACACKAIQQQFGDQAgAikDICEEIAAgAikDKDcDKCAAIAQ3AyAgACABNwMYIAAgBjcDEEIAIQVCACEECyAAIAU3AwAgACAENwMIIAJBMGokgICAgAALQgEBfkIBIQICQCABQv8Bg0LIAFINACABEIiAgIAAQoCAgIBwg0KAgICAgARSDQAgACABNwMIQgAhAgsgACACNwMACwkAEMeAgIAAAAteAQF+EL+AgIAAAkACQCABIAIQwICAgAAiA0IBEKyAgIAARQ0AIANCARCAgICAACIDQv8Bg0LIAFENAQALIABCADcDAA8LIABCATcDACAAIAM3AwggASACEMGAgIAAC0gBAX8jgICAgABBEGsiACSAgICAACAAQQRqEP+AgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBD4gICAAAsgAEEQaiSAgICAAAuKAQIBfwF+I4CAgIAAQTBrIgIkgICAgAAgAkEgakGAg8CAAEEPENaAgIAAAkACQCACKAIgDQAgAiACKQMoNwMIIAIgAa1CIIZCBIQ3AxggAiAArUIghkIEhDcDECACQSBqIAJBCGoQ2ICAgAAgAigCIEUNAQsACyACKQMoIQMgAkEwaiSAgICAACADC2sCAX8CfiOAgICAAEEQayICJICAgIAAIAJBBGoQy4CAgAACQCACKAIEQQFHDQAgAjUCDCEDIAI1AgghBCAAIAEQwICAgABCASAEQiCGQgSEIANCIIZCBIQQhYCAgAAaCyACQRBqJICAgIAAC4sBAgF/AX4jgICAgABBEGsiAiSAgICAABC/gICAAAJAAkACQEEBIAEQw4CAgAAiA0IBEKyAgIAARQ0AIAIgA0IBEICAgIAAELyAgIAAIAIoAgBBAUcNAQALIABCADcDAAwBCyACKQMIIQMgAEIBNwMAIAAgAzcDCCABEMSAgIAACyACQRBqJICAgIAAC5sBAgF/AX4jgICAgABBEGsiAiSAgICAAAJAAkACQAJAIABBAXFFDQAgAkG9gsCAAEEEENaAgIAAIAIoAgANAiACIAIpAwggAa1CIIZCBIQQ2YCAgAAMAQsgAkG1gsCAAEEIENaAgIAAIAIoAgANASACIAIpAwgQ14CAgAALIAIpAwghAyACKQMAUA0BCwALIAJBEGokgICAgAAgAwtrAgF/An4jgICAgABBEGsiASSAgICAACABQQRqEMuAgIAAAkAgASgCBEEBRw0AIAE1AgwhAiABNQIIIQNBASAAEMOAgIAAQgEgA0IghkIEhCACQiCGQgSEEIWAgIAAGgsgAUEQaiSAgICAAAsJABC9gICAAAALHAACQCAAQX9qQf8BcUEESQ0AEMeAgIAAAAsgAAsDAAALTQIBfwF+EL+AgIAAQQAhAAJAQQAQyYCAgAAiAUICEKyAgIAARQ0AQQEhAAJAAkAgAUICEICAgIAAp0H/AXEOAgECAAsAC0EAIQALIAALwgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkACQAJAIABB/wFxDgMAAQIACyABQYaGwIAAQQYQ1oCAgAAgASgCAA0DIAEgASkDCBDXgICAAAwCCyABQYyGwIAAQQgQ1oCAgAAgASgCAA0CIAEgASkDCBDXgICAAAwBCyABQZSGwIAAQQoQ1oCAgAAgASgCAA0BIAEgASkDCBDXgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC2kCAX8CfiOAgICAAEEQayIBJICAgIAAIAFBBGoQy4CAgAACQCABKAIEQQFHDQAgATUCDCECIAE1AgghAyAAEKuAgIAAQgEgA0IghkIEhCACQiCGQgSEEIWAgIAAGgsgAUEQaiSAgICAAAsMACAAQQIQroGAgAALTQEBfyOAgICAAEEQayIAJICAgIAAIAAQzYCAgAACQCAAKAIADQBCg4CAgOCFARC3gICAAAALIAApAwgQhoCAgAAaIABBEGokgICAgAALEAAQv4CAgAAgABDPgICAAAuAAQIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABDPgICAACAAKQMIIQEgACkDAEGLCBDQgICAACAAEM2AgIAAAkACQCAAKAIAQQFHDQAgASAAKQMIENGAgIAADQELQoOAgIDggAEQt4CAgAAACyABEIaAgIAAGiAAQRBqJICAgIAAIAELEAAQv4CAgAAgABDVgICAAAspAAJAIACnQQFxRQ0ADwsgAUH6d2qtQiCGQoOAgIDggAF8ELeAgIAAAAsNACAAIAEQnoCAgABQC0IBAX8jgICAgABBEGsiACSAgICAACAAENOAgIAAAkAgACkDAFANAEKDgICAwIEBELeAgIAAAAsgAEEQaiSAgICAAAtTAQJ+EL+AgIAAQgAhAQJAAkBBARDUgICAACICQgAQrICAgABFDQAgAkIAEICAgIAAIgFC/wGDQs0AUg0BIAAgATcDCEIBIQELIAAgATcDAA8LAAuSAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQCAAQQFxRQ0AIAFBmYXAgABBDBDWgICAACABKAIADQIgASABKQMIENeAgIAADAELIAFBlIXAgABBBRDWgICAACABKAIADQEgASABKQMIENeAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILTQECfkIAIQECQAJAQQAQ1ICAgAAiAkICEKyAgIAARQ0AIAJCAhCAgICAACIBQv8Bg0LNAFINASAAIAE3AwhCASEBCyAAIAE3AwAPCwALUQIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABIAIQq4GAgABCASEEAkAgAygCAA0AIAAgAykDCDcDCEIAIQQLIAAgBDcDACADQRBqJICAgIAAC0QBAX8jgICAgABBEGsiAiSAgICAACACIAE3AwggAkEIakEBEKeAgIAAIQEgAEIANwMAIAAgATcDCCACQRBqJICAgIAAC10CAX8BfiOAgICAAEEgayICJICAgIAAIAIgASkDEDcDGCACIAEpAwg3AxAgAiABKQMANwMIIAJBCGpBAxCngICAACEDIABCADcDACAAIAM3AwggAkEgaiSAgICAAAtIAQF/I4CAgIAAQRBrIgMkgICAgAAgAyACNwMIIAMgATcDACADQQIQp4CAgAAhAiAAQgA3AwAgACACNwMIIANBEGokgICAgAALnwECAX8BfiOAgICAAEEQayICJICAgIAAEIeAgIAAIQMgAiAAOgALIAMgAxCIgICAAEKAgICAcINCBIQgAkELakEBENuAgIAAIQMgAiABQRh0IAFBgP4DcUEIdHIgAUEIdkGA/gNxIAFBGHZycjYCDCADIAMQiICAgABCgICAgHCDQgSEIAJBDGpBBBDbgICAACEDIAJBEGokgICAgAAgAwseACAAIAEgAq1CIIZCBIQgA61CIIZCBIQQmoCAgAALMQACQCAAEIiAgIAAQv////8PVg0AEN2AgIAAAAsgAEIEEImAgIAAQiCIpxDGgICAAAsJABDHgICAAAALqQMCAX8CfiOAgICAAEEgayICJICAgIAAQgwhAwJAIAFBBSABEIiAgIAAQiCIpxDfgICAACIBEIiAgIAAQoCAgIAQVA0AIAEQioCAgAAhAwsgAkEPaiADEIuAgIAAIgFCBEKEgICAgAIQjICAgAAQ4ICAgAACQAJAIAItAA9BAUYNACACKQAYIQMgAikAECEEIAJBD2ogAUKEgICAgAJChICAgIAEEIyAgIAAEOCAgIAAIAItAA9BAUYNACAEIAOEQgBSDQEgAikAECIBQjiGIAFCgP4Dg0IohoQgAUKAgPwHg0IYhiABQoCAgPgPg0IIhoSEIAFCCIhCgICA+A+DIAFCGIhCgID8B4OEIAFCKIhCgP4DgyABQjiIhISEIgNCf1cNASAAIAIpABgiAUI4hiABQoD+A4NCKIaEIAFCgID8B4NCGIYgAUKAgID4D4NCCIaEhCABQgiIQoCAgPgPgyABQhiIQoCA/AeDhCABQiiIQoD+A4MgAUI4iISEhDcDACAAIAM3AwggAkEgaiSAgICAAA8LEL2AgIAAAAtCg4CAgCAQt4CAgAAACxwAIAAgAa1CIIZCBIQgAq1CIIZCBIQQjICAgAAL2QECA38BfiOAgICAAEEQayICJICAgIAAQQEhAwJAIAEQiICAgABCgICAgHCDQoCAgICAAlINACACQQhqQgA3AwAgAkIANwMAIABBAWohBEEAIQMCQANAIAEQiICAgABCgICAgBBUDQEgARCfgICAACEFIAFBARCOgYCAACEBAkAgA0EQRg0AIAIgA2ogBUIgiDwAACADQQFqIQMMAQsLQRAQqoGAgAAACyAEIAIpAwA3AAAgBEEIaiACQQhqKQMANwAAQQAhAwsgACADOgAAIAJBEGokgICAgAAL7wICAX8BfiOAgICAAEEwayICJICAgIAAEIeAgIAAIQMgAkGABjsBECADIAMQiICAgABCgICAgHCDQgSEIAJBEGpBAhDbgICAAEKEgICAEBCNgICAACEDIAJCgICAgIDgwIbAADcDCCACQgA3AwAgAiAAQjiGNwMYIAJCADcDEAJAAkAgACABhEIAUg0AIAJBgCI7AS4gAyADEIiAgIAAQoCAgIBwg0IEhCACQS5qQQIQ24CAgABChICAgBAQjYCAgAAhACAAIAAQiICAgABCgICAgHCDQgSEIAJBEBDbgICAACEADAELIAJBgMIAOwEuIAMgAxCIgICAAEKAgICAcINCBIQgAkEuakECENuAgIAAQoSAgIAQEI2AgIAAIQAgACAAEIiAgIAAQoCAgIBwg0IEhCACQRAQ24CAgAAhACAAIAAQiICAgABCgICAgHCDQgSEIAJBEGpBEBDbgICAACEACyACQTBqJICAgIAAIAALXgIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAiAAEN6AgIAAAkAgASkDACACKQMAWiABKQMIIgAgAikDCCIDWSAAIANRGw0AQoOAgIAwELeAgIAAAAsgAkEQaiSAgICAAAtoAgF/AX4jgICAgABBIGsiAiSAgICAACACIAE3AwggAiAANgIEIAJBATYCACACQRBqIAIQqoCAgAACQCACKQMQIgFQDQAgAhDKgICAAAsgAikDGCEDIAJBIGokgICAgAAgA0IAIAGnGwtHAQF/I4CAgIAAQRBrIgMkgICAgAAgAyABNwMIIAMgADYCBCADQQE2AgAgAyACEK6AgIAAIAMQyoCAgAAgA0EQaiSAgICAAAtqAgJ/AX4jgICAgABBEGsiACSAgICAACAAQQI2AgBBACEBAkAgABCrgICAACICQgIQrICAgABFDQBBASEBAkACQCACQgIQgICAgACnQf8BcQ4CAQIACwALQQAhAQsgAEEQaiSAgICAACABC0ABAX8jgICAgABBEGsiAiSAgICAACACQQY2AgAgAiAANgIEIAIgARCugICAACACEMqAgIAAIAJBEGokgICAgAALPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABDNgICAACAAKQMAIAApAwgQ6ICAgAAhASAAQRBqJICAgIAAIAELDQAgAUICIACnQQFxGws+AgF/AX4jgICAgABBEGsiACSAgICAACAAEM+AgIAAIAApAwAgACkDCBDogICAACEBIABBEGokgICAgAAgAQs+AgF/AX4jgICAgABBEGsiACSAgICAACAAENOAgIAAIAApAwAgACkDCBDogICAACEBIABBEGokgICAgAAgAQs8AQF+AkAgAEL/AYNCzQBRDQAACxC/gICAABDOgICAACEBENKAgIAAIAAQ7ICAgAAgASAAEO2AgIAAQgILDgBBACAAQgIQ9ICAgAALYQIBfwF+I4CAgIAAQRBrIgIkgICAgABBxYPAgABBFRDwgICAABDxgICAACEDIAIgADcDCCACIAE3AwAgA0Hsg8CAAEECIAJBAhDygICAABCOgICAABogAkEQaiSAgICAAAv8AgIBfwJ+I4CAgIAAQSBrIgIkgICAgAACQAJAAkAgAEL/AYNCzQBSDQAgAUL/AYNCBFINABC/gICAABDOgICAACEDAkACQCABQv////8PVg0AIAJBCGoQ04CAgAAgAikDECEBIAIpAwhBiQgQ0ICAgAAgASAAENGAgIAARQ0DEO+AgIAAQbCEwIAAQRwQ8ICAgAAQ8YCAgAAhACACIAM3AxAgAiABNwMIIABB6ITAgABBAiACQQhqQQIQ8oCAgAAQjoCAgAAaDAELEPOAgIAAIAFCIIinSQ0DQQEgAEIAEPSAgIAAQQEQ1ICAgABCACABQoSAgIBwgyIBIAEQhYCAgAAaQfyDwIAAQRYQ8ICAgAAQ8YCAgAAhBCACIAE3AxggAiADNwMQIAIgADcDCCAEQZiEwIAAQQMgAkEIakEDEPKAgIAAEI6AgIAAGgsgAkEgaiSAgICAAEICDwsAC0KDgICA8IABELeAgIAAAAtCg4CAgICBARC3gICAAAALEwBBARDUgICAAEIAEI+AgIAAGgtFAgF/AX4jgICAgABBEGsiAiSAgICAACACIAAgARCrgYCAAAJAIAIoAgBBAUcNAAALIAIpAwghAyACQRBqJICAgIAAIAMLYwMBfwF+AX8jgICAgABBEGsiASSAgICAACABIAA3AwBCAiECQQEhAwJAA0AgA0UNASADQX9qIQMgACECDAALCyABIAI3AwggAUEIakEBEKeAgIAAIQAgAUEQaiSAgICAACAACy4AAkAgASADRg0AAAsgAK1CIIZCBIQgAq1CIIZCBIQgAa1CIIZCBIQQnICAgAALMwECfhCggICAACEAAkAQoYCAgABCIIgiASAAQiCIIgBUDQAgAacgAKdrDwsQvYCAgAAACxUAIAAQ1ICAgAAgASACEIGAgIAAGguIAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAQv4CAgAAgABDTgICAACAAKQMIIQEgACkDAEGJCBDQgICAACABEIaAgIAAGiAAENWAgIAAAkAgACgCAA0AEMWAgIAAAAsgACkDCCECEO+AgIAAIAEQ7ICAgAAgAiABEO2AgIAAIABBEGokgICAgABCAguEAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAQv4CAgAAQzoCAgAAhARDSgICAAEEAENSAgIAAQgIQj4CAgAAaQfiEwIAAQRMQ8ICAgAAQ8YCAgAAhAiAAIAE3AwggAkGMhcCAAEEBIABBCGpBARDygICAABCOgICAABogAEEQaiSAgICAAEICCzEAAkAgAEL/AYNCBFINACABQv8Bg0IEUg0AIABCIIinIAFCIIinEPiAgIAAQgIPCwALGwAgAK1CIIZCBIQgAa1CIIZCBIQQo4CAgAAaC7wEAQV/I4CAgIAAQdAAayICJICAgIAAIAJBKGogABD6gICAAAJAIAIoAihBAkYNACACQQhqQQhqIAJBKGpBCGoiAygCADYCACACIAIpAig3AwggAkEoaiABEPqAgIAAIAIoAihBAkYNACACQRhqQQhqIAMoAgA2AgAgAiACKQIoNwMYEMyAgIAAEL+AgIAAAkACQAJAEMiAgIAADQAQ84CAgAAiA0GA+4ADIANBgPuAA0kbIQQgAiACQRhqNgIsIAIgAkEIajYCKEEAIQMDQCADQQhGDQMCQCACQShqIANqKAIAIgUoAgBBAXFFDQAgBSgCCCIGIARLDQMgBSgCBCAGSw0DCyADQQRqIQMMAAsLQoOAgIDQ/wAQt4CAgAAAC0KDgICAwP8AELeAgIAAAAsCQAJAIAIoAghBAUcNACACKAIMIAIoAhAQ+4CAgAAMAQtBARDJgICAAEICEI+AgIAAGgsCQAJAIAIoAhhBAUcNACACKAIcIAIoAiAQ/ICAgAAMAQtBAhDJgICAAEICEI+AgIAAGgsgAkEoakEIaiACQQhqQQhqKAIANgIAIAJBPGogAkEYakEIaigCADYCACACIAIpAwg3AyggAiACKQMYNwI0QcCFwIAAQQ8Q8ICAgAAQ8YCAgAAhACACQShqEP2AgIAAIQEgAiACQTRqEP2AgIAANwNIIAIgATcDQCAAQeSFwIAAQQIgAkHAAGpBAhDygICAABCOgICAABogAkHQAGokgICAgABCAg8LAAtoAQF/I4CAgIAAQRBrIgIkgICAgAACQAJAIAFCAlENACACQQRqIAEQrIGAgAACQCACKAIERQ0AIABBAjYCAAwCCyAAIAIpAgg3AgQgAEEBNgIADAELIABBADYCAAsgAkEQaiSAgICAAAsOAEEBIAAgARCvgYCAAAsOAEECIAAgARCvgYCAAAtDAgF/AX4jgICAgABBEGsiASSAgICAACABIAAQgIGAgAACQCABKAIAQQFHDQAACyABKQMIIQIgAUEQaiSAgICAACACC6ABAgJ/AX4jgICAgABBwABrIgAkgICAgAAQv4CAgAAgAEEIahD/gICAACAAQRRqIgEQy4CAgAAgAEEwaiAAQQhqEICBgIAAAkACQCAAKAIwDQAgACkDOCECIABBMGogARCAgYCAACAAKAIwQQFHDQELAAsgACAAKQM4NwMoIAAgAjcDICAAQSBqQQIQp4CAgAAhAiAAQcAAaiSAgICAACACCwwAIABBARCugYCAAAswAAJAIAEoAgBBAUcNACAAIAEoAgQgASgCCBCtgYCAAA8LIABCADcDACAAQgI3AwgLiAEBAX8jgICAgABBEGsiACSAgICAABDMgICAABC/gICAAAJAEMiAgIAARQ0AQoOAgIDg/wAQt4CAgAAAC0EAEMmAgIAAQgFCAhCBgICAABpB9IXAgABBEhDwgICAABDxgICAAEEEQQAgAEEIakEAEPKAgIAAEI6AgIAAGiAAQRBqJICAgIAAQgILCQAQyICAgACtC3wCAX8BfiOAgICAAEEgayIAJICAgIAAEL+AgIAAIABBEGoQhIGAgAACQAJAIAAoAhANACAAKQMYIQEgAEEQahCEgYCAACAAKAIQQQFHDQELAAsgACAAKQMYNwMIIAAgATcDACAAQQIQp4CAgAAhASAAQSBqJICAgIAAIAELDAAgAEIBEKWBgIAACwgAELSAgIAAC1EBAX8jgICAgABBEGsiASSAgICAAAJAIABC/wGDQgRRDQAACyABIABCIIinEMKAgIAAIAEpAwAgASkDCBDogICAACEAIAFBEGokgICAgAAgAAv/AQQBfwF+AX8BfiOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCBFINAAJAAkAgAUICUg0AQgAhAQwBCyACIAEQvICAgAAgAigCAEEBRg0BIAIpAwghA0IBIQELEMyAgIAAEL+AgIAAQQEgAEIgiKciBBDDgICAACEFAkACQCABUA0AIAUgA0IBEIGAgIAAGiAEEMSAgIAADAELIAVCARCPgICAABoLQo7yqrzw1qrrABDxgICAACEFIAIgASADEOiAgIAANwMIIAIgAEKEgICAcIM3AwAgBUHIgsCAAEECIAJBAhDygICAABCOgICAABogAkEQaiSAgICAAEICDwsAC2cCAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABC2gICAAAJAIAEpAwAiAEICUg0AAAsgASkDCCECEMyAgIAAEL+AgIAAELSAgIAAEISAgIAAIAAgAhCJgYCAACABQRBqJICAgIAAQgILtgEDAX8BfgF/I4CAgIAAQSBrIgQkgICAgABBkILAgABBDBDwgICAACEFIAQgAiADEOiAgIAANwMIIAQgATcDAEEAIQYDQAJAIAZBEEcNAEEAIQYCQANAIAZBEEYNASAEQRBqIAZqIAQgBmopAwA3AwAgBkEIaiEGDAALCyAAIAUgBEEQakECEKeAgIAAEKiAgIAAIARBIGokgICAgAAPCyAEQRBqIAZqQgI3AwAgBkEIaiEGDAALC2QBAn8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQgRSDQAgAUL/AYNCBFINACACIABCIIinIAFCIIinEL6AgIAAIAIoAgAhAyACKQMIIQAgAkEQaiSAgICAACAAQgIgAxsPCwALlwQIAX8BfgF/An4BfwJ+BH8BfiOAgICAAEEgayIBJICAgIAAAkACQCAAQv8Bg0LLAFINABDMgICAABC/gICAACAAEJCAgIAAQiCIIQIgAUEIakEIaiEDQgAhBAJAA0AgBCACUQ0BIAAgBEIghkIEhBCRgICAACEFQQAh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Ug0AIAIgARCYgYCAACACKAIAQQFGDQAgAikDGCEBIAIpAxAhAxDMgICAABC/gICAABC0gICAABC1gICAABCEgICAACAAIAMgARCpgICAACACQSBqJICAgIAAQgIPCwALfQIBfwF+AkACQAJAAkAgAadB/wFxIgJBxQBGDQAgAkELRw0CIAAgAUI/hzcDGCAAIAFCCIc3AxAMAQsgARCWgICAACEDIAEQl4CAgAAhASAAIAM3AxggACABNwMQC0IAIQEMAQsgAEKDkICAgAE3AwhCASEBCyAAIAE3AwALDwAQkYGAgACtQiCGQgSECw4AEJuBgIAAELCAgIAAC1ECAn8BfiOAgICAAEEgayIAJICAgIAAEL+AgIAAIABBAzYCACAAQRBqIAAQsYCAgAAgACgCECEBIAApAxghAiAAQSBqJICAgIAAIAJCACABGwsOABCdgYCAABCwgICAAAtRAgJ/AX4jgICAgABBIGsiACSAgICAABC/gICAACAAQQQ2AgAgAEEQaiAAELGAgIAAIAAoAhAhASAAKQMYIQIgAEEgaiSAgICAACACQgAgARsLIwACQCAAQv8Bg0IEUQ0AAAsgAEIgiKcQn4GAgAAQsICAgAALZwIBfwJ+I4CAgIAAQSBrIgEkgICAgAAQv4CAgAAgAUEFNgIAIAEgADYCBCABQRBqIAEQqoCAgAACQCABKQMQIgJQDQAgARDKgICAAAsgASkDGCEDIAFBIGokgICAgAAgA0IAIAKnGwsjAAJAIABC/wGDQgRRDQAACyAAQiCIpxCUgYCAABCwgICAAAuPAQIBfwF+I4CAgIAAQRBrIgIkgICAgAACQAJAIABC/wGDQgRSDQAgAiABELyAgIAAIAIoAgBBAUYNACACKQMIIQMQv4CAgABCACEBAkAQ5YCAgABFDQAgAEIgiKcgAxDjgICAAEIBfCIBUA0CCyABELCAgIAAIQAgAkEQaiSAgICAACAADwsACxC9gICAAAALfgMBfwF+AX8jgICAgABBIGsiASSAgICAACABIAAQo4GAgAACQCABKAIAQQFGDQAgASkDCCECIAEoAhghAxC/gICAACABIAMQwoCAgABCACEAAkAgASgCAEEBRw0AIAEpAwggAhDRgICAAK0hAAsgAUEgaiSAgICAACAADwsAC+IBAgJ/An4jgICAgABBMGsiAiSA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c2ZlciB0byBhIHdyb25nIGFkZHJlc3MsIG93bmVyc2hpcCBpcyBsb3N0IGZvcmV2ZXIuCkNvbnNpZGVyIHVzaW5nIGBwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcmAgaW5zdGVhZC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MAAAAAEnRyYW5zZmVyX293bmVyc2hpcAAAAAAAAQAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAACXFByb3Bvc2VzIGFuIG93bmVyc2hpcCB0cmFuc2ZlciB0byBhIG5ldyBhZGRyZXNzLgoKVGhlIG5ldyBvd25lciBtdXN0IGNhbGwgYGFjY2VwdF9vd25lcnNoaXAoKWAgd2l0aGluIGB0dGxgIGxlZGdlcnMKdG8gY29tcGxldGUgdGhlIHRyYW5zZmVyLiBUaGUgcGVuZGluZyB0cmFuc2ZlciB3aWxsIGF1dG9tYXRpY2FsbHkgZXhwaXJlIGFmdGVyLgoKIyBBcmd1bWVudHMKLSBgbmV3X293bmVyYCAtIFRoZSBwcm9wb3NlZCBuZXcgb3duZXIKLSBgdHRsYCAtIE51bWJlciBvZiBsZWRnZXJzIHRoZSBuZXcgb3duZXIgaGFzIHRvIGFjY2VwdC4KVXNlIGAwYCB0byBjYW5jZWwgYSBwZW5kaW5nIHRyYW5zZmVyIChuZXdfb3duZXIgbXVzdCBtYXRjaCBwZW5kaW5nKS4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYE5vUGVuZGluZ1RyYW5zZmVyYCB3aGVuIGNhbmNlbGxpbmcgYW5kIG5vIHBlbmRpbmcgdHJhbnNmZXIgZXhpc3RzCi0gYEludmFsaWRUdGxgIGlmIHR0bCBleGNlZWRzIG1heCBUVEwKLSBgSW52YWxpZFBlbmRpbmdPd25lcmAgd2hlbiBjYW5jZWxsaW5nIHdpdGggd3JvbmcgbmV3X293bmVyIGFkZHJlc3MAAAAacHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXIAAAAAAAIAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAAAAAC5QWNjZXB0cyBhIHBlbmRpbmcgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2Zlci4KCk11c3QgYmUgY2FsbGVkIGJ5IHRoZSBwZW5kaW5nIG93bmVyIGJlZm9yZSB0aGUgVFRMIGV4cGlyZXMuCgojIFBhbmljcwotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgaWYgdGhlcmUgaXMgbm8gcGVuZGluZyB0cmFuc2ZlciAob3IgaXQgZXhwaXJlZCkAAAAAAAAQYWNjZXB0X293bmVyc2hpcAAAAAAAAAAAAAAAAAAAAKRQZXJtYW5lbnRseSByZW5vdW5jZXMgb3duZXJzaGlwLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgVHJhbnNmZXJJblByb2dyZXNzYCBpZiBhIDItc3RlcCB0cmFuc2ZlciBpcyBpbiBwcm9ncmVzcyAoY2FuY2VsIGl0IGZpcnN0KQAAABJyZW5vdW5jZV9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAAAAAKVFeHRlbmRzIHRoZSBpbnN0YW5jZSBUVEwuCgojIEFyZ3VtZW50cwoKKiBgdGhyZXNob2xkYCAtIFRoZSB0aHJlc2hvbGQgdG8gZXh0ZW5kIHRoZSBUVEwgKGlmIGN1cnJlbnQgVFRMIGlzIGJlbG93IHRoaXMsIGV4dGVuZCkuCiogYGV4dGVuZF90b2AgLSBUaGUgVFRMIHRvIGV4dGVuZCB0by4AAAAAAAATZXh0ZW5kX2luc3RhbmNlX3R0bAAAAAACAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAlleHRlbmRfdG8AAAAAAAAEAAAAAAAAAAAAAAGPU2V0cyBUVEwgY29uZmlncyBmb3IgaW5zdGFuY2UgYW5kIHBlcnNpc3RlbnQgc3RvcmFnZS4KCi0gYE5vbmVgIHZhbHVlcyByZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgY29uZmlnIChkaXNhYmxlcyBhdXRvLWV4dGVuc2lvbiBmb3IgdGhhdCB0eXBlKQotIFZhbGlkYXRlcyB0aGF0IGB0aHJlc2hvbGQgPD0gZXh0ZW5kX3RvIDw9IE1BWF9UVExgCgojIEFyZ3VtZW50cwotIGBpbnN0YW5jZWAgLSBUVEwgY29uZmlnIGZvciBpbnN0YW5jZSBzdG9yYWdlCi0gYHBlcnNpc3RlbnRgIC0gVFRMIGNvbmZpZyBmb3IgcGVyc2lzdGVudCBzdG9yYWdlCgojIFBhbmljcwotIGBUdGxDb25maWdGcm96ZW5gIGlmIGNvbmZpZ3MgYXJlIGZyb3plbgotIGBJbnZhbGlkVHRsQ29uZmlnYCBpZiB2YWxpZGF0aW9uIGZhaWxzAAAAAA9zZXRfdHRsX2NvbmZpZ3MAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAASFJldHVybnMgdGhlIGN1cnJlbnQgVFRMIGNvbmZpZ3MgYXMgKGluc3RhbmNlX2NvbmZpZywgcGVyc2lzdGVudF9jb25maWcpLgAAAAt0dGxfY29uZmlncwAAAAAAAAAAAQAAA+0AAAACAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAOFQZXJtYW5lbnRseSBmcmVlemVzIFRUTCBjb25maWdzLCBwcmV2ZW50aW5nIGFueSBmdXR1cmUgbW9kaWZpY2F0aW9ucy4KClRoaXMgaXMgaXJyZXZlcnNpYmxlIGFuZCBwcm92aWRlcyBpbW11dGFiaWxpdHkgZ3VhcmFudGVlcyB0byB1c2Vycy4KRW1pdHMgYFR0bENvbmZpZ3NGcm96ZW5gIGV2ZW50LgoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnQWxyZWFkeUZyb3plbmAgaWYgYWxyZWFkeSBmcm96ZW4AAAAAAAASZnJlZXplX3R0bF9jb25maWdzAAAAAAAAAAAAAAAAAAAAAAAnUmV0dXJucyB3aGV0aGVyIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAABVpc190dGxfY29uZmlnc19mcm96ZW4AAAAAAAAAAAAAAQAAAAEAAAAAAAAArlJldHJpZXZlcyB0aGUgT0FwcCB2ZXJzaW9uIGluZm9ybWF0aW9uLgoKIyBSZXR1cm5zCkEgdHVwbGUgY29udGFpbmluZzoKLSBgc2VuZGVyX3ZlcnNpb25gOiBUaGUgdmVyc2lvbiBvZiB0aGUgT0FwcFNlbmRlcgotIGByZWNlaXZlcl92ZXJzaW9uYDogVGhlIHZlcnNpb24gb2YgdGhlIE9BcHBSZWNlaXZlcgAAAAAADG9hcHBfdmVyc2lvbgAAAAAAAAABAAAD7QAAAAIAAAAGAAAABgAAAAAAAABsUmV0cmlldmVzIHRoZSBMYXllclplcm8gZW5kcG9pbnQgYWRkcmVzcyBhc3NvY2lhdGVkIHdpdGggdGhlIE9BcHAuCgojIFJldHVybnMKVGhlIExheWVyWmVybyBlbmRwb2ludCBhZGRyZXNzAAAACGVuZHBvaW50AAAAAAAAAAEAAAATAAAAAAAAAMFSZXRyaWV2ZXMgdGhlIHBlZXIgKE9BcHApIGFzc29jaWF0ZWQgd2l0aCBhIGNvcnJlc3BvbmRpbmcgZW5kcG9pbnQuCgojIEFyZ3VtZW50cwoqIGBlaWRgIC0gVGhlIGVuZHBvaW50IElECgojIFJldHVybnMKVGhlIHBlZXIgYWRkcmVzcyAoT0FwcCBpbnN0YW5jZSkgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGVuZHBvaW50AAAAAAAABHBlZXIAAAABAAAAAAAAAANlaWQAAAAABAAAAAEAAAPoAAAD7gAAACAAAAAAAAAA5VNldHMgb3IgcmVtb3ZlcyB0aGUgcGVlciBhZGRyZXNzIChPQXBwIGluc3RhbmNlKSBmb3IgYSBjb3JyZXNwb25kaW5nIGVuZHBvaW50LgoKIyBBcmd1bWVudHMKKiBgZWlkYCAtIFRoZSBlbmRwb2ludCBJRAoqIGBwZWVyYCAtIFRoZSBhZGRyZXNzIG9mIHRoZSBwZWVyIHRvIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBlbmRwb2ludCwgb3IgTm9uZSB0byByZW1vdmUgdGhlIHBlZXIAAAAAAAAIc2V0X3BlZXIAAAACAAAAAAAAAANlaWQAAAAABAAAAAAAAAAEcGVlcgAAA+gAAAPuAAAAIAAAAAAAAAAAAAAAjlNldHMgdGhlIGRlbGVnYXRlIGFkZHJlc3MgZm9yIHRoZSBPQXBwIENvcmUuCgojIEFyZ3VtZW50cwoqIGBkZWxlZ2F0ZWAgLSBUaGUgYWRkcmVzcyBvZiB0aGUgZGVsZWdhdGUgdG8gYmUgc2V0LCBvciBOb25lIHRvIHJlbW92ZSB0aGUgZGVsZWdhdGUAAAAAAAxzZXRfZGVsZWdhdGUAAAABAAAAAAAAAAhkZWxlZ2F0ZQAAA+gAAAATAAAAAAAAAAAAAADZUmV0cmlldmVzIHRoZSBlbmZvcmNlZCBvcHRpb25zIGZvciBhIGdpdmVuIGVuZHBvaW50IGFuZCBtZXNzYWdlIHR5cGUuCgojIEFyZ3VtZW50cwoqIGBlaWRgIC0gVGhlIGVuZHBvaW50IElECiogYG1zZ190eXBlYCAtIFRoZSBPQXBwIG1lc3NhZ2UgdHlwZQoKIyBSZXR1cm5zClRoZSBlbmZvcmNlZCBvcHRpb25zIGZvciB0aGUgZ2l2ZW4gZW5kcG9pbnQgYW5kIG1lc3NhZ2UgdHlwZQAAAAAAABBlbmZvcmNlZF9vcHRpb25zAAAAAgAAAAAAAAADZWlkAAAAAAQAAAAAAAAACG1zZ190eXBlAAAABAAAAAEAAAPoAAAADgAAAAAAAAKmU2V0cyBvciByZW1vdmVzIHRoZSBlbmZvcmNlZCBvcHRpb25zIGZvciBzcGVjaWZpYyBlbmRwb2ludCBhbmQgbWVzc2FnZSB0eXBlIGNvbWJpbmF0aW9ucy4KCk9ubHkgdGhlIGBhdXRob3JpemVyYCBvZiB0aGUgT0FwcCBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uLgpQcm92aWRlcyBhIHdheSBmb3IgdGhlIE9BcHAgdG8gZW5mb3JjZSB0aGluZ3MgbGlrZSBwYXlpbmcgZm9yIFByZUNyaW1lLCBBTkQvT1IgbWluaW11bSBkc3QgbHpSZWNlaXZlIGdhcyBhbW91bnRzIGV0Yy4KVGhlc2UgZW5mb3JjZWQgb3B0aW9ucyBjYW4gdmFyeSBhcyB0aGUgcG90ZW50aWFsIG9wdGlvbnMvZXhlY3V0aW9uIG9uIHRoZSByZW1vdGUgbWF5IGRpZmZlciBhcyBwZXIgdGhlIG1zZ190eXBlLgplLmcuIEFtb3VudCBvZiBselJlY2VpdmUoKSBnYXMgbmVjZXNzYXJ5IHRvIGRlbGl2ZXIgYSBsekNvbXBvc2UoKSBtZXNzYWdlIGFkZHMgb3ZlcmhlYWQgeW91IGRvbid0IHdhbnQgdG8gcGF5CmlmIHlvdSBhcmUgb25seSBtYWtpbmcgYSBzdGFuZGFyZCBMYXllclplcm8gbWVzc2FnZSBpZS4gbHpSZWNlaXZlKCkgV0lUSE9VVCBzZW5kQ29tcG9zZSgpLgoKIyBBcmd1bWVudHMKKiBgb3B0aW9uc2AgLSBBIHZlY3RvciBvZiBFbmZvcmNlZE9wdGlvblBhcmFtIHN0cnVjdHVyZXMgc3BlY2lmeWluZyBlbmZvcmNlZCBvcHRpb25zAAAAAAAUc2V0X2VuZm9yY2VkX29wdGlvbnMAAAABAAAAAAAAAAdvcHRpb25zAAAAA+oAAAfQAAAAE0VuZm9yY2VkT3B0aW9uUGFyYW0AAAAAAAAAAAAAAAJ6Q29tYmluZXMgb3B0aW9ucyBmb3IgYSBnaXZlbiBlbmRwb2ludCBhbmQgbWVzc2FnZSB0eXBlLgoKSWYgdGhlcmUgaXMgYW4gZW5mb3JjZWQgbHpSZWNlaXZlIG9wdGlvbjoKLSB7Z2FzX2xpbWl0OiAyMDBrLCB2YWx1ZTogMSBYTE19IEFORCBhIGNhbGxlciBzdXBwbGllcyBhIGx6UmVjZWl2ZSBvcHRpb246IHtnYXNfbGltaXQ6IDEwMGssIHZhbHVlOiAwLjUgWExNfQotIFRoZSByZXN1bHRpbmcgb3B0aW9ucyB3aWxsIGJlIHtnYXNfbGltaXQ6IDMwMGssIHZhbHVlOiAxLjUgWExNfSB3aGVuIHRoZSBtZXNzYWdlIGlzIGV4ZWN1dGVkIG9uIHRoZSByZW1vdGUgbHpfcmVjZWl2ZSgpIGZ1bmN0aW9uLgpUaGUgcHJlc2VuY2Ugb2YgZHVwbGljYXRlZCBvcHRpb25zIGlzIGhhbmRsZWQgb2ZmLWNoYWluIGluIHRoZSB2ZXJpZmllci9leGVjdXRvci4KCiMgQXJndW1lbnRzCiogYGVpZGAgLSBUaGUgZW5kcG9pbnQgSUQKKiBgbXNnX3R5cGVgIC0gVGhlIE9BcHAgbWVzc2FnZSB0eXBlCiogYGV4dHJhX29wdGlvbnNgIC0gQWRkaXRpb25hbCBvcHRpb25zIHBhc3NlZCBieSB0aGUgY2FsbGVyCgojIFJldHVybnMKVGhlIGNvbWJpbmF0aW9uIG9mIGNhbGxlciBzcGVjaWZpZWQgb3B0aW9ucyBBTkQgZW5mb3JjZWQgb3B0aW9ucwAAAAAAD2NvbWJpbmVfb3B0aW9ucwAAAAADAAAAAAAAAANlaWQAAAAABAAAAAAAAAAIbXNnX3R5cGUAAAAEAAAAAAAAAA1leHRyYV9vcHRpb25zAAAAAAAADgAAAAEAAAAOAAAAAAAAAAAAAAANX19jb25zdHJ1Y3RvcgAAAAAAAAMAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAAIZW5kcG9pbnQAAAATAAAAAAAAAAhkZWxlZ2F0ZQAAABMAAAAAAAAAAAAAAAAAAAAFcXVvdGUAAAAAAAAEAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAAAAAAACG1zZ190eXBlAAAABAAAAAAAAAAHb3B0aW9ucwAAAAAOAAAAAAAAAApwYXlfaW5fenJvAAAAAAABAAAAAQAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAAAAAAAAAAAAJaW5jcmVtZW50AAAAAAAABQAAAAAAAAAGY2FsbGVyAAAAAAATAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAAAAAAACG1zZ190eXBlAAAABAAAAAAAAAAHb3B0aW9ucwAAAAAOAAAAAAAAAANmZWUAAAAH0AAAAAxNZXNzYWdpbmdGZWUAAAAAAAAAAAAAAAAAAAARc2V0X29yZGVyZWRfbm9uY2UAAAAAAAABAAAAAAAAAA1vcmRlcmVkX25vbmNlAAAAAAAAAQAAAAAAAAAAAAAAAAAAABJza2lwX2luYm91bmRfbm9uY2UAAAAAAAMAAAAAAAAAB3NyY19laWQAAAAABAAAAAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAAAAAAAAFbm9uY2UAAAAAAAAGAAAAAAAAAAAAAAAAAAAACHdpdGhkcmF3AAAAAgAAAAAAAAACdG8AAAAAABMAAAAAAAAABmFtb3VudAAAAAAACwAAAAAAAAAAAAAAAAAAAANlaWQAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAFY291bnQAAAAAAAAAAAAAAQAAAAYAAAAAAAAAAAAAAA5jb21wb3NlZF9jb3VudAAAAAAAAAAAAAEAAAAGAAAAAAAAAAAAAAANaW5ib3VuZF9jb3VudAAAAAAAAAEAAAAAAAAAA2VpZAAAAAAEAAAAAQAAAAYAAAAAAAAAAAAAAA5vdXRib3VuZF9jb3VudAAAAAAAAQAAAAAAAAADZWlkAAAAAAQAAAABAAAABgAAAAAAAAAAAAAACm5leHRfbm9uY2UAAAAAAAIAAAAAAAAAB3NyY19laWQAAAAABAAAAAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAAAEAAAAGAAAAAAAAALdDaGVja3MgaWYgYSBtZXNzYWdpbmcgcGF0aCBjYW4gYmUgaW5pdGlhbGl6ZWQgZm9yIHRoZSBnaXZlbiBvcmlnaW4uCgojIEFyZ3VtZW50cwoqIGBvcmlnaW5gIC0gVGhlIG9yaWdpbiBvZiB0aGUgbWVzc2FnZQoKIyBSZXR1cm5zClRydWUgaWYgdGhlIHBhdGggY2FuIGJlIGluaXRpYWxpemVkLCBmYWxzZSBvdGhlcndpc2UAAAAAFWFsbG93X2luaXRpYWxpemVfcGF0aAAAAAAAAAEAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAEAAAABAAAAAAAAAyNFbnRyeSBwb2ludCBmb3IgcmVjZWl2aW5nIG1lc3NhZ2VzIG9yIHBhY2tldHMgZnJvbSB0aGUgTGF5ZXJaZXJvIGVuZHBvaW50LgoKVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gY2FsbHMgYGNsZWFyX3BheWxvYWRfYW5kX3RyYW5zZmVyYCB0byB2YWxpZGF0ZSB0aGUgbWVzc2FnZQphbmQgY2xlYXIgaXQgZnJvbSB0aGUgZW5kcG9pbnQsIHRoZW4gZGVsZWdhdGVzIHRvIGBfX2x6X3JlY2VpdmVgIGZvciBhcHBsaWNhdGlvbiBsb2dpYy4KCiMgQXJndW1lbnRzCiogYGV4ZWN1dG9yYCAtIFRoZSBhZGRyZXNzIG9mIHRoZSBleGVjdXRvciBmb3IgdGhlIHJlY2VpdmVkIG1lc3NhZ2UKKiBgb3JpZ2luYCAtIFRoZSBvcmlnaW4gaW5mb3JtYXRpb24gY29udGFpbmluZyB0aGUgc291cmNlIGVuZHBvaW50IGFuZCBzZW5kZXIgYWRkcmVzczoKLSBgc3JjX2VpZGA6IFRoZSBzb3VyY2UgY2hhaW4gZW5kcG9pbnQgSUQKLSBgc2VuZGVyYDogVGhlIHNlbmRlciBhZGRyZXNzIG9uIHRoZSBzb3VyY2UgY2hhaW4KLSBgbm9uY2VgOiBUaGUgbm9uY2Ugb2YgdGhlIG1lc3NhZ2UKKiBgZ3VpZGAgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZWNlaXZlZCBMYXllclplcm8gbWVzc2FnZQoqIGBtZXNzYWdlYCAtIFRoZSBwYXlsb2FkIG9mIHRoZSByZWNlaXZlZCBtZXNzYWdlCiogYGV4dHJhX2RhdGFgIC0gQWRkaXRpb25hbCBhcmJpdHJhcnkgZGF0YSBwcm92aWRlZCBieSB0aGUgY29ycmVzcG9uZGluZyBleGVjdXRvcgoqIGB2YWx1ZWAgLSBUaGUgbmF0aXZlIHRva2VuIHZhbHVlIHNlbnQgd2l0aCB0aGUgbWVzc2FnZQAAAAAKbHpfcmVjZWl2ZQAAAAAABgAAAAAAAAAIZXhlY3V0b3IAAAATAAAAAAAAAAZvcmlnaW4AAAAAB9AAAAAGT3JpZ2luAAAAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAAAAAAHbWVzc2FnZQAAAAAOAAAAAAAAAApleHRyYV9kYXRhAAAAAAAOAAAAAAAAAAV2YWx1ZQAAAAAAAAsAAAAAAAAAAAAAAexJbmRpY2F0ZXMgd2hldGhlciBhbiBhZGRyZXNzIGlzIGFuIGFwcHJvdmVkIGNvbXBvc2VNc2cgc2VuZGVyIHRvIHRoZSBFbmRwb2ludC4KCkFwcGxpY2F0aW9ucyBjYW4gb3B0aW9uYWxseSBjaG9vc2UgdG8gaW1wbGVtZW50IHNlcGFyYXRlIGNvbXBvc2VNc2cgc2VuZGVycyB0aGF0IGFyZSBOT1QgdGhlIGJyaWRnaW5nIGxheWVyLgpUaGUgZGVmYXVsdCBzZW5kZXIgSVMgdGhlIE9BcHBSZWNlaXZlciBpbXBsZW1lbnRlci4KCiMgQXJndW1lbnRzCiogYG9yaWdpbmAgLSBUaGUgb3JpZ2luIGluZm9ybWF0aW9uIGNvbnRhaW5pbmcgdGhlIHNvdXJjZSBlbmRwb2ludCBhbmQgc2VuZGVyIGFkZHJlc3MKKiBgbWVzc2Fn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bHJlYWR5IGV4aXN0cyBmb3IgdGhpcyBHVUlEIGFuZCBpbmRleAAAAAAADUNvbXBvc2VFeGlzdHMAAAAAAAACAAAANkNvbXBvc2UgbWVzc2FnZSBub3QgZm91bmQgZm9yIHRoZSBnaXZlbiBHVUlEIGFuZCBpbmRleAAAAAAAD0NvbXBvc2VOb3RGb3VuZAAAAAADAAAAOkRlZmF1bHQgcmVjZWl2ZSBsaWJyYXJ5IGlzIG5vdCBzZXQgZm9yIHRoZSBzb3VyY2UgZW5kcG9pbnQAAAAAABxEZWZhdWx0UmVjZWl2ZUxpYlVuYXZhaWxhYmxlAAAABAAAADxEZWZhdWx0IHNlbmQgbGlicmFyeSBpcyBub3Qgc2V0IGZvciB0aGUgZGVzdGluYXRpb24gZW5kcG9pbnQAAAAZRGVmYXVsdFNlbmRMaWJVbmF2YWlsYWJsZQAAAAAAAAUAAAAvU3VwcGxpZWQgbmF0aXZlIHRva2VuIGZlZSBpcyBsZXNzIHRoYW4gcmVxdWlyZWQAAAAAFUluc3VmZmljaWVudE5hdGl2ZUZlZQAAAAAAAAYAAAAsU3VwcGxpZWQgWlJPIHRva2VuIGZlZSBpcyBsZXNzIHRoYW4gcmVxdWlyZWQAAAASSW5zdWZmaWNpZW50WnJvRmVlAAAAAAAHAAAAK1RpbWVvdXQgZXhwaXJ5IGlzIGludmFsaWQgKGFscmVhZHkgZXhwaXJlZCkAAAAADUludmFsaWRFeHBpcnkAAAAAAAAIAAAAIEZlZSBhbW91bnQgaXMgaW52YWxpZCAobmVnYXRpdmUpAAAAEEludmFsaWRGZWVBbW91bnQAAAAJAAAAK0NvbXBvc2UgaW5kZXggZXhjZWVkcyBtYXhpbXVtIGFsbG93ZWQgdmFsdWUAAAAADEludmFsaWRJbmRleAAAAAoAAAAsTm9uY2UgaXMgaW52YWxpZCBmb3IgdGhlIHJlcXVlc3RlZCBvcGVyYXRpb24AAAAMSW52YWxpZE5vbmNlAAAACwAAADBQYXlsb2FkIGhhc2ggaXMgaW52YWxpZCAoZW1wdHkgaGFzaCBub3QgYWxsb3dlZCkAAAASSW52YWxpZFBheWxvYWRIYXNoAAAAAAAMAAAAQVJlY2VpdmUgbGlicmFyeSBpcyBub3QgdmFsaWQgZm9yIHRoZSByZWNlaXZlciBhbmQgc291cmNlIGVuZHBvaW50AAAAAAAAFUludmFsaWRSZWNlaXZlTGlicmFyeQAAAAAAAA0AAAAxT3BlcmF0aW9uIHJlcXVpcmVzIGEgbm9uLWRlZmF1bHQgKGN1c3RvbSkgbGlicmFyeQAAAAAAABFPbmx5Tm9uRGVmYXVsdExpYgAAAAAAAA4AAAAnTGlicmFyeSBtdXN0IHN1cHBvcnQgcmVjZWl2aW5nIG1lc3NhZ2VzAAAAAA5Pbmx5UmVjZWl2ZUxpYgAAAAAADwAAACxMaWJyYXJ5IG11c3QgYmUgcmVnaXN0ZXJlZCB3aXRoIHRoZSBlbmRwb2ludAAAABFPbmx5UmVnaXN0ZXJlZExpYgAAAAAAABAAAAAlTGlicmFyeSBtdXN0IHN1cHBvcnQgc2VuZGluZyBtZXNzYWdlcwAAAAAAAAtPbmx5U2VuZExpYgAAAAARAAAAOU1lc3NhZ2luZyBwYXRoIGNhbm5vdCBiZSBpbml0aWFsaXplZCBmb3IgdGhlIGdpdmVuIG9yaWdpbgAAAAAAABRQYXRoTm90SW5pdGlhbGl6YWJsZQAAABIAAAAvTWVzc2FnZSBjYW5ub3QgYmUgdmVyaWZpZWQgZm9yIHRoZSBnaXZlbiBvcmlnaW4AAAAAEVBhdGhOb3RWZXJpZmlhYmxlAAAAAAAAEwAAACtQYXlsb2FkIGhhc2ggZG9lcyBub3QgbWF0Y2ggdGhlIHN0b3JlZCBoYXNoAAAAABNQYXlsb2FkSGFzaE5vdEZvdW5kAAAAABQAAAAnTmV3IHZhbHVlIGlzIHRoZSBzYW1lIGFzIGV4aXN0aW5nIHZhbHVlAAAAAAlTYW1lVmFsdWUAAAAAAAAVAAAAL0NhbGxlciBpcyBub3QgYXV0aG9yaXplZCAobm90IE9BcHAgb3IgZGVsZWdhdGUpAAAAAAxVbmF1dGhvcml6ZWQAAAAWAAAAK0VuZHBvaW50IElEIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGxpYnJhcnkAAAAADlVuc3VwcG9ydGVkRWlkAAAAAAAXAAAAOVpSTyBmZWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybyB3aGVuIHBheV9pbl96cm8gaXMgdHJ1ZQAAAAAAAApaZXJvWnJvRmVlAAAAAAAYAAAAHFpSTyB0b2tlbiBhZGRyZXNzIGlzIG5vdCBzZXQAAAAOWnJvVW5hdmFpbGFibGUAAAAAABkAAAABAAAALVBhcmFtZXRlcnMgZm9yIHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAAAAPTWVzc2FnaW5nUGFyYW1zAAAAAAUAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAHFRoZSBtZXNzYWdlIHBheWxvYWQgdG8gc2VuZC4AAAAHbWVzc2FnZQAAAAAOAAAAIUVuY29kZWQgZXhlY3V0b3IgYW5kIERWTiBvcHRpb25zLgAAAAAAAAdvcHRpb25zAAAAAA4AAAA5V2hldGhlciB0byBwYXkgZmVlcyBpbiBaUk8gdG9rZW4gaW5zdGVhZCBvZiBuYXRpdmUgdG9rZW4uAAAAAAAACnBheV9pbl96cm8AAAAAAAEAAAA1UmVjZWl2ZXIgYWRkcmVzcyBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAAEAAABNU291cmNlIG1lc3NhZ2UgaW5mb3JtYXRpb24gaWRlbnRpZnlpbmcgd2hlcmUgYSBjcm9zcy1jaGFpbiBtZXNzYWdlIGNhbWUgZnJvbS4AAAAAAAAAAAAABk9yaWdpbgAAAAAAAwAAABdOb25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAAFbm9uY2UAAAAAAAAGAAAALlNlbmRlciBhZGRyZXNzIG9uIHRoZSBzb3VyY2UgY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAZzZW5kZXIAAAAAA+4AAAAgAAAAJlNvdXJjZSBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAAChGZWUgc3RydWN0dXJlIGZvciBjcm9zcy1jaGFpbiBtZXNzYWdpbmcuAAAAAAAAAAxNZXNzYWdpbmdGZWUAAAACAAAAH0ZlZSBwYWlkIGluIG5hdGl2ZSB0b2tlbiAoWExNKS4AAAAACm5hdGl2ZV9mZWUAAAAAAAsAAAAoRmVlIHBhaWQgaW4gWlJPIHRva2VuIChMYXllclplcm8gdG9rZW4pLgAAAAd6cm9fZmVlAAAAAAsAAAABAAAAQlJlY2VpcHQgcmV0dXJuZWQgYWZ0ZXIgc3VjY2Vzc2Z1bGx5IHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAABBNZXNzYWdpbmdSZWNlaXB0AAAAAwAAAClUaGUgZmVlcyBjaGFyZ2VkIGZvciBzZW5kaW5nIHRoZSBtZXNzYWdlLgAAAAAAAANmZWUAAAAH0AAAAAxNZXNzYWdpbmdGZWUAAAArR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBtZXNzYWdlLgAAAAAEZ3VpZAAAA+4AAAAgAAAAJFRoZSBvdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAACAAAAOFR5cGUgb2YgbWVzc2FnZSBsaWJyYXJ5IGluZGljYXRpbmcgc3VwcG9ydGVkIG9wZXJhdGlvbnMuAAAAAAAAAA5NZXNzYWdlTGliVHlwZQAAAAAAAwAAAAAAAAAfU3VwcG9ydHMgb25seSBzZW5kaW5nIG1lc3NhZ2VzLgAAAAAEU2VuZAAAAAAAAAAhU3VwcG9ydHMgb25seSByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAAB1JlY2VpdmUAAAAAAAAAAC1TdXBwb3J0cyBib3RoIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAOU2VuZEFuZFJlY2VpdmUAAAAAAAEAAAC3VmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgYSBtZXNzYWdlIGxpYnJhcnkuCgpOb3RlOiBgbWlub3JgIGFuZCBgZW5kcG9pbnRfdmVyc2lvbmAgdXNlIGB1MzJgIGluc3RlYWQgb2YgYHU4YCBiZWNhdXNlIFN0ZWxsYXIgZG9lcyBub3QKc3VwcG9ydCBgdThgIHR5cGVzIGluIGNvbnRyYWN0IGludGVyZmFjZSBmdW5jdGlvbnMuAAAAAAAAAAARTWVzc2FnZUxpYlZlcnNpb24AAAAAAAADAAAAM0VuZHBvaW50IHZlcnNpb24gKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAQZW5kcG9pbnRfdmVyc2lvbgAAAAQAAAAVTWFqb3IgdmVyc2lvbiBudW1iZXIuAAAAAAAABW1ham9yAAAAAAAABgAAADdNaW5vciB2ZXJzaW9uIG51bWJlciAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAAAVtaW5vcgAAAAAAAAQAAAABAAAANlRpbWVvdXQgY29uZmlndXJhdGlvbiBmb3IgcmVjZWl2ZSBsaWJyYXJ5IHRyYW5zaXRpb25zLgAAAAAAAAAAAAdUaW1lb3V0AAAAAAIAAAAzVW5peCB0aW1lc3RhbXAgaW4gc2Vjb25kcyB3aGVuIHRoZSB0aW1lb3V0IGV4cGlyZXMuAAAAAAZleHBpcnkAAAAAAAYAAABDVGhlIG9sZCBsaWJyYXJ5IGFkZHJlc3MgdGhhdCByZW1haW5zIHZhbGlkIGR1cmluZyB0aGUgZ3JhY2UgcGVyaW9kLgAAAAADbGliAAAAABMAAAABAAAANVBhcmFtZXRlcnMgZm9yIHNldHRpbmcgbWVzc2FnZSBsaWJyYXJ5IGNvbmZpZ3VyYXRpb24uAAAAAAAAAAAAAA5TZXRDb25maWdQYXJhbQAAAAAAAwAAAB9YRFItZW5jb2RlZCBjb25maWd1cmF0aW9uIGRhdGEuAAAAAAZjb25maWcAAAAAAA4AAAAwVGhlIHR5cGUgb2YgY29uZmlndXJhdGlvbiAoZS5nLiwgZXhlY3V0b3IsIFVMTikuAAAAC2NvbmZpZ190eXBlAAAAAAQAAAAnVGhlIGVuZHBvaW50IElEIHRoaXMgY29uZmlnIGFwcGxpZXMgdG8uAAAAAANlaWQAAAAABAAAAAEAAAAxUmVzb2x2ZWQgbGlicmFyeSBpbmZvcm1hdGlvbiB3aXRoIGRlZmF1bHQgc3RhdHVzLgAAAAAAAAAAAAAPUmVzb2x2ZWRMaWJyYXJ5AAAAAAIAAABEV2hldGhlciB0aGlzIGlzIHRoZSBkZWZhdWx0IGxpYnJhcnkgKHRydWUpIG9yIE9BcHAtc3BlY2lmaWMgKGZhbHNlKS4AAAAKaXNfZGVmYXVsdAAAAAAAAQAAAB1UaGUgcmVzb2x2ZWQgbGlicmFyeSBhZGRyZXNzLgAAAAAAAANsaWIAAAAAEwAAAAEAAABIT3V0Ym91bmQgcGFja2V0IGNvbnRhaW5pbmcgYWxsIGluZm9ybWF0aW9uIGZvciBjcm9zcy1jaGFpbiB0cmFuc21pc3Npb24uAAAAAAAAAA5PdXRib3VuZFBhY2tldAAAAAAABwAAABhEZXN0aW5hdGlvbiBlbmRwb2ludCBJRC4AAAAHZHN0X2VpZAAAAAAEAAAALEdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIG1lc3NhZ2UuAAAABGd1aWQAAAPuAAAAIAAAABRUaGUgbWVzc2FnZSBwYXlsb2FkLgAAAAdtZXNzYWdlAAAAAA4AAAAgT3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAMVJlY2VpdmVyIGFkZHJlc3Mgb24gZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAB9TZW5kZXIgYWRkcmVzcyBvbiBzb3VyY2UgY2hhaW4uAAAAAAZzZW5kZXIAAAAAABMAAAATU291cmNlIGVuZHBvaW50IElELgAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAACtBIGZlZSByZWNpcGllbnQgd2l0aCB0aGUgYW1vdW50IHRvIGJlIHBhaWQuAAAAAAAAAAAMRmVlUmVjaXBpZW50AAAAAgAAABVBbW91bnQgb2YgZmVlIHRvIHBheS4AAAAAAAAGYW1vdW50AAAAAAALAAAAH1RoZSBhZGRyZXNzIHRvIHNlbmQgdGhlIGZlZSB0by4AAAAAAnRvAAAAAAATAAAAAQAAADxSZXN1bHQgb2Ygc2VuZCBvcGVyYXRpb24gY29udGFpbmluZyBmZWVzIGFuZCBlbmNvZGVkIHBhY2tldC4AAAAAAAAADUZlZXNBbmRQYWNrZXQAAAAAAAADAAAAKlRoZSBlbmNvZGVkIHBhY2tldCByZWFkeSBmb3IgdHJhbnNtaXNzaW9uLgAAAAAADmVuY29kZWRfcGFja2V0AAAAAAAOAAAAP0xpc3Qgb2YgbmF0aXZlIHRva2VuIGZlZSByZWNpcGllbnRzIChleGVjdXRvciwgRFZOcywgdHJlYXN1cnkpLgAAAAAVbmF0aXZlX2ZlZV9yZWNpcGllbnRzAAAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAALExpc3Qgb2YgWlJPIHRva2VuIGZlZSByZWNpcGllbnRzICh0cmVhc3VyeSkuAAAAEnpyb19mZWVfcmVjaXBpZW50cwAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAAAgAAAAAAAAAAAAAAD09BcHBDb3JlU3RvcmFnZQAAAAACAAAAAAAAAAAAAAAIRW5kcG9pbnQAAAABAAAAAAAAAARQZWVyAAAAAQAAAAQAAAAFAAAAAAAAAAAAAAAHUGVlclNldAAAAAABAAAACHBlZXJfc2V0AAAAAgAAAAAAAAADZWlkAAAAAAQAAAAAAAAAAAAAAARwZWVyAAAD6AAAA+4AAAAgAAAAAAAAAAIAAAABAAAAAAAAAAAAAAATRW5mb3JjZWRPcHRpb25QYXJhbQAAAAADAAAAAAAAAANlaWQAAAAABAAAAAAAAAAIbXNnX3R5cGUAAAAEAAAAAAAAAAdvcHRpb25zAAAAA+gAAAAOAAAAAgAAAAAAAAAAAAAAF09BcHBPcHRpb25zVHlwZTNTdG9yYWdlAAAAAAEAAAABAAAAAAAAAA9FbmZvcmNlZE9wdGlvbnMAAAAAAgAAAAQAAAAEAAAABQAAAAAAAAAAAAAAEUVuZm9yY2VkT3B0aW9uU2V0AAAAAAAAAQAAABNlbmZvcmNlZF9vcHRpb25fc2V0AAAAAAEAAAAAAAAAEGVuZm9yY2VkX29wdGlvbnMAAAPqAAAH0AAAABNFbmZvcmNlZE9wdGlvblBhcmFtAAAAAAAAAAACAAAAAgAAAqpSZXByZXNlbnRzIGEgZmVlIHBheWVyIGFkZHJlc3Mgd2l0aCBleHBsaWNpdCBhdXRob3JpemF0aW9uIHN0YXRlLgoKVGhpcyBlbnVtIGZvcmNlcyBjYWxsZXJzIG9mIGBfX2x6X3NlbmRgIHRvIGV4cGxpY2l0bHkgZGVjbGFyZSB3aGV0aGVyCmByZXF1aXJlX2F1dGgoKWAgaGFzIGFscmVhZHkgYmVlbiBjYWxsZWQgZm9yIHRoZSBmZWUgcGF5ZXIgYWRkcmVzcy4KVGhpcyBwcmV2ZW50cyB0aGUgY29tbW9uIG1pc3Rha2Ugb2YgZm9yZ2V0dGluZyB0byBhdXRob3JpemUgdGhlIGZlZSBwYXllci4KCiMgVmFyaWFudHMKLSBgVW52ZXJpZmllZGAg4oCUIFNhZmUgZGVmYXVsdC4gYF9fbHpfc2VuZGAgd2lsbCBjYWxsIGByZXF1aXJlX2F1dGgoKWAgb24gdGhlIGFkZHJlc3MuClVzZSB0aGlzIHdoZW4gdGhlIGNhbGxlciBoYXMgKipub3QqKiBhbHJlYWR5IGF1dGhvcml6ZWQgdGhlIGZlZSBwYXllci4KLSBgVmVyaWZpZWRgIOKAlCBDYWxsZXIgYXNzZXJ0cyB0aGF0IGByZXF1aXJlX2F1dGgoKWAgaGFzIGFscmVhZHkgYmVlbiBjYWxsZWQuClVzZSB0aGlzIHRvIGF2b2lkIGEgZHVwbGljYXRlIGByZXF1aXJlX2F1dGgoKWAgbm9kZSBpbiB0aGUgU29yb2JhbiBhdXRoIHRyZWUKKGUuZy4sIHdoZW4gdGhlIHNhbWUgYWRkcmVzcyB3YXMgYWxyZWFkeSBhdXRob3JpemVkIGFzIHRoZSBtZXNzYWdlIHNlbmRlcikuAAAAAAAAAAAACEZlZVBheWVyAAAAAgAAAAEAAACqVGhlIGZlZSBwYXllciBoYXMgKipub3QqKiBiZWVuIGF1dGhvcml6ZWQgeWV0LgpgX19sel9zZW5kYCB3aWxsIGNhbGwgYGZlZV9wYXllci5yZXF1aXJlX2F1dGgoKWAgYmVmb3JlIHRyYW5zZmVycmluZyBmZWVzLgpUaGlzIGlzIHRoZSBzYWZlIGRlZmF1bHQg4oCUIHVzZSB0aGlzIGlmIHVuc3VyZS4AAAAAAApVbnZlcmlmaWVkAAAAAAABAAAAEwAAAAEAAAFvVGhlIGZlZSBwYXllciBoYXMgKiphbHJlYWR5KiogYmVlbiBhdXRob3JpemVkIGJ5IHRoZSBjYWxsZXIgdmlhIGByZXF1aXJlX2F1dGgoKWAuCmBfX2x6X3NlbmRgIHdpbGwgc2tpcCB0aGUgYXV0aCBjaGVjayB0byBhdm9pZCBjcmVhdGluZyBhIGR1cGxpY2F0ZSBhdXRoIG5vZGUKaW4gdGhlIFNvcm9iYW4gYXV0aG9yaXphdGlvbiB0cmVlLgoKIyBTYWZldHkKT25seSB1c2UgdGhpcyB2YXJpYW50IGlmIHlvdSBoYXZlIGFscmVhZHkgY2FsbGVkIGByZXF1aXJlX2F1dGgoKWAgb24gdGhpcyBhZGRyZXNzCmluIHRoZSBjdXJyZW50IGNvbnRyYWN0IGludm9jYXRpb24uIE1pc3VzZSBtYXkgYWxsb3cgdW5hdXRob3JpemVkIGZlZSBkZWR1Y3Rpb25zLgAAAAAIVmVyaWZpZWQAAAABAAAAEwAAAAQAAAAUT0FwcEVycm9yOiAyMDAwLTIwOTkAAAAAAAAACU9BcHBFcnJvcgAAAAAAAAQAAAAAAAAADkludmFsaWRPcHRpb25zAAAAAAfQAAAAAAAAAAZOb1BlZXIAAAAAB9EAAAAAAAAACE9ubHlQZWVyAAAH0gAAAAAAAAATWnJvVG9rZW5VbmF2YWlsYWJsZQAAAAfTAAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPpAAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/IAAAAEAAAAH1R0bENvbmZpZ3VyYWJsZUVycm9yOiAxMDIwLTEwMjkAAAAAAAAAABRUdGxDb25maWd1cmFibGVFcnJvcgAAAAMAAAAAAAAAEEludmFsaWRUdGxDb25maWcAAAP8AAAAAAAAAA9UdGxDb25maWdGcm96ZW4AAAAD/QAAAAAAAAAWVHRsQ29uZmlnQWxyZWFkeUZyb3plbgAAAAAD/gAAAAQAAAAXT3duYWJsZUVycm9yOiAxMDMwLTEwMzkAAAAAAAAAAAxPd25hYmxlRXJyb3IAAAAHAAAAAAAAABFJbnZhbGlkQXV0aG9yaXplcgAAAAAABAYAAAAAAAAAE0ludmFsaWRQZW5kaW5nT3duZXIAAAAEBwAAAAAAAAAKSW52YWxpZFR0bAAAAAAECAAAAAAAAAARTm9QZW5kaW5nVHJhbnNmZXIAAAAAAAQJAAAAAAAAAA9Pd25lckFscmVhZHlTZXQAAAAECgAAAAAAAAALT3duZXJOb3RTZXQAAAAECwAAAAAAAAASVHJhbnNmZXJJblByb2dyZXNzAAAAAAQMAAAABAAAABhCeXRlc0V4dEVycm9yOiAxMDQwLTEwNDkAAAAAAAAADUJ5dGVzRXh0RXJyb3IAAAAAAAABAAAAAAAAAA5MZW5ndGhNaXNtYXRjaAAAAAAEEAAAAAQAAAAbVXBncmFkZWFibGVFcnJvcjogMTA1MC0xMDU5AAAAAAAAAAAQVXBncmFkZWFibGVFcnJvcgAAAAIAAAAAAAAAFEludmFsaWRNaWdyYXRpb25EYXRhAAAEGgAAAAAAAAATTWlncmF0aW9uTm90QWxsb3dlZAAAAAQbAAAABAAAABhNdWx0aVNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpU2lnRXJyb3IAAAAAAAAJAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAAEUludmFsaWRBdXRob3JpemVyAAAAAAAEJQAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCYAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQnAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCgAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQpAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCoAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQrAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAELAAAAAQAAAAUQXV0aEVycm9yOiAxMDcwLTEwNzkAAAAAAAAACUF1dGhFcnJvcgAAAAAAAAEAAAAAAAAAEkF1dGhvcml6ZXJOb3RGb3VuZAAAAAAELgAAAAQAAAAUUmJhY0Vycm9yOiAxMDgwLTEwODkAAAAAAAAACVJiYWNFcnJvcgAAAAAAAAcAAAAAAAAAEUFkbWluUm9sZU5vdEZvdW5kAAAAAAAEOAAAAAAAAAAQSW5kZXhPdXRPZkJvdW5kcwAABDkAAAAAAAAAEE1heFJvbGVzRXhjZWVkZWQAAAQ6AAAAAAAAAAtSb2xlSXNFbXB0eQAAAAQ7AAAAAAAAAAxSb2xlTm90Rm91bmQAAAQ8AAAAAAAAAAtSb2xlTm90SGVsZAAAAAQ9AAAAAAAAAAxVbmF1dGhvcml6ZWQAAAQ+AAAABQAAADBFdmVudCBlbWl0dGVkIHdoZW4gYSBzaWduZXIgaXMgYWRkZWQgb3IgcmVtb3ZlZC4AAAAAAAAACVNpZ25lclNldAAAAAAAAAEAAAAKc2lnbmVyX3NldAAAAAAAAgAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAACAAAABQAAADZFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNpZ25hdHVyZSB0aHJlc2hvbGQgaXMgY2hhbmdlZC4AAAAAAAAAAAAMVGhyZXNob2xkU2V0AAAAAQAAAA10aHJlc2hvbGRfc2V0AAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAD011bHRpU2lnU3RvcmFnZQAAAAACAAAAAAAAAAAAAAAHU2lnbmVycwAAAAAAAAAAAAAAAAlUaHJlc2hvbGQAAAAAAAAFAAAAV0V2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgdHJhbnNmZXJyZWQgKGJvdGggc2luZ2xlLXN0ZXAgYW5kIHR3by1zdGVwIGNvbXBsZXRpb24pLgAAAAAAAAAAFE93bmVyc2hpcFRyYW5zZmVycmVkAAAAAQAAABVvd25lcnNoaXBfdHJhbnNmZXJyZWQAAAAAAAACAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAACAAAABQAAADtFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIHByb3Bvc2VkLgAAAAAAAAAAFU93bmVyc2hpcFRyYW5zZmVycmluZwAAAAAAAAEAAAAWb3duZXJzaGlwX3RyYW5zZmVycmluZwAAAAAAAwAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAAN0dGwAAAAABAAAAAAAAAACAAAABQAAADxFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIGNhbmNlbGxlZC4AAAAAAAAAGk93bmVyc2hpcFRyYW5zZmVyQ2FuY2VsbGVkAAAAAAABAAAAHG93bmVyc2hpcF90cmFuc2Zlcl9jYW5jZWxsZWQAAAACAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAAAAAAABdjYW5jZWxsZWRfcGVuZGluZ19vd25lcgAAAAATAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgcmVub3VuY2VkLgAAAAAAAAAAABJPd25lcnNoaXBSZW5vdW5jZWQAAAAAAAEAAAATb3duZXJzaGlwX3Jlbm91bmNlZAAAAAABAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAOT3duYWJsZVN0b3JhZ2UAAAAAAAIAAAAAAAAAAAAAAAVPd25lcgAAAAAAAAAAAAAAAAAADFBlbmRpbmdPd25lcgAAAAUAAAAlRXZlbnQgZW1pdHRlZCB3aGVuIGEgcm9sZSBpcyBncmFudGVkLgAAAAAAAAAAAAALUm9sZUdyYW50ZWQAAAAAAQAAAAxyb2xlX2dyYW50ZWQAAAADAAAAAAAAAARyb2xlAAAAEQAAAAEAAAAAAAAAB2FjY291bnQAAAAAEwAAAAEAAAAAAAAABmNhbGxlcgAAAAAAEwAAAAAAAAACAAAABQAAACVFdmVudCBlbWl0dGVkIHdoZW4gYSByb2xlIGlzIHJldm9rZWQuAAAAAAAAAAAAAAtSb2xlUmV2b2tlZAAAAAABAAAADHJvbGVfcmV2b2tlZAAAAAMAAAAAAAAABHJvbGUAAAARAAAAAQAAAAAAAAAHYWNjb3VudAAAAAATAAAAAQAAAAAAAAAGY2FsbGVyAAAAAAATAAAAAAAAAAIAAAAFAAAAK0V2ZW50IGVtaXR0ZWQgd2hlbiBhIHJvbGUgYWRtaW4gaXMgY2hhbmdlZC4AAAAAAAAAABBSb2xlQWRtaW5DaGFuZ2VkAAAAAQAAABJyb2xlX2FkbWluX2NoYW5nZWQAAAAAAAMAAAAAAAAABHJvbGUAAAARAAAAAQAAAAAAAAATcHJldmlvdXNfYWRtaW5fcm9sZQAAAAPoAAAAEQAAAAAAAAAAAAAADm5ld19hZG1pbl9yb2xlAAAAAAPoAAAAEQAAAAAAAAACAAAAAgAAAAAAAAAAAAAAC1JiYWNTdG9yYWdlAAAAAAUAAAAAAAAAAAAAAA1FeGlzdGluZ1JvbGVzAAAAAAAAAQAAAAAAAAASUm9sZUluZGV4VG9BY2NvdW50AAAAAAACAAAAEQAAAAQAAAABAAAAAAAAABJSb2xlQWNjb3VudFRvSW5kZXgAAAAAAAIAAAARAAAAEwAAAAEAAAAAAAAAEVJvbGVBY2NvdW50c0NvdW50AAAAAAAAAQAAABEAAAABAAAAAAAAAAlSb2xlQWRtaW4AAAAAAAABAAAAEQAAAAEAAABJVFRMIGNvbmZpZ3VyYXRpb246IHRocmVzaG9sZCAod2hlbiB0byBleHRlbmQpIGFuZCBleHRlbmRfdG8gKHRhcmdldCBUVEwpLgAAAAAAAAAAAAAJVHRsQ29uZmlnAAAAAAAAAgAAAChUYXJnZXQgVFRMIGFmdGVyIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAACWV4dGVuZF90bwAAAAAAAAQAAAAzVFRMIHRocmVzaG9sZCB0aGF0IHRyaWdnZXJzIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAABQAAACdFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIHNldC4AAAAAAAAAAA1UdGxDb25maWdzU2V0AAAAAAAAAQAAAA90dGxfY29uZmlnc19zZXQAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAAAAAAAAAEFR0bENvbmZpZ3NGcm96ZW4AAAABAAAAEnR0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAQVHRsQ29uZmlnU3RvcmFnZQAAAAMAAAAAAAAAAAAAAAZGcm96ZW4AAAAAAAAAAAAAAAAACEluc3RhbmNlAAAAAAAAAAAAAAAKUGVyc2lzdGVudAAAAAAAAgAAAAAAAAAAAAAAElVwZ3JhZGVhYmxlU3RvcmFnZQAAAAAAAQAAAAAAAAAAAAAACU1pZ3JhdGluZwAAAAAeEWNvbnRyYWN0ZW52bWV0YXYwAAAAAAAAABkAAAAAAG8OY29udHJhY3RtZXRhdjAAAAAAAAAABXJzdmVyAAAAAAAABjEuOTAuMAAAAAAAAAAAAAhyc3Nka3ZlcgAAAC8yNS4xLjEjOTRjMmEzYjNhNWRlZDZiOWNmOWNlZjBjMjA3YmY4ODA0ZjNlYjI5NAAAUw5jb250cmFjdG1ldGF2MAAAAAAAAAAGY2xpdmVyAAAAAAAvMjUuMC4wI2E2NDkyNWU5MzkxYzNkM2IzZWY4ZTUzZGM2MGMyM2RiOWU2YTgyZTQA";
|
|
11
|
+
export declare const WASM_BASE64 = "AGFzbQEAAAAB8gEmYAJ+fgF+YAN+fn4BfmAAAX5gBH5+fn4BfmABfgF+YAV+fn5+fgBgAn9/AX5gA35+fgBgAn9/AGABfwF+YAJ+fgF/YAJ/fgBgA39+fgBgCn9/fn5+fn5+fn4AYAF+AGAFfn9/f38AYAAAYAN/f38AYAF/AGABfwF/YAABf2ACfn4AYAJ+fwF/YAJ+fwBgBH5+f38BfmABfgF/YAN+f38BfmACf34BfmAEf39/fwF+YAR+fn5+AGADfn9+AGADfn5/AGADf35/AGACfn8BfmAFfn5+fn4BfmAGfn5+fn5+AX5gB35+fn5+fn4BfmADfn9/AALxASgBbAExAAABbAFfAAEBdgFfAAIBZAFfAAEBeAE3AAIBbAE3AAMBYQEwAAQBYgE0AAIBYgE4AAQBYgE2AAABaQFhAAQBaQFiAAQBYgFmAAEBYgE5AAABbAEyAAABeAExAAABdgEzAAQBdgE2AAABdgExAAABYgFlAAABaQFfAAQBaQEwAAQBdgFnAAABaQE4AAQBaQE3AAQBaQE2AAABYgFqAAABYgEyAAMBYgExAAMBbQE5AAEBbQFhAAMBeAEwAAABYgFiAAQBeAEzAAIBeAE4AAIBbAEwAAABbAE4AAABeAE1AAQBdgFkAAABdgEyAAADsQGvAQUABgcFCAkKCwsMBAgLDQIECw4JCQ8LCxAREAYICAYSEBMQFAkSEhASCwsMDBUWAhIXEBIJEhELCAwKBhgZEAsaCwAXGwwUCwISAgQAAQYVBBwAHQEKGQIOHh8XCQEHAAAJEhIEAAQEACAAAgAAEgEhAgICBA4VABAUDAICAAgACwgICQISCAICAQMUDCIJBAEACwICAgICBAkEAAQLIwsBJCUQEhELEQgICBEICRcFAwEAEQYhBH8BQYCAwAALfwBBzIPAAAt/AEHih8AAC38AQfCHwAALB8IGMgZtZW1vcnkCAAxvYXBwX3ZlcnNpb24AcAhlbmRwb2ludAByBHBlZXIAcwhzZXRfcGVlcgB1DHNldF9kZWxlZ2F0ZQB6CmdyYW50X3JvbGUAfAtyZXZva2Vfcm9sZQCFAQ1yZW5vdW5jZV9yb2xlAIcBDnNldF9yb2xlX2FkbWluAIgBEXJlbW92ZV9yb2xlX2FkbWluAIwBCGhhc19yb2xlAI0BDmdldF9yb2xlX2FkbWluAI4BFWdldF9yb2xlX21lbWJlcl9jb3VudACPAQ9nZXRfcm9sZV9tZW1iZXIAkAESZ2V0X2V4aXN0aW5nX3JvbGVzAJMBEGVuZm9yY2VkX29wdGlvbnMAlAEUc2V0X2VuZm9yY2VkX29wdGlvbnMAlQEPY29tYmluZV9vcHRpb25zAJcBCmF1dGhvcml6ZXIAmQEFb3duZXIAmgENcGVuZGluZ19vd25lcgCbARJ0cmFuc2Zlcl9vd25lcnNoaXAAnAEYYmVnaW5fb3duZXJzaGlwX3RyYW5zZmVyAJ8BEGFjY2VwdF9vd25lcnNoaXAAowEScmVub3VuY2Vfb3duZXJzaGlwAKQBE2V4dGVuZF9pbnN0YW5jZV90dGwApQEPc2V0X3R0bF9jb25maWdzAKcBC3R0bF9jb25maWdzAKwBEmZyZWV6ZV90dGxfY29uZmlncwCvARVpc190dGxfY29uZmlnc19mcm96ZW4AsAENX19jb25zdHJ1Y3RvcgCxAQVxdW90ZQCyAQlpbmNyZW1lbnQAtQERc2V0X29yZGVyZWRfbm9uY2UAtwESc2tpcF9pbmJvdW5kX25vbmNlALgBCHdpdGhkcmF3ALkBA2VpZAC7AQVjb3VudAC8AQ5jb21wb3NlZF9jb3VudAC+AQ1pbmJvdW5kX2NvdW50AMABDm91dGJvdW5kX2NvdW50AMIBCm5leHRfbm9uY2UAwwEVYWxsb3dfaW5pdGlhbGl6ZV9wYXRoAMQBCmx6X3JlY2VpdmUAxgEVaXNfY29tcG9zZV9tc2dfc2VuZGVyAMgBCmx6X2NvbXBvc2UAyQEBXwMBCl9fZGF0YV9lbmQDAgtfX2hlYXBfYmFzZQMDCqqnAa8BsQEBAn8jgICAgABBMGsiBSSAgICAACAFIAMgBBCpgICAADcDECAFIAI3AwggBSABNwMAQQAhBgNAAkAgBkEYRw0AQQAhBgJAA0AgBkEYRg0BIAVBGGogBmogBSAGaikDADcDACAGQQhqIQYMAAsLIABCju7qlb623vMAIAVBGGpBAxCqgICAABCrgICAACAFQTBqJICAgIAADwsgBUEYaiAGakICNwMAIAZBCGohBgwACwtDAQF/I4CAgIAAQRBrIgIkgICAgAAgAiAAIAEQtIGAgAACQCACKAIAQQFHDQAACyACKQMIIQEgAkEQaiSA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wIAAQQYQ3oCAgAAgASgCAA0DIAEgASkDCBDfgICAAAwCCyABQdCHwIAAQQgQ3oCAgAAgASgCAA0CIAEgASkDCBDfgICAAAwBCyABQdiHwIAAQQoQ3oCAgAAgASgCAA0BIAEgASkDCBDfgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC2kCAX8CfiOAgICAAEEQayIBJICAgIAAIAFBBGoQzoCAgAACQCABKAIEQQFHDQAgATUCDCECIAE1AgghAyAAEK6AgIAAQgEgA0IghkIEhCACQiCGQgSEEIWAgIAAGgsgAUEQaiSAgICAAAsMACAAQQIQ0oGAgAALTQEBfyOAgICAAEEQayIAJICAgIAAIAAQ0ICAgAACQCAAKAIADQBCg4CAgOCFARC6gICAAAALIAApAwgQhoCAgAAaIABBEGokgICAgAALEAAQwoCAgAAgABDYgICAAAsSABDCgICAACAAIAEQ0oCAgAALkgEBAn8jgICAgABBIGsiAiSAgICAACACQQQ2AgggAiABNwMQAkACQAJAIAJBCGoQiYGAgAAiAUIBEK+AgIAARQ0AIAFCARCAgICAACIBp0H/AXEiA0EORg0BIANBygBGDQEACyAAQgA3AwAMAQsgAEIBNwMAIAAgATcDCCACQQhqEIqBgIAACyACQSBqJICAgIAAC00BAn8jgICAgABBEGsiAySAgICAABDCgICAACADQQhqIAIgARDUgICAACADKAIMIQQgACADKAIINgIAIAAgBDYCBCADQRBqJICAgIAAC28BA38jgICAgABBIGsiAySAgICAACADIAI3AxggAyABNwMQIANBAjYCCCADIANBCGoQ0IGAgAAgAygCBCEEAkAgAygCACIFRQ0AIANBCGoQioGAgAALIAAgBDYCBCAAIAU2AgAgA0EgaiSAgICAAAuHAQEBfyOAgICAAEEgayICJICAgIAAIAJBEGogABDRgICAAAJAAkAgAigCEEEBRw0AIAJBCGogASACKQMYENOAgIAAIAIoAggNAQsgAkEQahDQgICAACABIAJBGGpBACACKAIQGxDWgICAAA0AQoOAgIDghwEQuoCAgAAACyACQSBqJICAgIAACxkAAkAgAQ0AQQAPCyAAIAEpAwAQ4oCAgAALewIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABDYgICAACAAKQMIIQEgACkDAEGLCBDZgICAACAAENCAgIAAAkAgASAAQQhqQQAgACgCABsQ1oCAgAANAEKDgICA4IABELqAgIAAAAsgARCGgICAABogAEEQaiSAgICAACABCxAAEMKAgIAAIAAQ3YCAgAALKQACQCAAp0EBcUUNAA8LIAFB+ndqrUIghkKDgICA4IABfBC6gICAAAALQgEBfyOAgICAAEEQayIAJICAgIAAIAAQ24CAgAACQCAAKQMAUA0AQoOAgIDAgQEQuoCAgAAACyAAQRBqJICAgIAAC1MBAn4QwoCAgABCACEBAkACQEEBENyAgIAAIgJCABCvgICAAEUNACACQgAQgICAgAAiAUL/AYNCzQBSDQEgACABNwMIQgEhAQsgACABNwMADwsAC5IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAIABBAXFFDQAgAUGphcCAAEEMEN6AgIAAIAEoAgANAiABIAEpAwgQ34CAgAAMAQsgAUGkhcCAAEEFEN6AgIAAIAEoAgANASABIAEpAwgQ34CAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgtNAQJ+QgAhAQJAAkBBABDcgICAACICQgIQr4CAgABFDQAgAkICEICAgIAAIgFC/wGDQs0AUg0BIAAgATcDCEIBIQELIAAgATcDAA8LAAtRAgF/AX4jgICAgABBEGsiAySAgICAACADIAEgAhDNgYCAAEIBIQQCQCADKAIADQAgACADKQMINwMIQgAhBAsgACAENwMAIANBEGokgICAgAALRAEBfyOAgICAAEEQayICJICAgIAAIAIgATcDCCACQQhqQQEQqoCAgAAhASAAQgA3AwAgACABNwMIIAJBEGokgICAgAALXQIBfwF+I4CAgIAAQSBrIgIkgICAgAAgAiABKQMQNwMYIAIgASkDCDcDECACIAEpAwA3AwggAkEIakEDEKqAgIAAIQMgAEIANwMAIAAgAzcDCCACQSBqJICAgIAAC0gBAX8jgICAgABBEGsiAySAgICAACADIAI3AwggAyABNwMAIANBAhCqgICAACECIABCADcDACAAIAI3AwggA0EQaiSAgICAAAsNACAAIAEQn4CAgABQC58BAgF/AX4jgICAgABBEGsiAiSAgICAABCHgICAACEDIAIgADoACyADIAMQiICAgABCgICAgHCDQgSEIAJBC2pBARDkgICAACEDIAIgAUEYdCABQYD+A3FBCHRyIAFBCHZBgP4DcSABQRh2cnI2AgwgAyADEIiAgIAAQoCAgIBwg0IEhCACQQxqQQQQ5ICAgAAhAyACQRBqJICAgIAAIAMLHgAgACABIAKtQiCGQgSEIAOtQiCGQgSEEJuAgIAACzEAAkAgABCIgICAAEL/////D1YNABDmgICAAAALIABCBBCJgICAAEIgiKcQyYCAgAALCQAQyoCAgAAAC6kDAgF/An4jgICAgABBIGsiAiSAgICAAEIMIQMCQCABQQUgARCIgICAAEIgiKcQ6ICAgAAiARCIgICAAEKAgICAEFQNACABEIqAgIAAIQMLIAJBD2ogAxCLgICAACIBQgRChICAgIACEIyAgIAAEOmAgIAAAkACQCACLQAPQQFGDQAgAikAGCEDIAIpABAhBCACQQ9qIAFChICAgIACQoSAgICABBCMgICAABDpgICAACACLQAPQQFGDQAgBCADhEIAUg0BIAIpABAiAUI4hiABQoD+A4NCKIaEIAFCgID8B4NCGIYgAUKAgID4D4NCCIaEhCABQgiIQoCAgPgPgyABQhiIQoCA/AeDhCABQiiIQoD+A4MgAUI4iISEhCIDQn9XDQEgACACKQAYIgFCOIYgAUKA/gODQiiGhCABQoCA/AeDQhiGIAFCgICA+A+DQgiGhIQgAUIIiEKAgID4D4MgAUIYiEKAgPwHg4QgAUIoiEKA/gODIAFCOIiEhIQ3AwAgACADNwMIIAJBIGokgICAgAAPCxDAgICAAAALQoOAgIAgELqAgIAAAAscACAAIAGtQiCGQgSEIAKtQiCGQgSEEIyAgIAAC9kBAgN/AX4jgICAgABBEGsiAiSAgICAAEEBIQMCQCABEIiAgIAAQoCAgIBwg0KAgICAgAJSDQAgAkEIakIANwMAIAJCADcDACAAQQFqIQRBACEDAkADQCABEIiAgIAAQoCAgIAQVA0BIAEQoICAgAAhBSABQQEQmIGAgAAhAQJAIANBEEYNACACIANqIAVCIIg8AAAgA0EBaiEDDAELC0EQEMyBgIAAAAsgBCACKQMANwAAIARBCGogAkEIaikDADcAAEEAIQMLIAAgAzoAACACQRBqJICAgIAAC+8CAgF/AX4jgICAgABBMGsiAiSAgICAABCHgICAACEDIAJBgAY7ARAgAyADEIiAgIAAQoCAgIBwg0IEhCACQRBqQQIQ5ICAgABChICAgBAQjYCAgAAhAyACQoCAgICA4MCGwAA3AwggAkIANwMAIAIgAEI4hjcDGCACQgA3AxACQAJAIAAgAYRCAFINACACQYAiOwEuIAMgAxCIgICAAEKAgICAcINCBIQgAkEuakECEOSAgIAAQoSAgIAQEI2AgIAAIQAgACAAEIiAgIAAQoCAgIBwg0IEhCACQRAQ5ICAgAAhAAwBCyACQYDCADsBLiADIAMQiICAgABCgICAgHCDQgSEIAJBLmpBAhDkgICAAEKEgICAEBCNgICAACEAIAAgABCIgICAAEKAgICAcINCBIQgAkEQEOSAgIAAIQAgACAAEIiAgIAAQoCAgIBwg0IEhCACQRBqQRAQ5ICAgAAhAAsgAkEwaiSAgICAACAAC14CAX8BfiOAgICAAEEQayICJICAgIAAIAIgABDngICAAAJAIAEpAwAgAikDAFogASkDCCIAIAIpAwgiA1kgACADURsNAEKDgICAMBC6gICAAAALIAJBEGokgICAgAALaAIBfwF+I4CAgIAAQSBrIgIkgICAgAAgAiABNwMIIAIgADYCBCACQQE2AgAgAkEQaiACEK2AgIAAAkAgAikDECIBUA0AIAIQzYCAgAALIAIpAxghAyACQSBqJICAgIAAIANCACABpxsLRwEBfyOAgICAAEEQayIDJICAgIAAIAMgATcDCCADIAA2AgQgA0EBNgIAIAMgAhCxgICAACADEM2AgIAAIANBEGokgICAgAALagICfwF+I4CAgIAAQRBrIgAkgICAgAAgAEECNgIAQQAhAQJAIAAQroCAgAAiAkICEK+AgIAARQ0AQQEhAQJAAkAgAkICEICAgIAAp0H/AXEOAgECAAsAC0EAIQELIABBEGokgICAgAAgAQtAAQF/I4CAgIAAQRBrIgIkgICAgAAgAkEGNgIAIAIgADYCBCACIAEQsYCAgAAgAhDNgICAACACQRBqJICAgIAAC3wCAX8BfiOAgICAAEEgayIAJICAgIAAEMKAgIAAIABBEGoQ8YCAgAACQAJAIAAoAhANACAAKQMYIQEgAEEQahDxgICAACAAKAIQQQFHDQELAAsgACAAKQMYNwMIIAAgATcDACAAQQIQqoCAgAAhASAAQSBqJICAgIAAIAELDAAgAEIBEMeBgIAACwgAELeAgIAAC1EBAX8jgICAgABBEGsiASSAgICAAAJAIABC/wGDQgRRDQAACyABIABCIIinEMWAgIAAIAEpAwAgASkDCBD0gICAACEAIAFBEGokgICAgAAgAAsNACABQgIgAKdBAXEbC6ICAwF/AX4BfyOAgICAAEEQayIDJICAgIAAAkAgAEL/AYNCBFINAAJAAkAgAUICUg0AQgAhAQwBCyADIAEQv4CAgAAgAygCAEEBRg0BIAMpAwghBEIBIQELIAJC/wGDQs0AUg0AQYCAwIAAQQ8Q9oCAgAAgAhD3gICAACACEIaAgIAAGhDCgICAAEEBIABCIIinIgUQxoCAgAAhAgJAAkAgAVANACACIARCARCBgICAABogBRDHgICAAAwBCyACQgEQjoCAgAAaC0KO8qq88Naq6wAQ+ICAgAAhAiADIAEgBBD0gICAADcDCCADIABChICAgHCDNwMAIAJB2ILAgABBAiADQQIQ+YCAgAAQj4CAgAAaIANBEGokgICAgABCAg8LAAtFAgF/AX4jgICAgABBEGsiAiSAgICAACACIAAgARDNgYCAAAJAIAIoAgBBAUcNAAALIAIpAwghAyACQRBqJICAgIAAIAMLIAACQCAAIAEQ/YCAgAANAEKDgICA4IcBELqAgIAAAAsLYwMBfwF+AX8jgICAgABBEGsiASSAgICAACABIAA3AwBCAiECQQEhAwJAA0AgA0UNASADQX9qIQMgACECDAALCyABIAI3AwggAUEIakEBEKqAgIAAIQAgAUEQaiSAgICAACAACy4AAkAgASADRg0AAAsgAK1CIIZCBIQgAq1CIIZCBIQgAa1CIIZCBIQQnYCAgAALjQECAX8BfiOAgICAAEEQayICJICAgIAAIAIgABC5gICAAAJAIAIpAwAiAEICUQ0AIAFC/wGDQs0AUg0AIAIpAwghA0GAgMCAAEEPEPaAgIAAIAEQ94CAgAAgARCGgICAABoQwoCAgAAQt4CAgAAQhICAgAAgACADEPuAgIAAIAJBEGokgICAgABCAg8LAAu2AQMBfwF+AX8jgICAgABBIGsiBCSAgICAAEGggsCAAEEMEPaAgIAAIQUgBCACIAMQ9ICAgAA3AwggBCABNwMAQQAhBgNAAkAgBkEQRw0AQQAhBgJAA0AgBkEQRg0BIARBEGogBmogBCAGaikDADcDACAGQQhqIQYMAAsLIAAgBSAEQRBqQQIQqoCAgAAQq4CAgAAgBEEgaiSAgICAAA8LIARBEGogBmpCAjcDACAGQQhqIQYMAAsL4AICA38BfiOAgICAAEEgayIDJICAgIAAAkACQAJAIABC/wGDQs0AUg0AAkAgAadB/wFxIgRBDkYNACAEQcoARw0BCyACQv8Bg0LNAFINABDCgICAACACEIaAgIAAGiABIAIQ1YCAgAACQCABIAAQ/YCAgAANACABEP6AgIAAIgQhBQJAIAQNABD/gICAACIGEJCAgIAAQoCAgICAIFoNAyAGIAEQkYCAgAAQgIGAgABBACEFCyABIAUgABCBgYCAACABIAAgBBCCgYCAACAEQQFqIgRFDQMgASAEEIOBgIAAIANBtYXAgABBDBD2gICAADcDGCADIAA3AxAgAyABNwMAIAMgA0EYajYCCCADEISBgIAAIQEgAyACNwMAIAFByIXAgABBASADQQEQ+YCAgAAQj4CAgAAaCyADQSBqJICAgIAAQgIPCwALQoOAgICghwEQuoCAgAAACxDAgICAAAALXQECfyOAgICAAEEgayICJICAgIAAIAIgATcDGCACIAA3AxAgAkECNgIIAkAgAkEIahCJgYCAAEIBEK+AgIAAIgNFDQAgAkEIahCKgYCAAAsgAkEgaiSAgICAACADC2QBA38jgICAgABBIGsiASSAgICAACABQQM2AgggASAANwMQIAEgAUEIahDQgYCAACABKAIEIQICQCABKAIAIgNFDQAgAUEIahCKgYCAAAsgAUEgaiSAgICAACACQQAgA0EBcRsLeQIBfwF+I4CAgIAAQSBrIgAkgICAgAAgAEEANgIIAkACQAJAIABBCGoQiYGAgAAiAUIBEK+AgIAARQ0AIAFCARCAgICAACIBQv8Bg0LLAFINAiAAQQhqEIqBgIAADAELEIKAgIAAIQELIABBIGokgICAgAAgAQ8LAAtIAQF/I4CAgIAAQSBrIgEkgICAgAAgAUEANgIIIAFBCGoQiYGAgAAgAEIBEIGAgIAAGiABQQhqEIqBgIAAIAFBIGokgICAgAALVgEBfyOAgICAAEEgayIDJICAgIAAIAMgATYCDCADIAA3AxAgA0EBNgIIIANBCGoQiYGAgAAgAkIBEIGAgIAAGiADQQhqEIqBgIAAIANBIGokgICAgAALTQEBfyOAgICAAEEgayIDJICAgIAAIAMgATcDGCADIAA3AxAgA0ECNgIIIANBCGogAhDRgYCAACADQQhqEIqBgIAAIANBIGokgICAgAALRgEBfyOAgICAAEEgayICJICAgIAAIAJBAzYCCCACIAA3AxAgAkEIaiABENGBgIAAIAJBCGoQioGAgAAgAkEgaiSAgICAAAupAQIBfwF+I4CAgIAAQTBrIgEkgICAgAAgASAAKQMQNwMQIAEgACkDADcDCCABIAAoAggpAwA3AwBBACEAA34CQCAAQRhHDQBBACEAAkADQCAAQRhGDQEgAUEYaiAAaiABIABqKQMANwMAIABBCGohAAwACwsgAUEYakEDEKqAgIAAIQIgAUEwaiSAgICAACACDwsgAUEYaiAAakICNwMAIABBCGohAAwACwthAQF/AkAgAEL/AYNCzQBSDQACQCABp0H/AXEiA0EORg0AIANBygBHDQELIAJC/wGDQs0AUg0AEMKAgIAAIAIQhoCAgAAaIAEgAhDVgICAACAAIAEgAhCGgYCAAEICDwsAC/sDAgN/An4jgICAgABBMGsiAySAgICAAAJAAkACQAJAIAEgABD9gICAAEUNACABEP6AgIAAIgRFDQEgA0EIaiABIAAQ1ICAgAAgAygCDCEFIAMoAghBvQgQ1IGAgAAgASAFENaBgIAAIAMgADcDICADIAE3AxggA0ECNgIQIANBEGoQiYGAgABCARCOgICAABogBSAEQX9qIgRHDQIMAwtCg4CAgNCHARC6gICAAAALQoOAgICwhwEQuoCAgAAACyADQRBqIAEgBBCRgYCAACADKQMQIAMpAxgQkoGAgAAhBiABIAQQ1oGAgAAgASAFIAYQgYGAgAAgASAGIAUQgoGAgAALIAEgBBCDgYCAAAJAAkAgBA0AAkACQBD/gICAACIGIAEQpoCAgAAiB0ICUg0AQQAhBAwBCyAHQv8Bg0IEUg0CIAdCIIinIQVBASEECyAEQbwIENSBgIAAAkAgBSAGEJCAgIAAQiCIp08NACAGIAWtQiCGQgSEEKeAgIAAIQYLIAYQgIGAgAALIANB0IXAgABBDBD2gICAADcDKCADIAA3AyAgAyABNwMQIAMgA0EoajYCGCADQRBqEISBgIAAIQEgAyACNwMQIAFByIXAgABBASADQRBqQQEQ+YCAgAAQj4CAgAAaIANBMGokgICAgAAPCxDAgICAAAALSwEBfwJAAkAgAKdB/wFxIgJBDkYNACACQcoARw0BCyABQv8Bg0LNAFINABDCgICAACABEIaAgIAAGiABIAAgARCGgYCAAEICDwsAC98BAgJ/An4jgICAgABBMGsiAiSAgICAAAJAAkAgAKdB/wFxIgNBDkYNACADQcoARw0BCwJAIAGnQf8BcSIDQQ5GDQAgA0HKAEcNAQsQz4CAgAAQwoCAgAAgAkEIaiAAENKAgIAAIAIpAwghBCACKQMQIQUgAkEENgIIIAIgADcDECACQQhqEImBgIAAIAFCARCBgICAABogAkEIahCKgYCAACACIAE3AyAgAkIBNwMYIAIgBTcDECACIAQ3AwggAiAANwMoIAJBCGoQi4GAgAAgAkEwaiSAgICAAEICDwsAC5cDAgF/An4jgICAgABBMGsiASSAgICAAAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAOBQABAgQFAAsgAUEIakGghsCAAEENEN6AgIAAIAEoAggNByABQQhqIAEpAxAQ34CAgAAMBQsgAUEgakGthsCAAEESEN6AgIAAIAEoAiANBiABIAEpAyg3AwggASAAKQMINwMQIAEgADUCBEIghkIEhDcDGCABQSBqIAFBCGoQ4ICAgAAMAQsgAUEgakG/hsCAAEESEN6AgIAAIAEoAiANBSABIAEpAyg3AwggASAAKQMQNwMYIAEgACkDCDcDECABQSBqIAFBCGoQ4ICAgAALIAEpAyghAiABKQMgIQMMAwsgAUEIakHRhsCAAEEREN6AgIAAIAEoAggNAyABQQhqIAEpAxAgACkDCBDhgICAAAwBCyABQQhqQeKGwIAAQQkQ3oCAgAAgASgCCA0CIAFBCGogASkDECAAKQMIEOGAgIAACyABKQMQIQIgASkDCCEDCyADUA0BCwALIAFBMGokgICAgAAgAgtpAgF/An4jgICAgABBEGsiASSAgICAACABQQRqEM6AgIAAAkAgASgCBEEBRw0AIAE1AgwhAiABNQIIIQMgABCJgYCAAEIBIANCIIZCBIQgAkIghkIEhBCFgICAABoLIAFBEGokgICAgAAL+QEDAX8CfgF/I4CAgIAAQSBrIgEkgICAgAAgACkDICECQdyFwIAAQRIQ9oCAgAAhAyABIAI3AwggASADNwMAQQAhBANAAkAgBEEQRw0AQQAhBAJAA0AgBEEQRg0BIAFBEGogBGogASAEaikDADcDACAEQQhqIQQMAAsLIAFBEGpBAhCqgICAACECIAApAxAgACkDGBD0gICAACEDIAEgACkDACAAKQMIEPSAgIAANwMYIAEgAzcDECACQZCGwIAAQQIgAUEQakECEPmAgIAAEI+AgIAAGiABQSBqJICAgIAADwsgAUEQaiAEakICNwMAIARBCGohBAwACwvBAQECfyOAgICAAEHAAGsiASSAgICAAAJAAkACQCAAp0H/AXEiAkEORg0AIAJBygBHDQELEM+AgIAAEMKAgIAAIAFBCGogABDSgICAACABKAIIRQ0BIAFBBDYCGCABIAA3AyAgAUEYahCJgYCAAEIBEI6AgIAAGiABIAA3AzggAUIANwMoIAEgASkDEDcDICABQgE3AxggAUEYahCLgYCAACABQcAAaiSAgICAAEICDwsAC0KDgICAgIcBELqAgIAAAAt3AQJ/I4CAgIAAQRBrIgIkgICAgAACQCAAQv8Bg0LNAFINAAJAIAGnQf8BcSIDQQ5GDQAgA0HKAEcNAQsgAkEIaiAAIAEQ04CAgAAgAigCCCEDIAI1AgwhACACQRBqJICAgIAAIABCIIZCBIRCAiADQQFxGw8LAAtYAQJ/I4CAgIAAQRBrIgEkgICAgAACQCAAp0H/AXEiAkEORg0AIAJBygBGDQAACyABIAAQ0YCAgAAgASkDACABKQMIEPSAgIAAIQAgAUEQaiSAgICAACAACzMBAX8CQCAAp0H/AXEiAUEORg0AIAFBygBGDQAACxDCgICAACAAEP6AgIAArUIghkIEhAtzAQJ/I4CAgIAAQRBrIgIkgICAgAACQAJAIACnQf8BcSIDQQ5GDQAgA0HKAEcNAQsgAUL/AYNCBFINABDCgICAACACIAAgAUIgiKcQkYGAgAAgAikDACACKQMIEJKBgIAAIQAgAkEQaiSAgICAACAADwsAC48BAQF/I4CAgIAAQSBrIgMkgICAgAAgAyACNgIMIAMgATcDECADQQE2AggCQAJAAkAgA0EIahCJgYCAACIBQgEQr4CAgABFDQAgAUIBEICAgIAA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IABC/wGDQs0AUg0AIAIgARC6gYCAACACKAIAQQFGDQAgAikDGCEBIAIpAxAhAxDPgICAABDCgICAABC3gICAABC4gICAABCEgICAACAAIAMgARCsgICAACACQSBqJICAgIAAQgIPCwALfQIBfwF+AkACQAJAAkAgAadB/wFxIgJBxQBGDQAgAkELRw0CIAAgAUI/hzcDGCAAIAFCCIc3AxAMAQsgARCXgICAACEDIAEQmICAgAAhASAAIAM3AxggACABNwMQC0IAIQEMAQsgAEKDkICAgAE3AwhCASEBCyAAIAE3AwALDwAQs4GAgACtQiCGQgSECw4AEL2BgIAAELOAgIAAC1ECAn8BfiOAgICAAEEgayIAJICAgIAAEMKAgIAAIABBAzYCACAAQRBqIAAQtICAgAAgACgCECEBIAApAxghAiAAQSBqJICAgIAAIAJCACABGwsOABC/gYCAABCzgICAAAtRAgJ/AX4jgICAgABBIGsiACSAgICAABDCgICAACAAQQQ2AgAgAEEQaiAAELSAgIAAIAAoAhAhASAAKQMYIQIgAEEgaiSAgICAACACQgAgARsLIwACQCAAQv8Bg0IEUQ0AAAsgAEIgiKcQwYGAgAAQs4CAgAALZwIBfwJ+I4CAgIAAQSBrIgEkgICAgAAQwoCAgAAgAUEFNgIAIAEgADYCBCABQRBqIAEQrYCAgAACQCABKQMQIgJQDQAgARDNgICAAAsgASkDGCEDIAFBIGokgICAgAAgA0IAIAKnGwsjAAJAIABC/wGDQgRRDQAACyAAQiCIpxC2gYCAABCzgICAAAuPAQIBfwF+I4CAgIAAQRBrIgIkgICAgAACQAJAIABC/wGDQgRSDQAgAiABEL+AgIAAIAIoAgBBAUYNACACKQMIIQMQwoCAgABCACEBAkAQ7oCAgABFDQAgAEIgiKcgAxDsgICAAEIBfCIBUA0CCyABELOAgIAAIQAgAkEQaiSAgICAACAADwsACxDAgICAAAALfgMBfwF+AX8jgICAgABBIGsiASSAgICAACABIAAQxYGAgAACQCABKAIAQQFGDQAgASkDCCECIAEoAhghAxDCgICAACABIAMQxYCAgABCACEAAkAgASgCAEEBRw0AIAEpAwggAhDigICAAK0hAAsgAUEgaiSAgICAACAADwsAC+IBAgJ/An4jgICA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aW9uc2VuZm9yY2VkX29wdGlvbl9zZXRlbmZvcmNlZF9vcHRpb25zAACyARAAEAAAAHRocmVzaG9sZG93bmVyc2hpcF90cmFuc2ZlcnJlZG5ld19vd25lcm9sZF9vd25lcuoBEAAJAAAA8wEQAAkAAABvd25lcnNoaXBfdHJhbnNmZXJyaW5ndHRsAAAA6gEQAAkAAADzARAACQAAACICEAADAAAAb3duZXJzaGlwX3RyYW5zZmVyX2NhbmNlbGxlZGNhbmNlbGxlZF9wZW5kaW5nX293bmVyb3duZXJcAhAAFwAAAHMCEAAFAAAAb3duZXJzaGlwX3Jlbm91bmNlZADzARAACQAAAE93bmVyUGVuZGluZ093bmVycm9sZV9ncmFudGVkY2FsbGVyAMECEAAGAAAAcm9sZV9yZXZva2Vkcm9sZV9hZG1pbl9jaGFuZ2VkbmV3X2FkbWluX3JvbGVwcmV2aW91c19hZG1pbl9yb2xlAO4CEAAOAAAA/AIQABMAAABFeGlzdGluZ1JvbGVzUm9sZUluZGV4VG9BY2NvdW50Um9sZUFjY291bnRUb0luZGV4Um9sZUFjY291bnRzQ291bnRSb2xlQWRtaW5leHRlbmRfdG9rAxAACQAAAMwBEAAJAAAAdHRsX2NvbmZpZ3Nfc2V0aW5zdGFuY2VwZXJzaXN0ZW50AAAAkwMQAAgAAACbAxAACgAAAHR0bF9jb25maWdzX2Zyb3plbkZyb3plbkluc3RhbmNlUGVyc2lzdGVudACb1gEOY29udHJhY3RzcGVjdjAAAAAEAAAAAAAAAAAAAAAMQ291bnRlckVycm9yAAAABAAAAAAAAAAQT0FwcEludmFsaWROb25jZQAAAAEAAAAAAAAAD0ludmFsaWRNc2dWYWx1ZQAAAAACAAAAAAAAABFJbnN1ZmZpY2llbnRWYWx1ZQAAAAAAAAMAAAAAAAAADkludmFsaWRNc2dUeXBlAAAAAAAEAAAAAgAAAAAAAAAAAAAADkNvdW50ZXJTdG9yYWdlAAAAAAAHAAAAAAAAAAAAAAADRUlEAAAAAAEAAAAAAAAAEE1heFJlY2VpdmVkTm9uY2UAAAACAAAABAAAA+4AAAAgAAAAAAAAAAAAAAAMT3JkZXJlZE5vbmNlAAAAAAAAAAAAAAAFQ291bnQAAAAAAAAAAAAAAAAAAA1Db21wb3NlZENvdW50AAAAAAAAAQAAAAAAAAAMSW5ib3VuZENvdW50AAAAAQAAAAQAAAABAAAAAAAAAA1PdXRib3VuZENvdW50AAAAAAAAAQAAAAQAAAAAAAAArlJldHJpZXZlcyB0aGUgT0FwcCB2ZXJzaW9uIGluZm9ybWF0aW9uLgoKIyBSZXR1cm5zCkEgdHVwbGUgY29udGFpbmluZzoKLSBgc2VuZGVyX3ZlcnNpb25gOiBUaGUgdmVyc2lvbiBvZiB0aGUgT0FwcFNlbmRlcgotIGByZWNlaXZlcl92ZXJzaW9uYDogVGhlIHZlcnNpb24gb2YgdGhlIE9BcHBSZWNlaXZlcgAAAAAADG9hcHBfdmVyc2lvbgAAAAAAAAABAAAD7QAAAAIAAAAGAAAABgAAAAAAAABsUmV0cmlldmVzIHRoZSBMYXllclplcm8gZW5kcG9pbnQgYWRkcmVzcyBhc3NvY2lhdGVkIHdpdGggdGhlIE9BcHAuCgojIFJldHVybnMKVGhlIExheWVyWmVybyBlbmRwb2ludCBhZGRyZXNzAAAACGVuZHBvaW50AAAAAAAAAAEAAAATAAAAAAAAAMFSZXRyaWV2ZXMgdGhlIHBlZXIgKE9BcHApIGFzc29jaWF0ZWQgd2l0aCBhIGNvcnJlc3BvbmRpbmcgZW5kcG9pbnQuCgojIEFyZ3VtZW50cwoqIGBlaWRgIC0gVGhlIGVuZHBvaW50IElECgojIFJldHVybnMKVGhlIHBlZXIgYWRkcmVzcyAoT0FwcCBpbnN0YW5jZSkgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGVuZHBvaW50AAAAAAAABHBlZXIAAAABAAAAAAAAAANlaWQAAAAABAAAAAEAAAPoAAAD7gAAACAAAAAAAAABH1NldHMgb3IgcmVtb3ZlcyB0aGUgcGVlciBhZGRyZXNzIChPQXBwIGluc3RhbmNlKSBmb3IgYSBjb3JyZXNwb25kaW5nIGVuZHBvaW50LgoKIyBBcmd1bWVudHMKKiBgZWlkYCAtIFRoZSBlbmRwb2ludCBJRAoqIGBwZWVyYCAtIFRoZSBhZGRyZXNzIG9mIHRoZSBwZWVyIHRvIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBlbmRwb2ludCwgb3IgTm9uZSB0byByZW1vdmUgdGhlIHBlZXIKKiBgb3BlcmF0b3JgIC0gVGhlIGFkZHJlc3MgdGhhdCBtdXN0IGhhdmUgT0FQUF9BRE1JTl9ST0xFAAAAAAhzZXRfcGVlcgAAAAMAAAAAAAAAA2VpZAAAAAAEAAAAAAAAAARwZWVyAAAD6AAAA+4AAAAgAAAAAAAAAAhvcGVyYXRvcgAAABMAAAAAAAAAAAAAAMhTZXRzIHRoZSBkZWxlZ2F0ZSBhZGRyZXNzIGZvciB0aGUgT0FwcCBDb3JlLgoKIyBBcmd1bWVudHMKKiBgZGVsZWdhdGVgIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIGRlbGVnYXRlIHRvIGJlIHNldCwgb3IgTm9uZSB0byByZW1vdmUgdGhlIGRlbGVnYXRlCiogYG9wZXJhdG9yYCAtIFRoZSBhZGRyZXNzIHRoYXQgbXVzdCBoYXZlIE9BUFBfQURNSU5fUk9MRQAAAAxzZXRfZGVsZWdhdGUAAAACAAAAAAAAAAhkZWxlZ2F0ZQAAA+gAAAATAAAAAAAAAAhvcGVyYXRvcgAAABMAAAAAAAAAAAAAAQxHcmFudHMgYSByb2xlIHRvIGFuIGFjY291bnQuIENhbGxlciBtdXN0IGJlIG93bmVyIG9yIGhhdmUgdGhlIHJvbGUncyBhZG1pbiByb2xlLgoKIyBBcmd1bWVudHMKKiBgYWNjb3VudGAgLSBUaGUgYWNjb3VudCB0byBncmFudCB0aGUgcm9sZSB0by4KKiBgcm9sZWAgLSBUaGUgcm9sZSB0byBncmFudC4KKiBgY2FsbGVyYCAtIFRoZSBhY2NvdW50IHRoYXQgaXMgZ3JhbnRpbmcgdGhlIHJvbGUuIE11c3QgYmUgb3duZXIgb3IgaGF2ZSB0aGUgcm9sZSdzIGFkbWluIHJvbGUuAAAACmdyYW50X3JvbGUAAAAAAAMAAAAAAAAAB2FjY291bnQAAAAAEwAAAAAAAAAEcm9sZQAAABEAAAAAAAAABmNhbGxlcgAAAAAAEwAAAAAAAAAAAAABE1Jldm9rZXMgYSByb2xlIGZyb20gYW4gYWNjb3VudC4gQ2FsbGVyIG11c3QgYmUgb3duZXIgb3IgaGF2ZSB0aGUgcm9sZSdzIGFkbWluIHJvbGUuCgojIEFyZ3VtZW50cwoqIGBhY2NvdW50YCAtIFRoZSBhY2NvdW50IHRvIHJldm9rZSB0aGUgcm9sZSBmcm9tLgoqIGByb2xlYCAtIFRoZSByb2xlIHRvIHJldm9rZS4KKiBgY2FsbGVyYCAtIFRoZSBhY2NvdW50IHRoYXQgaXMgcmV2b2tpbmcgdGhlIHJvbGUuIE11c3QgYmUgb3duZXIgb3IgaGF2ZSB0aGUgcm9sZSdzIGFkbWluIHJvbGUuAAAAAAtyZXZva2Vfcm9sZQAAAAADAAAAAAAAAAdhY2NvdW50AAAAABMAAAAAAAAABHJvbGUAAAARAAAAAAAAAAZjYWxsZXIAAAAAABMAAAAAAAAAAAAAAO1BbGxvd3MgYW4gYWNjb3VudCB0byByZW5vdW5jZSBhIHJvbGUgYXNzaWduZWQgdG8gaXRzZWxmLgpVc2VycyBjYW4gb25seSByZW5vdW5jZSByb2xlcyBmb3IgdGhlaXIgb3duIGFjY291bnQuCgojIEFyZ3VtZW50cwoqIGByb2xlYCAtIFRoZSByb2xlIHRvIHJlbm91bmNlLgoqIGBjYWxsZXJgIC0gVGhlIGFjY291bnQgdGhhdCBpcyByZW5vdW5jaW5nIHRoZSByb2xlLiBNdXN0IGJlIHRoZSBhY2NvdW50IGl0c2VsZi4AAAAAAAANcmVub3VuY2Vfcm9sZQAAAAAAAAIAAAAAAAAABHJvbGUAAAARAAAAAAAAAAZjYWxsZXIAAAAAABMAAAAAAAAAAAAAAVdTZXRzIGBhZG1pbl9yb2xlYCBhcyB0aGUgYWRtaW4gcm9sZSBvZiBgcm9sZWAuIENhbGxlciBtdXN0IGJlIHRoZSBhdXRob3JpemVyLgoKIyBBcmd1bWVudHMKKiBgcm9sZWAgLSBUaGUgcm9sZSB0byBzZXQgdGhlIGFkbWluIGZvci4KKiBgYWRtaW5fcm9sZWAgLSBUaGUgYWRtaW4gcm9sZSB0byBzZXQgZm9yIHRoZSByb2xlLgoKIyBOb3RlcwoKVGhlIGFkbWluIHJvbGUgY2FuIGJlIGFueSBgU3ltYm9sYCwgaW5jbHVkaW5nIG9uZSB3aXRoIG5vIG1lbWJlcnMuIElmIHRoZSBhZG1pbgpyb2xlIGhhcyBubyBtZW1iZXJzLCBvbmx5IHRoZSBhdXRob3JpemVyIGNhbiBncmFudC9yZXZva2UgdGhlIHJvbGUuAAAAAA5zZXRfcm9sZV9hZG1pbgAAAAAAAgAAAAAAAAAEcm9sZQAAABEAAAAAAAAACmFkbWluX3JvbGUAAAAAABEAAAAAAAAAAAAAANhSZW1vdmVzIHRoZSBhZG1pbiByb2xlIGZvciBhIHNwZWNpZmllZCByb2xlLiBDYWxsZXIgbXVzdCBiZSB0aGUgYXV0aG9yaXplci4KCiMgQXJndW1lbnRzCiogYHJvbGVgIC0gVGhlIHJvbGUgdG8gcmVtb3ZlIHRoZSBhZG1pbiBmb3IuCgojIEVycm9ycwoqIGBSYmFjRXJyb3I6OkFkbWluUm9sZU5vdEZvdW5kYCAtIElmIG5vIGFkbWluIHJvbGUgaXMgc2V0IGZvciB0aGUgcm9sZS4AAAARcmVtb3ZlX3JvbGVfYWRtaW4AAAAAAAABAAAAAAAAAARyb2xlAAAAEQAAAAAAAAAAAAAA9lJldHVybnMgYFNvbWUoaW5kZXgpYCBpZiB0aGUgYWNjb3VudCBoYXMgdGhlIHNwZWNpZmllZCByb2xlLCB3aGVyZSBgaW5kZXhgCmlzIHRoZSBpbmRleCBvZiB0aGUgYWNjb3VudCBpbiB0aGUgcm9sZS4gUmV0dXJucyBgTm9uZWAgaWYgbm90LgoKIyBBcmd1bWVudHMKKiBgYWNjb3VudGAgLSBUaGUgYWNjb3VudCB0byBjaGVjayB0aGUgcm9sZSBmb3IuCiogYHJvbGVgIC0gVGhlIHJvbGUgdG8gY2hlY2sgdGhlIGFjY291bnQgZm9yLgAAAAAACGhhc19yb2xlAAAAAgAAAAAAAAAHYWNjb3VudAAAAAATAAAAAAAAAARyb2xlAAAAEQAAAAEAAAPoAAAABAAAAAAAAAB2UmV0dXJucyB0aGUgYWRtaW4gcm9sZSBmb3IgYSBzcGVjaWZpYyByb2xlLCBvciBOb25lIGlmIG5vdCBzZXQuCgojIEFyZ3VtZW50cwoqIGByb2xlYCAtIFRoZSByb2xlIHRvIGdldCB0aGUgYWRtaW4gZm9yLgAAAAAADmdldF9yb2xlX2FkbWluAAAAAAABAAAAAAAAAARyb2xlAAAAEQAAAAEAAAPoAAAAEQAAAAAAAAB6UmV0dXJucyB0aGUgbnVtYmVyIG9mIGFjY291bnRzIHRoYXQgaGF2ZSB0aGUgc3BlY2lmaWVkIHJvbGUuCgojIEFyZ3VtZW50cwoqIGByb2xlYCAtIFRoZSByb2xlIHRvIGdldCB0aGUgbWVtYmVyIGNvdW50IGZvci4AAAAAABVnZXRfcm9sZV9tZW1iZXJfY291bnQAAAAAAAABAAAAAAAAAARyb2xlAAAAEQAAAAEAAAAEAAAAAAAAAOlSZXR1cm5zIHRoZSBhY2NvdW50IGF0IHRoZSBzcGVjaWZpZWQgaW5kZXggZm9yIGEgZ2l2ZW4gcm9sZS4KCiMgQXJndW1lbnRzCiogYHJvbGVgIC0gVGhlIHJvbGUgdG8gZ2V0IHRoZSBtZW1iZXIgZm9yLgoqIGBpbmRleGAgLSBUaGUgaW5kZXggb2YgdGhlIG1lbWJlciB0byBnZXQuCgojIEVycm9ycwoqIGBSYmFjRXJyb3I6OkluZGV4T3V0T2ZCb3VuZHNgIGlmIHRoZSBpbmRleCBpcyBvdXQgb2YgYm91bmRzLgAAAAAAAA9nZXRfcm9sZV9tZW1iZXIAAAAAAgAAAAAAAAAEcm9sZQAAABEAAAAAAAAABWluZGV4AAAAAAAABAAAAAEAAAATAAAAAAAAAPJSZXR1cm5zIGFsbCByb2xlcyB0aGF0IGN1cnJlbnRseSBoYXZlIGF0IGxlYXN0IG9uZSBtZW1iZXIuCkRlZmF1bHRzIHRvIGVtcHR5IHZlY3RvciBpZiBubyByb2xlcyBleGlzdC4KCiMgTm90ZXMKClRoaXMgZnVuY3Rpb24gcmV0dXJucyBhbGwgcm9sZXMgdGhhdCBjdXJyZW50bHkgaGF2ZSBhdCBsZWFzdCBvbmUgbWVtYmVyLgpUaGUgbWF4aW11bSBudW1iZXIgb2Ygcm9sZXMgaXMgbGltaXRlZCBieSBbYE1BWF9ST0xFU2BdLgAAAAAAEmdldF9leGlzdGluZ19yb2xlcwAAAAAAAAAAAAEAAAPqAAAAEQAAAAAAAADZUmV0cmlldmVzIHRoZSBlbmZvcmNlZCBvcHRpb25zIGZvciBhIGdpdmVuIGVuZHBvaW50IGFuZCBtZXNzYWdlIHR5cGUuCgojIEFyZ3VtZW50cwoqIGBlaWRgIC0gVGhlIGVuZHBvaW50IElECiogYG1zZ190eXBlYCAtIFRoZSBPQXBwIG1lc3NhZ2UgdHlwZQoKIyBSZXR1cm5zClRoZSBlbmZvcmNlZCBvcHRpb25zIGZvciB0aGUgZ2l2ZW4gZW5kcG9pbnQgYW5kIG1lc3NhZ2UgdHlwZQAAAAAAABBlbmZvcmNlZF9vcHRpb25zAAAAAgAAAAAAAAADZWlkAAAAAAQAAAAAAAAACG1zZ190eXBlAAAABAAAAAEAAAPoAAAADgAAAAAAAALgU2V0cyBvciByZW1vdmVzIHRoZSBlbmZvcmNlZCBvcHRpb25zIGZvciBzcGVjaWZpYyBlbmRwb2ludCBhbmQgbWVzc2FnZSB0eXBlIGNvbWJpbmF0aW9ucy4KCk9ubHkgdGhlIGBhdXRob3JpemVyYCBvZiB0aGUgT0FwcCBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uLgpQcm92aWRlcyBhIHdheSBmb3IgdGhlIE9BcHAgdG8gZW5mb3JjZSB0aGluZ3MgbGlrZSBwYXlpbmcgZm9yIFByZUNyaW1lLCBBTkQvT1IgbWluaW11bSBkc3QgbHpSZWNlaXZlIGdhcyBhbW91bnRzIGV0Yy4KVGhlc2UgZW5mb3JjZWQgb3B0aW9ucyBjYW4gdmFyeSBhcyB0aGUgcG90ZW50aWFsIG9wdGlvbnMvZXhlY3V0aW9uIG9uIHRoZSByZW1vdGUgbWF5IGRpZmZlciBhcyBwZXIgdGhlIG1zZ190eXBlLgplLmcuIEFtb3VudCBvZiBselJlY2VpdmUoKSBnYXMgbmVjZXNzYXJ5IHRvIGRlbGl2ZXIgYSBsekNvbXBvc2UoKSBtZXNzYWdlIGFkZHMgb3ZlcmhlYWQgeW91IGRvbid0IHdhbnQgdG8gcGF5CmlmIHlvdSBhcmUgb25seSBtYWtpbmcgYSBzdGFuZGFyZCBMYXllclplcm8gbWVzc2FnZSBpZS4gbHpSZWNlaXZlKCkgV0lUSE9VVCBzZW5kQ29tcG9zZSgpLgoKIyBBcmd1bWVudHMKKiBgb3B0aW9uc2AgLSBBIHZlY3RvciBvZiBFbmZvcmNlZE9wdGlvblBhcmFtIHN0cnVjdHVyZXMgc3BlY2lmeWluZyBlbmZvcmNlZCBvcHRpb25zCiogYG9wZXJhdG9yYCAtIFRoZSBhZGRyZXNzIHRoYXQgbXVzdCBoYXZlIE9BUFBfQURNSU5fUk9MRQAAABRzZXRfZW5mb3JjZWRfb3B0aW9ucwAAAAIAAAAAAAAAB29wdGlvbnMAAAAD6gAAB9AAAAATRW5mb3JjZWRPcHRpb25QYXJhbQAAAAAAAAAACG9wZXJhdG9yAAAAEwAAAAAAAAAAAAACekNvbWJpbmVzIG9wdGlvbnMgZm9yIGEgZ2l2ZW4gZW5kcG9pbnQgYW5kIG1lc3NhZ2UgdHlwZS4KCklmIHRoZXJlIGlzIGFuIGVuZm9yY2VkIGx6UmVjZWl2ZSBvcHRpb246Ci0ge2dhc19saW1pdDogMjAwaywgdmFsdWU6IDEgWExNfSBBTkQgYSBjYWxsZXIgc3VwcGxpZXMgYSBselJlY2VpdmUgb3B0aW9uOiB7Z2FzX2xpbWl0OiAxMDBrLCB2YWx1ZTogMC41IFhMTX0KLSBUaGUgcmVzdWx0aW5nIG9wdGlvbnMgd2lsbCBiZSB7Z2FzX2xpbWl0OiAzMDBrLCB2YWx1ZTogMS41IFhMTX0gd2hlbiB0aGUgbWVzc2FnZSBpcyBleGVjdXRlZCBvbiB0aGUgcmVtb3RlIGx6X3JlY2VpdmUoKSBmdW5jdGlvbi4KVGhlIHByZXNlbmNlIG9mIGR1cGxpY2F0ZWQgb3B0aW9ucyBpcyBoYW5kbGVkIG9mZi1jaGFpbiBpbiB0aGUgdmVyaWZpZXIvZXhlY3V0b3IuCgojIEFyZ3VtZW50cwoqIGBlaWRgIC0gVGhlIGVuZHBvaW50IElECiogYG1zZ190eXBlYCAtIFRoZSBPQXBwIG1lc3NhZ2UgdHlwZQoqIGBleHRyYV9vcHRpb25zYCAtIEFkZGl0aW9uYWwgb3B0aW9ucyBwYXNzZWQgYnkgdGhlIGNhbGxlcgoKIyBSZXR1cm5zClRoZSBjb21iaW5hdGlvbiBvZiBjYWxsZXIgc3BlY2lmaWVkIG9wdGlvbnMgQU5EIGVuZm9yY2VkIG9wdGlvbnMAAAAAAA9jb21iaW5lX29wdGlvbnMAAAAAAwAAAAAAAAADZWlkAAAAAAQAAAAAAAAACG1zZ190eXBlAAAABAAAAAAAAAANZXh0cmFfb3B0aW9ucwAAAAAAAA4AAAABAAAADgAAAAAAAAAAAAAACmF1dGhvcml6ZXIAAAAAAAAAAAABAAAD6AAAABMAAAAAAAAAPlJldHVybnMgdGhlIGN1cnJlbnQgb3duZXIgYWRkcmVzcywgb3IgTm9uZSBpZiBubyBvd25lciBpcyBzZXQuAAAAAAAFb3duZXIAAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAFlSZXR1cm5zIHRoZSBwZW5kaW5nIG93bmVyIGFkZHJlc3MgZm9yIDItc3RlcCB0cmFuc2Zlciwgb3IgTm9uZSBpZiBubyB0cmFuc2ZlciBpcyBwZW5kaW5nLgAAAAAAAA1wZW5kaW5nX293bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAAEpVHJhbnNmZXJzIG93bmVyc2hpcCBpbW1lZGlhdGVseSB0byBhIG5ldyBhZGRyZXNzLgoKVXNlIHdpdGggY2F1dGlvbiAtIGlmIHlvdSB0cmFuc2ZlciB0byBhIHdyb25nIGFkZHJlc3MsIG93bmVyc2hpcCBpcyBsb3N0IGZvcmV2ZXIuCkNvbnNpZGVyIHVzaW5nIGBiZWdpbl9vd25lcnNoaXBfdHJhbnNmZXJgIGluc3RlYWQuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzAAAAAAAAEnRyYW5zZmVyX293bmVyc2hpcAAAAAAAAQAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAACWkJlZ2lucyBhbiBvd25lcnNoaXAgdHJhbnNmZXIgdG8gYSBuZXcgYWRkcmVzcy4KClRoZSBuZXcgb3duZXIgbXVzdCBjYWxsIGBhY2NlcHRfb3duZXJzaGlwKClgIHdpdGhpbiBgdHRsYCBsZWRnZXJzCnRvIGNvbXBsZXRlIHRoZSB0cmFuc2Zlci4gVGhlIHBlbmRpbmcgdHJhbnNmZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGV4cGlyZSBhZnRlci4KCiMgQXJndW1lbnRzCi0gYG5ld19vd25lcmAgLSBUaGUgcHJvcG9zZWQgbmV3IG93bmVyCi0gYHR0bGAgLSBOdW1iZXIgb2YgbGVkZ2VycyB0aGUgbmV3IG93bmVyIGhhcyB0byBhY2NlcHQuClVzZSBgMGAgdG8gY2FuY2VsIGEgcGVuZGluZyB0cmFuc2ZlciAobmV3X293bmVyIG11c3QgbWF0Y2ggcGVuZGluZykuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgd2hlbiBjYW5jZWxsaW5nIGFuZCBubyBwZW5kaW5nIHRyYW5zZmVyIGV4aXN0cwotIGBJbnZhbGlkVHRsYCBpZiB0dGwgZXhjZWVkcyBtYXggVFRMCi0gYEludmFsaWRQZW5kaW5nT3duZXJgIHdoZW4gY2FuY2VsbGluZyB3aXRoIHdyb25nIG5ld19vd25lciBhZGRyZXNzAAAAAAAYYmVnaW5fb3duZXJzaGlwX3RyYW5zZmVyAAAAAgAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAAAAALlBY2NlcHRzIGEgcGVuZGluZyAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyLgoKTXVzdCBiZSBjYWxsZWQgYnkgdGhlIHBlbmRpbmcgb3duZXIgYmVmb3JlIHRoZSBUVEwgZXhwaXJlcy4KCiMgUGFuaWNzCi0gYE5vUGVuZGluZ1RyYW5zZmVyYCBpZiB0aGVyZSBpcyBubyBwZW5kaW5nIHRyYW5zZmVyIChvciBpdCBleHBpcmVkKQAAAAAAABBhY2NlcHRfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAApFBlcm1hbmVudGx5IHJlbm91bmNlcyBvd25lcnNoaXAuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzIChjYW5jZWwgaXQgZmlyc3QpAAAAEnJlbm91bmNlX293bmVyc2hpcAAAAAAAAAAAAAAAAAAAAAAApUV4dGVuZHMgdGhlIGluc3RhbmNlIFRUTC4KCiMgQXJndW1lbnRzCgoqIGB0aHJlc2hvbGRgIC0gVGhlIHRocmVzaG9sZCB0byBleHRlbmQgdGhlIFRUTCAoaWYgY3VycmVudCBUVEwgaXMgYmVsb3cgdGhpcywgZXh0ZW5kKS4KKiBgZXh0ZW5kX3RvYCAtIFRoZSBUVEwgdG8gZXh0ZW5kIHRvLgAAAAAAABNleHRlbmRfaW5zdGFuY2VfdHRsAAAAAAIAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAACWV4dGVuZF90bwAAAAAAAAQAAAAAAAAAAAAAAY9TZXRzIFRUTCBjb25maWdzIGZvciBpbnN0YW5jZSBhbmQgcGVyc2lzdGVudCBzdG9yYWdlLgoKLSBgTm9uZWAgdmFsdWVzIHJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBjb25maWcgKGRpc2FibGVzIGF1dG8tZXh0ZW5zaW9uIGZvciB0aGF0IHR5cGUpCi0gVmFsaWRhdGVzIHRoYXQgYHRocmVzaG9sZCA8PSBleHRlbmRfdG8gPD0gTUFYX1RUTGAKCiMgQXJndW1lbnRzCi0gYGluc3RhbmNlYCAtIFRUTCBjb25maWcgZm9yIGluc3RhbmNlIHN0b3JhZ2UKLSBgcGVyc2lzdGVudGAgLSBUVEwgY29uZmlnIGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UKCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0Zyb3plbmAgaWYgY29uZmlncyBhcmUgZnJvemVuCi0gYEludmFsaWRUdGxDb25maWdgIGlmIHZhbGlkYXRpb24gZmFpbHMAAAAAD3NldF90dGxfY29uZmlncwAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAKcGVyc2lzdGVudAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAAAAABIUmV0dXJucyB0aGUgY3VycmVudCBUVEwgY29uZmlncyBhcyAoaW5zdGFuY2VfY29uZmlnLCBwZXJzaXN0ZW50X2NvbmZpZykuAAAAC3R0bF9jb25maWdzAAAAAAAAAAABAAAD7QAAAAIAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAA4VBlcm1hbmVudGx5IGZyZWV6ZXMgVFRMIGNvbmZpZ3MsIHByZXZlbnRpbmcgYW55IGZ1dHVyZSBtb2RpZmljYXRpb25zLgoKVGhpcyBpcyBpcnJldmVyc2libGUgYW5kIHByb3ZpZGVzIGltbXV0YWJpbGl0eSBndWFyYW50ZWVzIHRvIHVzZXJzLgpFbWl0cyBgVHRsQ29uZmlnc0Zyb3plbmAgZXZlbnQuCgojIFBhbmljcwotIGBUdGxDb25maWdBbHJlYWR5RnJvemVuYCBpZiBhbHJlYWR5IGZyb3plbgAAAAAAABJmcmVlemVfdHRsX2NvbmZpZ3MAAAAAAAAAAAAAAAAAAAAAACdSZXR1cm5zIHdoZXRoZXIgVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAFWlzX3R0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAADV9fY29uc3RydWN0b3IAAAAAAAADAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAACGVuZHBvaW50AAAAEwAAAAAAAAAIZGVsZWdhdGUAAAATAAAAAAAAAAAAAAAAAAAABXF1b3RlAAAAAAAABAAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAAhtc2dfdHlwZQAAAAQAAAAAAAAAB29wdGlvbnMAAAAADgAAAAAAAAAKcGF5X2luX3pybwAAAAAAAQAAAAEAAAfQAAAADE1lc3NhZ2luZ0ZlZQAAAAAAAAAAAAAACWluY3JlbWVudAAAAAAAAAUAAAAAAAAABmNhbGxlcgAAAAAAEwAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAAhtc2dfdHlwZQAAAAQAAAAAAAAAB29wdGlvbnMAAAAADgAAAAAAAAADZmVlAAAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAAAAAAAAAAAAAAAAAEXNldF9vcmRlcmVkX25vbmNlAAAAAAAAAQAAAAAAAAANb3JkZXJlZF9ub25jZQAAAAAAAAEAAAAAAAAAAAAAAAAAAAASc2tpcF9pbmJvdW5kX25vbmNlAAAAAAADAAAAAAAAAAdzcmNfZWlkAAAAAAQAAAAAAAAABnNlbmRlcgAAAAAD7gAAACAAAAAAAAAABW5vbmNlAAAAAAAABgAAAAAAAAAAAAAAAAAAAAh3aXRoZHJhdwAAAAIAAAAAAAAAAnRvAAAAAAATAAAAAAAAAAZhbW91bnQAAAAAAAsAAAAAAAAAAAAAAAAAAAADZWlkAAAAAAAAAAABAAAABAAAAAAAAAAAAAAABWNvdW50AAAAAAAAAAAAAAEAAAAGAAAAAAAAAAAAAAAOY29tcG9zZWRfY291bnQAAAAAAAAAAAABAAAABgAAAAAAAAAAAAAADWluYm91bmRfY291bnQAAAAAAAABAAAAAAAAAANlaWQAAAAABAAAAAEAAAAGAAAAAAAAAAAAAAAOb3V0Ym91bmRfY291bnQAAAAAAAEAAAAAAAAAA2VpZAAAAAAEAAAAAQAAAAYAAAAAAAAAAAAAAApuZXh0X25vbmNlAAAAAAACAAAAAAAAAAdzcmNfZWlkAAAAAAQAAAAAAAAABnNlbmRlcgAAAAAD7gAAACAAAAABAAAABgAAAAAAAAC3Q2hlY2tzIGlmIGEgbWVzc2FnaW5nIHBhdGggY2FuIGJlIGluaXRpYWxpemVkIGZvciB0aGUgZ2l2ZW4gb3JpZ2luLgoKIyBBcmd1bWVudHMKKiBgb3JpZ2luYCAtIFRoZSBvcmlnaW4gb2YgdGhlIG1lc3NhZ2UKCiMgUmV0dXJucwpUcnVlIGlmIHRoZSBwYXRoIGNhbiBiZSBpbml0aWFsaXplZCwgZmFsc2Ugb3RoZXJ3aXNlAAAAABVhbGxvd19pbml0aWFsaXplX3BhdGgAAAAAAAABAAAAAAAAAAZvcmlnaW4AAAAAB9AAAAAGT3JpZ2luAAAAAAABAAAAAQAAAAAAAAMjRW50cnkgcG9pbnQgZm9yIHJlY2VpdmluZyBtZXNzYWdlcyBvciBwYWNrZXRzIGZyb20gdGhlIExheWVyWmVybyBlbmRwb2ludC4KClRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGNhbGxzIGBjbGVhcl9wYXlsb2FkX2FuZF90cmFuc2ZlcmAgdG8gdmFsaWRhdGUgdGhlIG1lc3NhZ2UKYW5kIGNsZWFyIGl0IGZyb20gdGhlIGVuZHBvaW50LCB0aGVuIGRlbGVnYXRlcyB0byBgX19sel9yZWNlaXZlYCBmb3IgYXBwbGljYXRpb24gbG9naWMuCgojIEFyZ3VtZW50cwoqIGBleGVjdXRvcmAgLSBUaGUgYWRkcmVzcyBvZiB0aGUgZXhlY3V0b3IgZm9yIHRoZSByZWNlaXZlZCBtZXNzYWdlCiogYG9yaWdpbmAgLSBUaGUgb3JpZ2luIGluZm9ybWF0aW9uIGNvbnRhaW5pbmcgdGhlIHNvdXJjZSBlbmRwb2ludCBhbmQgc2VuZGVyIGFkZHJlc3M6Ci0gYHNyY19laWRgOiBUaGUgc291cmNlIGNoYWluIGVuZHBvaW50IElECi0gYHNlbmRlcmA6IFRoZSBzZW5kZXIgYWRkcmVzcyBvbiB0aGUgc291cmNlIGNoYWluCi0gYG5vbmNlYDogVGhlIG5vbmNlIG9mIHRoZSBtZXNzYWdlCiogYGd1aWRgIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVjZWl2ZWQgTGF5ZXJaZXJvIG1lc3NhZ2UKKiBgbWVzc2FnZWAgLSBUaGUgcGF5bG9hZCBvZiB0aGUgcmVjZWl2ZWQgbWVzc2FnZQoqIGBleHRyYV9kYXRhYCAtIEFkZGl0aW9uYWwgYXJiaXRyYXJ5IGRhdGEgcHJvdmlkZWQgYnkgdGhlIGNvcnJlc3BvbmRpbmcgZXhlY3V0b3IKKiBgdmFsdWVgIC0gVGhlIG5hdGl2ZSB0b2tlbiB2YWx1ZSBzZW50IHdpdGggdGhlIG1lc3NhZ2UAAAAACmx6X3JlY2VpdmUAAAAAAAYAAAAAAAAACGV4ZWN1dG9yAAAAEwAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAAAAAARndWlkAAAD7gAAACAAAAAAAAAAB21lc3NhZ2UAAAAADgAAAAAAAAAKZXh0cmFfZGF0YQAAAAAADgAAAAAAAAAFdmFsdWUAAAAAAAALAAAAAAAAAAAAAAHsSW5kaWNhdGVzIHdoZXRoZXIgYW4gYWRkcmVzcyBpcyBhbiBhcHByb3ZlZCBjb21wb3NlTXNnIHNlbmRlciB0byB0aGUgRW5kcG9pbnQuCgpBcHBsaWNhdGlvbnMgY2FuIG9wdGlvbmFsbHkgY2hvb3NlIHRvIGltcGxlbWVudCBzZXBhcmF0ZSBjb21wb3NlTXNnIHNlbmRlcnMgdGhhdCBhcmUgTk9UIHRoZSBicmlkZ2luZyBsYXllci4KVGhlIGRlZmF1bHQgc2VuZGVyIElTIHRoZSBPQXBwUmVjZWl2ZXIgaW1wbGVtZW50ZXIuCgojIEFyZ3VtZW50cwoqIGBv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eSBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQgd2l0aCB0aGUgZW5kcG9pbnQAAAAAEUFscmVhZHlSZWdpc3RlcmVkAAAAAAAAAQAAADZDb21wb3NlIG1lc3NhZ2UgYWxyZWFkeSBleGlzdHMgZm9yIHRoaXMgR1VJRCBhbmQgaW5kZXgAAAAAAA1Db21wb3NlRXhpc3RzAAAAAAAAAgAAADZDb21wb3NlIG1lc3NhZ2Ugbm90IGZvdW5kIGZvciB0aGUgZ2l2ZW4gR1VJRCBhbmQgaW5kZXgAAAAAAA9Db21wb3NlTm90Rm91bmQAAAAAAwAAADpEZWZhdWx0IHJlY2VpdmUgbGlicmFyeSBpcyBub3Qgc2V0IGZvciB0aGUgc291cmNlIGVuZHBvaW50AAAAAAAcRGVmYXVsdFJlY2VpdmVMaWJVbmF2YWlsYWJsZQAAAAQAAAA8RGVmYXVsdCBzZW5kIGxpYnJhcnkgaXMgbm90IHNldCBmb3IgdGhlIGRlc3RpbmF0aW9uIGVuZHBvaW50AAAAGURlZmF1bHRTZW5kTGliVW5hdmFpbGFibGUAAAAAAAAFAAAAL1N1cHBsaWVkIG5hdGl2ZSB0b2tlbiBmZWUgaXMgbGVzcyB0aGFuIHJlcXVpcmVkAAAAABVJbnN1ZmZpY2llbnROYXRpdmVGZWUAAAAAAAAGAAAALFN1cHBsaWVkIFpSTyB0b2tlbiBmZWUgaXMgbGVzcyB0aGFuIHJlcXVpcmVkAAAAEkluc3VmZmljaWVudFpyb0ZlZQAAAAAABwAAACtUaW1lb3V0IGV4cGlyeSBpcyBpbnZhbGlkIChhbHJlYWR5IGV4cGlyZWQpAAAAAA1JbnZhbGlkRXhwaXJ5AAAAAAAACAAAABxBbW91bnQgaXMgaW52YWxpZCAobmVnYXRpdmUpAAAADUludmFsaWRBbW91bnQAAAAAAAAJAAAAK0NvbXBvc2UgaW5kZXggZXhjZWVkcyBtYXhpbXVtIGFsbG93ZWQgdmFsdWUAAAAADEludmFsaWRJbmRleAAAAAoAAAAsTm9uY2UgaXMgaW52YWxpZCBmb3IgdGhlIHJlcXVlc3RlZCBvcGVyYXRpb24AAAAMSW52YWxpZE5vbmNlAAAACwAAADBQYXlsb2FkIGhhc2ggaXMgaW52YWxpZCAoZW1wdHkgaGFzaCBub3QgYWxsb3dlZCkAAAASSW52YWxpZFBheWxvYWRIYXNoAAAAAAAMAAAAQVJlY2VpdmUgbGlicmFyeSBpcyBub3QgdmFsaWQgZm9yIHRoZSByZWNlaXZlciBhbmQgc291cmNlIGVuZHBvaW50AAAAAAAAFUludmFsaWRSZWNlaXZlTGlicmFyeQAAAAAAAA0AAAAxT3BlcmF0aW9uIHJlcXVpcmVzIGEgbm9uLWRlZmF1bHQgKGN1c3RvbSkgbGlicmFyeQAAAAAAABFPbmx5Tm9uRGVmYXVsdExpYgAAAAAAAA4AAAAnTGlicmFyeSBtdXN0IHN1cHBvcnQgcmVjZWl2aW5nIG1lc3NhZ2VzAAAAAA5Pbmx5UmVjZWl2ZUxpYgAAAAAADwAAACxMaWJyYXJ5IG11c3QgYmUgcmVnaXN0ZXJlZCB3aXRoIHRoZSBlbmRwb2ludAAAABFPbmx5UmVnaXN0ZXJlZExpYgAAAAAAABAAAAAlTGlicmFyeSBtdXN0IHN1cHBvcnQgc2VuZGluZyBtZXNzYWdlcwAAAAAAAAtPbmx5U2VuZExpYgAAAAARAAAAOU1lc3NhZ2luZyBwYXRoIGNhbm5vdCBiZSBpbml0aWFsaXplZCBmb3IgdGhlIGdpdmVuIG9yaWdpbgAAAAAAABRQYXRoTm90SW5pdGlhbGl6YWJsZQAAABIAAAAvTWVzc2FnZSBjYW5ub3QgYmUgdmVyaWZpZWQgZm9yIHRoZSBnaXZlbiBvcmlnaW4AAAAAEVBhdGhOb3RWZXJpZmlhYmxlAAAAAAAAEwAAACtQYXlsb2FkIGhhc2ggZG9lcyBub3QgbWF0Y2ggdGhlIHN0b3JlZCBoYXNoAAAAABNQYXlsb2FkSGFzaE5vdEZvdW5kAAAAABQAAAAnTmV3IHZhbHVlIGlzIHRoZSBzYW1lIGFzIGV4aXN0aW5nIHZhbHVlAAAAAAlTYW1lVmFsdWUAAAAAAAAVAAAAL0NhbGxlciBpcyBub3QgYXV0aG9yaXplZCAobm90IE9BcHAgb3IgZGVsZWdhdGUpAAAAAAxVbmF1dGhvcml6ZWQAAAAWAAAAK0VuZHBvaW50IElEIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGxpYnJhcnkAAAAADlVuc3VwcG9ydGVkRWlkAAAAAAAXAAAAOVpSTyBmZWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybyB3aGVuIHBheV9pbl96cm8gaXMgdHJ1ZQAAAAAAAApaZXJvWnJvRmVlAAAAAAAYAAAAHFpSTyB0b2tlbiBhZGRyZXNzIGlzIG5vdCBzZXQAAAAOWnJvVW5hdmFpbGFibGUAAAAAABkAAAABAAAALVBhcmFtZXRlcnMgZm9yIHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAAAAPTWVzc2FnaW5nUGFyYW1zAAAAAAUAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAHFRoZSBtZXNzYWdlIHBheWxvYWQgdG8gc2VuZC4AAAAHbWVzc2FnZQAAAAAOAAAAIUVuY29kZWQgZXhlY3V0b3IgYW5kIERWTiBvcHRpb25zLgAAAAAAAAdvcHRpb25zAAAAAA4AAAA5V2hldGhlciB0byBwYXkgZmVlcyBpbiBaUk8gdG9rZW4gaW5zdGVhZCBvZiBuYXRpdmUgdG9rZW4uAAAAAAAACnBheV9pbl96cm8AAAAAAAEAAAA1UmVjZWl2ZXIgYWRkcmVzcyBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAAEAAABNU291cmNlIG1lc3NhZ2UgaW5mb3JtYXRpb24gaWRlbnRpZnlpbmcgd2hlcmUgYSBjcm9zcy1jaGFpbiBtZXNzYWdlIGNhbWUgZnJvbS4AAAAAAAAAAAAABk9yaWdpbgAAAAAAAwAAABdOb25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAAFbm9uY2UAAAAAAAAGAAAALlNlbmRlciBhZGRyZXNzIG9uIHRoZSBzb3VyY2UgY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAZzZW5kZXIAAAAAA+4AAAAgAAAAJlNvdXJjZSBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAAChGZWUgc3RydWN0dXJlIGZvciBjcm9zcy1jaGFpbiBtZXNzYWdpbmcuAAAAAAAAAAxNZXNzYWdpbmdGZWUAAAACAAAAH0ZlZSBwYWlkIGluIG5hdGl2ZSB0b2tlbiAoWExNKS4AAAAACm5hdGl2ZV9mZWUAAAAAAAsAAAAoRmVlIHBhaWQgaW4gWlJPIHRva2VuIChMYXllclplcm8gdG9rZW4pLgAAAAd6cm9fZmVlAAAAAAsAAAABAAAAQlJlY2VpcHQgcmV0dXJuZWQgYWZ0ZXIgc3VjY2Vzc2Z1bGx5IHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAABBNZXNzYWdpbmdSZWNlaXB0AAAAAwAAAClUaGUgZmVlcyBjaGFyZ2VkIGZvciBzZW5kaW5nIHRoZSBtZXNzYWdlLgAAAAAAAANmZWUAAAAH0AAAAAxNZXNzYWdpbmdGZWUAAAArR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBtZXNzYWdlLgAAAAAEZ3VpZAAAA+4AAAAgAAAAJFRoZSBvdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAACAAAAOFR5cGUgb2YgbWVzc2FnZSBsaWJyYXJ5IGluZGljYXRpbmcgc3VwcG9ydGVkIG9wZXJhdGlvbnMuAAAAAAAAAA5NZXNzYWdlTGliVHlwZQAAAAAAAwAAAAAAAAAfU3VwcG9ydHMgb25seSBzZW5kaW5nIG1lc3NhZ2VzLgAAAAAEU2VuZAAAAAAAAAAhU3VwcG9ydHMgb25seSByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAAB1JlY2VpdmUAAAAAAAAAAC1TdXBwb3J0cyBib3RoIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAOU2VuZEFuZFJlY2VpdmUAAAAAAAEAAAC3VmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgYSBtZXNzYWdlIGxpYnJhcnkuCgpOb3RlOiBgbWlub3JgIGFuZCBgZW5kcG9pbnRfdmVyc2lvbmAgdXNlIGB1MzJgIGluc3RlYWQgb2YgYHU4YCBiZWNhdXNlIFN0ZWxsYXIgZG9lcyBub3QKc3VwcG9ydCBgdThgIHR5cGVzIGluIGNvbnRyYWN0IGludGVyZmFjZSBmdW5jdGlvbnMuAAAAAAAAAAARTWVzc2FnZUxpYlZlcnNpb24AAAAAAAADAAAAM0VuZHBvaW50IHZlcnNpb24gKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAQZW5kcG9pbnRfdmVyc2lvbgAAAAQAAAAVTWFqb3IgdmVyc2lvbiBudW1iZXIuAAAAAAAABW1ham9yAAAAAAAABgAAADdNaW5vciB2ZXJzaW9uIG51bWJlciAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAAAVtaW5vcgAAAAAAAAQAAAABAAAANlRpbWVvdXQgY29uZmlndXJhdGlvbiBmb3IgcmVjZWl2ZSBsaWJyYXJ5IHRyYW5zaXRpb25zLgAAAAAAAAAAAAdUaW1lb3V0AAAAAAIAAAAzVW5peCB0aW1lc3RhbXAgaW4gc2Vjb25kcyB3aGVuIHRoZSB0aW1lb3V0IGV4cGlyZXMuAAAAAAZleHBpcnkAAAAAAAYAAABDVGhlIG9sZCBsaWJyYXJ5IGFkZHJlc3MgdGhhdCByZW1haW5zIHZhbGlkIGR1cmluZyB0aGUgZ3JhY2UgcGVyaW9kLgAAAAADbGliAAAAABMAAAABAAAANVBhcmFtZXRlcnMgZm9yIHNldHRpbmcgbWVzc2FnZSBsaWJyYXJ5IGNvbmZpZ3VyYXRpb24uAAAAAAAAAAAAAA5TZXRDb25maWdQYXJhbQAAAAAAAwAAAB9YRFItZW5jb2RlZCBjb25maWd1cmF0aW9uIGRhdGEuAAAAAAZjb25maWcAAAAAAA4AAAAwVGhlIHR5cGUgb2YgY29uZmlndXJhdGlvbiAoZS5nLiwgZXhlY3V0b3IsIFVMTikuAAAAC2NvbmZpZ190eXBlAAAAAAQAAAAnVGhlIGVuZHBvaW50IElEIHRoaXMgY29uZmlnIGFwcGxpZXMgdG8uAAAAAANlaWQAAAAABAAAAAEAAAAxUmVzb2x2ZWQgbGlicmFyeSBpbmZvcm1hdGlvbiB3aXRoIGRlZmF1bHQgc3RhdHVzLgAAAAAAAAAAAAAPUmVzb2x2ZWRMaWJyYXJ5AAAAAAIAAABEV2hldGhlciB0aGlzIGlzIHRoZSBkZWZhdWx0IGxpYnJhcnkgKHRydWUpIG9yIE9BcHAtc3BlY2lmaWMgKGZhbHNlKS4AAAAKaXNfZGVmYXVsdAAAAAAAAQAAAB1UaGUgcmVzb2x2ZWQgbGlicmFyeSBhZGRyZXNzLgAAAAAAAANsaWIAAAAAEwAAAAEAAABIT3V0Ym91bmQgcGFja2V0IGNvbnRhaW5pbmcgYWxsIGluZm9ybWF0aW9uIGZvciBjcm9zcy1jaGFpbiB0cmFuc21pc3Npb24uAAAAAAAAAA5PdXRib3VuZFBhY2tldAAAAAAABwAAABhEZXN0aW5hdGlvbiBlbmRwb2ludCBJRC4AAAAHZHN0X2VpZAAAAAAEAAAALEdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIG1lc3NhZ2UuAAAABGd1aWQAAAPuAAAAIAAAABRUaGUgbWVzc2FnZSBwYXlsb2FkLgAAAAdtZXNzYWdlAAAAAA4AAAAgT3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAMVJlY2VpdmVyIGFkZHJlc3Mgb24gZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAB9TZW5kZXIgYWRkcmVzcyBvbiBzb3VyY2UgY2hhaW4uAAAAAAZzZW5kZXIAAAAAABMAAAATU291cmNlIGVuZHBvaW50IElELgAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAACtBIGZlZSByZWNpcGllbnQgd2l0aCB0aGUgYW1vdW50IHRvIGJlIHBhaWQuAAAAAAAAAAAMRmVlUmVjaXBpZW50AAAAAgAAABVBbW91bnQgb2YgZmVlIHRvIHBheS4AAAAAAAAGYW1vdW50AAAAAAALAAAAH1RoZSBhZGRyZXNzIHRvIHNlbmQgdGhlIGZlZSB0by4AAAAAAnRvAAAAAAATAAAAAQAAADxSZXN1bHQgb2Ygc2VuZCBvcGVyYXRpb24gY29udGFpbmluZyBmZWVzIGFuZCBlbmNvZGVkIHBhY2tldC4AAAAAAAAADUZlZXNBbmRQYWNrZXQAAAAAAAADAAAAKlRoZSBlbmNvZGVkIHBhY2tldCByZWFkeSBmb3IgdHJhbnNtaXNzaW9uLgAAAAAADmVuY29kZWRfcGFja2V0AAAAAAAOAAAAP0xpc3Qgb2YgbmF0aXZlIHRva2VuIGZlZSByZWNpcGllbnRzIChleGVjdXRvciwgRFZOcywgdHJlYXN1cnkpLgAAAAAVbmF0aXZlX2ZlZV9yZWNpcGllbnRzAAAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAALExpc3Qgb2YgWlJPIHRva2VuIGZlZSByZWNpcGllbnRzICh0cmVhc3VyeSkuAAAAEnpyb19mZWVfcmVjaXBpZW50cwAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAAAgAAAAAAAAAAAAAAD09BcHBDb3JlU3RvcmFnZQAAAAACAAAAAAAAAAAAAAAIRW5kcG9pbnQAAAABAAAAAAAAAARQZWVyAAAAAQAAAAQAAAAFAAAAAAAAAAAAAAAHUGVlclNldAAAAAABAAAACHBlZXJfc2V0AAAAAgAAAAAAAAADZWlkAAAAAAQAAAAAAAAAAAAAAARwZWVyAAAD6AAAA+4AAAAgAAAAAAAAAAIAAAABAAAAAAAAAAAAAAATRW5mb3JjZWRPcHRpb25QYXJhbQAAAAADAAAAAAAAAANlaWQAAAAABAAAAAAAAAAIbXNnX3R5cGUAAAAEAAAAAAAAAAdvcHRpb25zAAAAA+gAAAAOAAAAAgAAAAAAAAAAAAAAF09BcHBPcHRpb25zVHlwZTNTdG9yYWdlAAAAAAEAAAABAAAAAAAAAA9FbmZvcmNlZE9wdGlvbnMAAAAAAgAAAAQAAAAEAAAABQAAAAAAAAAAAAAAEUVuZm9yY2VkT3B0aW9uU2V0AAAAAAAAAQAAABNlbmZvcmNlZF9vcHRpb25fc2V0AAAAAAEAAAAAAAAAEGVuZm9yY2VkX29wdGlvbnMAAAPqAAAH0AAAABNFbmZvcmNlZE9wdGlvblBhcmFtAAAAAAAAAAACAAAAAgAAAqpSZXByZXNlbnRzIGEgZmVlIHBheWVyIGFkZHJlc3Mgd2l0aCBleHBsaWNpdCBhdXRob3JpemF0aW9uIHN0YXRlLgoKVGhpcyBlbnVtIGZvcmNlcyBjYWxsZXJzIG9mIGBfX2x6X3NlbmRgIHRvIGV4cGxpY2l0bHkgZGVjbGFyZSB3aGV0aGVyCmByZXF1aXJlX2F1dGgoKWAgaGFzIGFscmVhZHkgYmVlbiBjYWxsZWQgZm9yIHRoZSBmZWUgcGF5ZXIgYWRkcmVzcy4KVGhpcyBwcmV2ZW50cyB0aGUgY29tbW9uIG1pc3Rha2Ugb2YgZm9yZ2V0dGluZyB0byBhdXRob3JpemUgdGhlIGZlZSBwYXllci4KCiMgVmFyaWFudHMKLSBgVW52ZXJpZmllZGAg4oCUIFNhZmUgZGVmYXVsdC4gYF9fbHpfc2VuZGAgd2lsbCBjYWxsIGByZXF1aXJlX2F1dGgoKWAgb24gdGhlIGFkZHJlc3MuClVzZSB0aGlzIHdoZW4gdGhlIGNhbGxlciBoYXMgKipub3QqKiBhbHJlYWR5IGF1dGhvcml6ZWQgdGhlIGZlZSBwYXllci4KLSBgVmVyaWZpZWRgIOKAlCBDYWxsZXIgYXNzZXJ0cyB0aGF0IGByZXF1aXJlX2F1dGgoKWAgaGFzIGFscmVhZHkgYmVlbiBjYWxsZWQuClVzZSB0aGlzIHRvIGF2b2lkIGEgZHVwbGljYXRlIGByZXF1aXJlX2F1dGgoKWAgbm9kZSBpbiB0aGUgU29yb2JhbiBhdXRoIHRyZWUKKGUuZy4sIHdoZW4gdGhlIHNhbWUgYWRkcmVzcyB3YXMgYWxyZWFkeSBhdXRob3JpemVkIGFzIHRoZSBtZXNzYWdlIHNlbmRlcikuAAAAAAAAAAAACEZlZVBheWVyAAAAAgAAAAEAAACqVGhlIGZlZSBwYXllciBoYXMgKipub3QqKiBiZWVuIGF1dGhvcml6ZWQgeWV0LgpgX19sel9zZW5kYCB3aWxsIGNhbGwgYGZlZV9wYXllci5yZXF1aXJlX2F1dGgoKWAgYmVmb3JlIHRyYW5zZmVycmluZyBmZWVzLgpUaGlzIGlzIHRoZSBzYWZlIGRlZmF1bHQg4oCUIHVzZSB0aGlzIGlmIHVuc3VyZS4AAAAAAApVbnZlcmlmaWVkAAAAAAABAAAAEwAAAAEAAAFvVGhlIGZlZSBwYXllciBoYXMgKiphbHJlYWR5KiogYmVlbiBhdXRob3JpemVkIGJ5IHRoZSBjYWxsZXIgdmlhIGByZXF1aXJlX2F1dGgoKWAuCmBfX2x6X3NlbmRgIHdpbGwgc2tpcCB0aGUgYXV0aCBjaGVjayB0byBhdm9pZCBjcmVhdGluZyBhIGR1cGxpY2F0ZSBhdXRoIG5vZGUKaW4gdGhlIFNvcm9iYW4gYXV0aG9yaXphdGlvbiB0cmVlLgoKIyBTYWZldHkKT25seSB1c2UgdGhpcyB2YXJpYW50IGlmIHlvdSBoYXZlIGFscmVhZHkgY2FsbGVkIGByZXF1aXJlX2F1dGgoKWAgb24gdGhpcyBhZGRyZXNzCmluIHRoZSBjdXJyZW50IGNvbnRyYWN0IGludm9jYXRpb24uIE1pc3VzZSBtYXkgYWxsb3cgdW5hdXRob3JpemVkIGZlZSBkZWR1Y3Rpb25zLgAAAAAIVmVyaWZpZWQAAAABAAAAEwAAAAQAAAAUT0FwcEVycm9yOiAyMDAwLTIwOTkAAAAAAAAACU9BcHBFcnJvcgAAAAAAAAQAAAAAAAAADkludmFsaWRPcHRpb25zAAAAAAfQAAAAAAAAAAZOb1BlZXIAAAAAB9EAAAAAAAAACE9ubHlQZWVyAAAH0gAAAAAAAAATWnJvVG9rZW5VbmF2YWlsYWJsZQAAAAfTAAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPpAAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/IAAAAEAAAAH1R0bENvbmZpZ3VyYWJsZUVycm9yOiAxMDIwLTEwMjkAAAAAAAAAABRUdGxDb25maWd1cmFibGVFcnJvcgAAAAMAAAAAAAAAEEludmFsaWRUdGxDb25maWcAAAP8AAAAAAAAAA9UdGxDb25maWdGcm96ZW4AAAAD/QAAAAAAAAAWVHRsQ29uZmlnQWxyZWFkeUZyb3plbgAAAAAD/gAAAAQAAAAXT3duYWJsZUVycm9yOiAxMDMwLTEwMzkAAAAAAAAAAAxPd25hYmxlRXJyb3IAAAAHAAAAAAAAABFJbnZhbGlkQXV0aG9yaXplcgAAAAAABAYAAAAAAAAAE0ludmFsaWRQZW5kaW5nT3duZXIAAAAEBwAAAAAAAAAKSW52YWxpZFR0bAAAAAAECAAAAAAAAAARTm9QZW5kaW5nVHJhbnNmZXIAAAAAAAQJAAAAAAAAAA9Pd25lckFscmVhZHlTZXQAAAAECgAAAAAAAAALT3duZXJOb3RTZXQAAAAECwAAAAAAAAASVHJhbnNmZXJJblByb2dyZXNzAAAAAAQMAAAABAAAABhCeXRlc0V4dEVycm9yOiAxMDQwLTEwNDkAAAAAAAAADUJ5dGVzRXh0RXJyb3IAAAAAAAABAAAAAAAAAA5MZW5ndGhNaXNtYXRjaAAAAAAEEAAAAAQAAAAbVXBncmFkZWFibGVFcnJvcjogMTA1MC0xMDU5AAAAAAAAAAAQVXBncmFkZWFibGVFcnJvcgAAAAIAAAAAAAAAFEludmFsaWRNaWdyYXRpb25EYXRhAAAEGgAAAAAAAAATTWlncmF0aW9uTm90QWxsb3dlZAAAAAQbAAAABAAAABhNdWx0aVNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpU2lnRXJyb3IAAAAAAAAJAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAAEUludmFsaWRBdXRob3JpemVyAAAAAAAEJQAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCYAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQnAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCgAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQpAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCoAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQrAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAELAAAAAQAAAAUQXV0aEVycm9yOiAxMDcwLTEwNzkAAAAAAAAACUF1dGhFcnJvcgAAAAAAAAEAAAAAAAAAEkF1dGhvcml6ZXJOb3RGb3VuZAAAAAAELgAAAAQAAAAUUmJhY0Vycm9yOiAxMDgwLTEwODkAAAAAAAAACVJiYWNFcnJvcgAAAAAAAAcAAAAAAAAAEUFkbWluUm9sZU5vdEZvdW5kAAAAAAAEOAAAAAAAAAAQSW5kZXhPdXRPZkJvdW5kcwAABDkAAAAAAAAAEE1heFJvbGVzRXhjZWVkZWQAAAQ6AAAAAAAAAAtSb2xlSXNFbXB0eQAAAAQ7AAAAAAAAAAxSb2xlTm90Rm91bmQAAAQ8AAAAAAAAAAtSb2xlTm90SGVsZAAAAAQ9AAAAAAAAAAxVbmF1dGhvcml6ZWQAAAQ+AAAABQAAADBFdmVudCBlbWl0dGVkIHdoZW4gYSBzaWduZXIgaXMgYWRkZWQgb3IgcmVtb3ZlZC4AAAAAAAAACVNpZ25lclNldAAAAAAAAAEAAAAKc2lnbmVyX3NldAAAAAAAAgAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAACAAAABQAAADZFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNpZ25hdHVyZSB0aHJlc2hvbGQgaXMgY2hhbmdlZC4AAAAAAAAAAAAMVGhyZXNob2xkU2V0AAAAAQAAAA10aHJlc2hvbGRfc2V0AAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAD011bHRpU2lnU3RvcmFnZQAAAAACAAAAAAAAAAAAAAAHU2lnbmVycwAAAAAAAAAAAAAAAAlUaHJlc2hvbGQAAAAAAAAFAAAAV0V2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgdHJhbnNmZXJyZWQgKGJvdGggc2luZ2xlLXN0ZXAgYW5kIHR3by1zdGVwIGNvbXBsZXRpb24pLgAAAAAAAAAAFE93bmVyc2hpcFRyYW5zZmVycmVkAAAAAQAAABVvd25lcnNoaXBfdHJhbnNmZXJyZWQAAAAAAAACAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAACAAAABQAAADtFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIHByb3Bvc2VkLgAAAAAAAAAAFU93bmVyc2hpcFRyYW5zZmVycmluZwAAAAAAAAEAAAAWb3duZXJzaGlwX3RyYW5zZmVycmluZwAAAAAAAwAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAAN0dGwAAAAABAAAAAAAAAACAAAABQAAADxFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIGNhbmNlbGxlZC4AAAAAAAAAGk93bmVyc2hpcFRyYW5zZmVyQ2FuY2VsbGVkAAAAAAABAAAAHG93bmVyc2hpcF90cmFuc2Zlcl9jYW5jZWxsZWQAAAACAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAAAAAAABdjYW5jZWxsZWRfcGVuZGluZ19vd25lcgAAAAATAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgcmVub3VuY2VkLgAAAAAAAAAAABJPd25lcnNoaXBSZW5vdW5jZWQAAAAAAAEAAAATb3duZXJzaGlwX3Jlbm91bmNlZAAAAAABAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAOT3duYWJsZVN0b3JhZ2UAAAAAAAIAAAAAAAAAAAAAAAVPd25lcgAAAAAAAAAAAAAAAAAADFBlbmRpbmdPd25lcgAAAAUAAAAlRXZlbnQgZW1pdHRlZCB3aGVuIGEgcm9sZSBpcyBncmFudGVkLgAAAAAAAAAAAAALUm9sZUdyYW50ZWQAAAAAAQAAAAxyb2xlX2dyYW50ZWQAAAADAAAAAAAAAARyb2xlAAAAEQAAAAEAAAAAAAAAB2FjY291bnQAAAAAEwAAAAEAAAAAAAAABmNhbGxlcgAAAAAAEwAAAAAAAAACAAAABQAAACVFdmVudCBlbWl0dGVkIHdoZW4gYSByb2xlIGlzIHJldm9rZWQuAAAAAAAAAAAAAAtSb2xlUmV2b2tlZAAAAAABAAAADHJvbGVfcmV2b2tlZAAAAAMAAAAAAAAABHJvbGUAAAARAAAAAQAAAAAAAAAHYWNjb3VudAAAAAATAAAAAQAAAAAAAAAGY2FsbGVyAAAAAAATAAAAAAAAAAIAAAAFAAAAK0V2ZW50IGVtaXR0ZWQgd2hlbiBhIHJvbGUgYWRtaW4gaXMgY2hhbmdlZC4AAAAAAAAAABBSb2xlQWRtaW5DaGFuZ2VkAAAAAQAAABJyb2xlX2FkbWluX2NoYW5nZWQAAAAAAAMAAAAAAAAABHJvbGUAAAARAAAAAQAAAAAAAAATcHJldmlvdXNfYWRtaW5fcm9sZQAAAAPoAAAAEQAAAAAAAAAAAAAADm5ld19hZG1pbl9yb2xlAAAAAAPoAAAAEQAAAAAAAAACAAAAAgAAAAAAAAAAAAAAC1JiYWNTdG9yYWdlAAAAAAUAAAAAAAAAAAAAAA1FeGlzdGluZ1JvbGVzAAAAAAAAAQAAAAAAAAASUm9sZUluZGV4VG9BY2NvdW50AAAAAAACAAAAEQAAAAQAAAABAAAAAAAAABJSb2xlQWNjb3VudFRvSW5kZXgAAAAAAAIAAAARAAAAEwAAAAEAAAAAAAAAEVJvbGVBY2NvdW50c0NvdW50AAAAAAAAAQAAABEAAAABAAAAAAAAAAlSb2xlQWRtaW4AAAAAAAABAAAAEQAAAAEAAABJVFRMIGNvbmZpZ3VyYXRpb246IHRocmVzaG9sZCAod2hlbiB0byBleHRlbmQpIGFuZCBleHRlbmRfdG8gKHRhcmdldCBUVEwpLgAAAAAAAAAAAAAJVHRsQ29uZmlnAAAAAAAAAgAAAChUYXJnZXQgVFRMIGFmdGVyIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAACWV4dGVuZF90bwAAAAAAAAQAAAAzVFRMIHRocmVzaG9sZCB0aGF0IHRyaWdnZXJzIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAABQAAACdFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIHNldC4AAAAAAAAAAA1UdGxDb25maWdzU2V0AAAAAAAAAQAAAA90dGxfY29uZmlnc19zZXQAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAAAAAAAAAEFR0bENvbmZpZ3NGcm96ZW4AAAABAAAAEnR0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAQVHRsQ29uZmlnU3RvcmFnZQAAAAMAAAAAAAAAAAAAAAZGcm96ZW4AAAAAAAAAAAAAAAAACEluc3RhbmNlAAAAAAAAAAAAAAAKUGVyc2lzdGVudAAAAAAAAgAAAAAAAAAAAAAAElVwZ3JhZGVhYmxlU3RvcmFnZQAAAAAAAQAAAAAAAAAAAAAACU1pZ3JhdGluZwAAAAAeEWNvbnRyYWN0ZW52bWV0YXYwAAAAAAAAABkAAAAAAG8OY29udHJhY3RtZXRhdjAAAAAAAAAABXJzdmVyAAAAAAAABjEuOTAuMAAAAAAAAAAAAAhyc3Nka3ZlcgAAAC8yNS4xLjEjOTRjMmEzYjNhNWRlZDZiOWNmOWNlZjBjMjA3YmY4ODA0ZjNlYjI5NAAAUw5jb250cmFjdG1ldGF2MAAAAAAAAAAGY2xpdmVyAAAAAAAvMjUuMS4wI2EwNDhhNTdhNzU3NjI0NThiNDg3MDUyZTAwMjFlYTcwNGE5MjZiZWUA";
|
|
12
12
|
/**
|
|
13
13
|
* Pre-computed WASM hash (SHA-256)
|
|
14
14
|
* Use this when the WASM is already uploaded on-chain
|
|
15
15
|
*/
|
|
16
|
-
export declare const WASM_HASH = "
|
|
16
|
+
export declare const WASM_HASH = "30621500ebb1c345cbae764389880af8b09f964663de4dc8920af137e0d1951e";
|
|
17
17
|
/**
|
|
18
18
|
* Get the WASM bytecode as a Buffer
|
|
19
19
|
* Use this to upload the WASM to the network
|
|
@@ -105,7 +105,7 @@ export declare const EndpointError: {
|
|
|
105
105
|
message: string;
|
|
106
106
|
};
|
|
107
107
|
/**
|
|
108
|
-
*
|
|
108
|
+
* Amount is invalid (negative)
|
|
109
109
|
*/
|
|
110
110
|
9: {
|
|
111
111
|
message: string;
|
|
@@ -674,6 +674,248 @@ export type UpgradeableStorage = {
|
|
|
674
674
|
values: void;
|
|
675
675
|
};
|
|
676
676
|
export interface Client {
|
|
677
|
+
/**
|
|
678
|
+
* Construct and simulate a oapp_version 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.
|
|
679
|
+
* Retrieves the OApp version information.
|
|
680
|
+
*
|
|
681
|
+
* # Returns
|
|
682
|
+
* A tuple containing:
|
|
683
|
+
* - `sender_version`: The version of the OAppSender
|
|
684
|
+
* - `receiver_version`: The version of the OAppReceiver
|
|
685
|
+
*/
|
|
686
|
+
oapp_version: (options?: MethodOptions) => Promise<AssembledTransaction<readonly [u64, u64]>>;
|
|
687
|
+
/**
|
|
688
|
+
* Construct and simulate a endpoint transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
689
|
+
* Retrieves the LayerZero endpoint address associated with the OApp.
|
|
690
|
+
*
|
|
691
|
+
* # Returns
|
|
692
|
+
* The LayerZero endpoint address
|
|
693
|
+
*/
|
|
694
|
+
endpoint: (options?: MethodOptions) => Promise<AssembledTransaction<string>>;
|
|
695
|
+
/**
|
|
696
|
+
* Construct and simulate a peer 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.
|
|
697
|
+
* Retrieves the peer (OApp) associated with a corresponding endpoint.
|
|
698
|
+
*
|
|
699
|
+
* # Arguments
|
|
700
|
+
* * `eid` - The endpoint ID
|
|
701
|
+
*
|
|
702
|
+
* # Returns
|
|
703
|
+
* The peer address (OApp instance) associated with the corresponding endpoint
|
|
704
|
+
*/
|
|
705
|
+
peer: ({ eid }: {
|
|
706
|
+
eid: u32;
|
|
707
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Option<Buffer>>>;
|
|
708
|
+
/**
|
|
709
|
+
* Construct and simulate a set_peer 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.
|
|
710
|
+
* Sets or removes the peer address (OApp instance) for a corresponding endpoint.
|
|
711
|
+
*
|
|
712
|
+
* # Arguments
|
|
713
|
+
* * `eid` - The endpoint ID
|
|
714
|
+
* * `peer` - The address of the peer to be associated with the corresponding endpoint, or None to remove the peer
|
|
715
|
+
* * `operator` - The address that must have OAPP_ADMIN_ROLE
|
|
716
|
+
*/
|
|
717
|
+
set_peer: ({ eid, peer, operator }: {
|
|
718
|
+
eid: u32;
|
|
719
|
+
peer: Option<Buffer>;
|
|
720
|
+
operator: string;
|
|
721
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
722
|
+
/**
|
|
723
|
+
* Construct and simulate a set_delegate 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.
|
|
724
|
+
* Sets the delegate address for the OApp Core.
|
|
725
|
+
*
|
|
726
|
+
* # Arguments
|
|
727
|
+
* * `delegate` - The address of the delegate to be set, or None to remove the delegate
|
|
728
|
+
* * `operator` - The address that must have OAPP_ADMIN_ROLE
|
|
729
|
+
*/
|
|
730
|
+
set_delegate: ({ delegate, operator }: {
|
|
731
|
+
delegate: Option<string>;
|
|
732
|
+
operator: string;
|
|
733
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
734
|
+
/**
|
|
735
|
+
* Construct and simulate a grant_role 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.
|
|
736
|
+
* Grants a role to an account. Caller must be owner or have the role's admin role.
|
|
737
|
+
*
|
|
738
|
+
* # Arguments
|
|
739
|
+
* * `account` - The account to grant the role to.
|
|
740
|
+
* * `role` - The role to grant.
|
|
741
|
+
* * `caller` - The account that is granting the role. Must be owner or have the role's admin role.
|
|
742
|
+
*/
|
|
743
|
+
grant_role: ({ account, role, caller }: {
|
|
744
|
+
account: string;
|
|
745
|
+
role: string;
|
|
746
|
+
caller: string;
|
|
747
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
748
|
+
/**
|
|
749
|
+
* Construct and simulate a revoke_role 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.
|
|
750
|
+
* Revokes a role from an account. Caller must be owner or have the role's admin role.
|
|
751
|
+
*
|
|
752
|
+
* # Arguments
|
|
753
|
+
* * `account` - The account to revoke the role from.
|
|
754
|
+
* * `role` - The role to revoke.
|
|
755
|
+
* * `caller` - The account that is revoking the role. Must be owner or have the role's admin role.
|
|
756
|
+
*/
|
|
757
|
+
revoke_role: ({ account, role, caller }: {
|
|
758
|
+
account: string;
|
|
759
|
+
role: string;
|
|
760
|
+
caller: string;
|
|
761
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
762
|
+
/**
|
|
763
|
+
* Construct and simulate a renounce_role 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.
|
|
764
|
+
* Allows an account to renounce a role assigned to itself.
|
|
765
|
+
* Users can only renounce roles for their own account.
|
|
766
|
+
*
|
|
767
|
+
* # Arguments
|
|
768
|
+
* * `role` - The role to renounce.
|
|
769
|
+
* * `caller` - The account that is renouncing the role. Must be the account itself.
|
|
770
|
+
*/
|
|
771
|
+
renounce_role: ({ role, caller }: {
|
|
772
|
+
role: string;
|
|
773
|
+
caller: string;
|
|
774
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
775
|
+
/**
|
|
776
|
+
* Construct and simulate a set_role_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.
|
|
777
|
+
* Sets `admin_role` as the admin role of `role`. Caller must be the authorizer.
|
|
778
|
+
*
|
|
779
|
+
* # Arguments
|
|
780
|
+
* * `role` - The role to set the admin for.
|
|
781
|
+
* * `admin_role` - The admin role to set for the role.
|
|
782
|
+
*
|
|
783
|
+
* # Notes
|
|
784
|
+
*
|
|
785
|
+
* The admin role can be any `Symbol`, including one with no members. If the admin
|
|
786
|
+
* role has no members, only the authorizer can grant/revoke the role.
|
|
787
|
+
*/
|
|
788
|
+
set_role_admin: ({ role, admin_role }: {
|
|
789
|
+
role: string;
|
|
790
|
+
admin_role: string;
|
|
791
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
792
|
+
/**
|
|
793
|
+
* Construct and simulate a remove_role_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.
|
|
794
|
+
* Removes the admin role for a specified role. Caller must be the authorizer.
|
|
795
|
+
*
|
|
796
|
+
* # Arguments
|
|
797
|
+
* * `role` - The role to remove the admin for.
|
|
798
|
+
*
|
|
799
|
+
* # Errors
|
|
800
|
+
* * `RbacError::AdminRoleNotFound` - If no admin role is set for the role.
|
|
801
|
+
*/
|
|
802
|
+
remove_role_admin: ({ role }: {
|
|
803
|
+
role: string;
|
|
804
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
805
|
+
/**
|
|
806
|
+
* Construct and simulate a has_role 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.
|
|
807
|
+
* Returns `Some(index)` if the account has the specified role, where `index`
|
|
808
|
+
* is the index of the account in the role. Returns `None` if not.
|
|
809
|
+
*
|
|
810
|
+
* # Arguments
|
|
811
|
+
* * `account` - The account to check the role for.
|
|
812
|
+
* * `role` - The role to check the account for.
|
|
813
|
+
*/
|
|
814
|
+
has_role: ({ account, role }: {
|
|
815
|
+
account: string;
|
|
816
|
+
role: string;
|
|
817
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Option<u32>>>;
|
|
818
|
+
/**
|
|
819
|
+
* Construct and simulate a get_role_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.
|
|
820
|
+
* Returns the admin role for a specific role, or None if not set.
|
|
821
|
+
*
|
|
822
|
+
* # Arguments
|
|
823
|
+
* * `role` - The role to get the admin for.
|
|
824
|
+
*/
|
|
825
|
+
get_role_admin: ({ role }: {
|
|
826
|
+
role: string;
|
|
827
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
|
|
828
|
+
/**
|
|
829
|
+
* Construct and simulate a get_role_member_count 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.
|
|
830
|
+
* Returns the number of accounts that have the specified role.
|
|
831
|
+
*
|
|
832
|
+
* # Arguments
|
|
833
|
+
* * `role` - The role to get the member count for.
|
|
834
|
+
*/
|
|
835
|
+
get_role_member_count: ({ role }: {
|
|
836
|
+
role: string;
|
|
837
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<u32>>;
|
|
838
|
+
/**
|
|
839
|
+
* Construct and simulate a get_role_member 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.
|
|
840
|
+
* Returns the account at the specified index for a given role.
|
|
841
|
+
*
|
|
842
|
+
* # Arguments
|
|
843
|
+
* * `role` - The role to get the member for.
|
|
844
|
+
* * `index` - The index of the member to get.
|
|
845
|
+
*
|
|
846
|
+
* # Errors
|
|
847
|
+
* * `RbacError::IndexOutOfBounds` if the index is out of bounds.
|
|
848
|
+
*/
|
|
849
|
+
get_role_member: ({ role, index }: {
|
|
850
|
+
role: string;
|
|
851
|
+
index: u32;
|
|
852
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<string>>;
|
|
853
|
+
/**
|
|
854
|
+
* Construct and simulate a get_existing_roles 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.
|
|
855
|
+
* Returns all roles that currently have at least one member.
|
|
856
|
+
* Defaults to empty vector if no roles exist.
|
|
857
|
+
*
|
|
858
|
+
* # Notes
|
|
859
|
+
*
|
|
860
|
+
* This function returns all roles that currently have at least one member.
|
|
861
|
+
* The maximum number of roles is limited by [`MAX_ROLES`].
|
|
862
|
+
*/
|
|
863
|
+
get_existing_roles: (options?: MethodOptions) => Promise<AssembledTransaction<Array<string>>>;
|
|
864
|
+
/**
|
|
865
|
+
* Construct and simulate a enforced_options 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.
|
|
866
|
+
* Retrieves the enforced options for a given endpoint and message type.
|
|
867
|
+
*
|
|
868
|
+
* # Arguments
|
|
869
|
+
* * `eid` - The endpoint ID
|
|
870
|
+
* * `msg_type` - The OApp message type
|
|
871
|
+
*
|
|
872
|
+
* # Returns
|
|
873
|
+
* The enforced options for the given endpoint and message type
|
|
874
|
+
*/
|
|
875
|
+
enforced_options: ({ eid, msg_type }: {
|
|
876
|
+
eid: u32;
|
|
877
|
+
msg_type: u32;
|
|
878
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Option<Buffer>>>;
|
|
879
|
+
/**
|
|
880
|
+
* Construct and simulate a set_enforced_options 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.
|
|
881
|
+
* Sets or removes the enforced options for specific endpoint and message type combinations.
|
|
882
|
+
*
|
|
883
|
+
* Only the `authorizer` of the OApp can call this function.
|
|
884
|
+
* Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.
|
|
885
|
+
* These enforced options can vary as the potential options/execution on the remote may differ as per the msg_type.
|
|
886
|
+
* e.g. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you don't want to pay
|
|
887
|
+
* if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().
|
|
888
|
+
*
|
|
889
|
+
* # Arguments
|
|
890
|
+
* * `options` - A vector of EnforcedOptionParam structures specifying enforced options
|
|
891
|
+
* * `operator` - The address that must have OAPP_ADMIN_ROLE
|
|
892
|
+
*/
|
|
893
|
+
set_enforced_options: ({ options, operator }: {
|
|
894
|
+
options: Array<EnforcedOptionParam>;
|
|
895
|
+
operator: string;
|
|
896
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
897
|
+
/**
|
|
898
|
+
* Construct and simulate a combine_options 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.
|
|
899
|
+
* Combines options for a given endpoint and message type.
|
|
900
|
+
*
|
|
901
|
+
* If there is an enforced lzReceive option:
|
|
902
|
+
* - {gas_limit: 200k, value: 1 XLM} AND a caller supplies a lzReceive option: {gas_limit: 100k, value: 0.5 XLM}
|
|
903
|
+
* - The resulting options will be {gas_limit: 300k, value: 1.5 XLM} when the message is executed on the remote lz_receive() function.
|
|
904
|
+
* The presence of duplicated options is handled off-chain in the verifier/executor.
|
|
905
|
+
*
|
|
906
|
+
* # Arguments
|
|
907
|
+
* * `eid` - The endpoint ID
|
|
908
|
+
* * `msg_type` - The OApp message type
|
|
909
|
+
* * `extra_options` - Additional options passed by the caller
|
|
910
|
+
*
|
|
911
|
+
* # Returns
|
|
912
|
+
* The combination of caller specified options AND enforced options
|
|
913
|
+
*/
|
|
914
|
+
combine_options: ({ eid, msg_type, extra_options }: {
|
|
915
|
+
eid: u32;
|
|
916
|
+
msg_type: u32;
|
|
917
|
+
extra_options: Buffer;
|
|
918
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Buffer>>;
|
|
677
919
|
/**
|
|
678
920
|
* 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.
|
|
679
921
|
*/
|
|
@@ -693,7 +935,7 @@ export interface Client {
|
|
|
693
935
|
* Transfers ownership immediately to a new address.
|
|
694
936
|
*
|
|
695
937
|
* Use with caution - if you transfer to a wrong address, ownership is lost forever.
|
|
696
|
-
* Consider using `
|
|
938
|
+
* Consider using `begin_ownership_transfer` instead.
|
|
697
939
|
*
|
|
698
940
|
* # Panics
|
|
699
941
|
* - `OwnerNotSet` if no owner is currently set
|
|
@@ -703,8 +945,8 @@ export interface Client {
|
|
|
703
945
|
new_owner: string;
|
|
704
946
|
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
705
947
|
/**
|
|
706
|
-
* Construct and simulate a
|
|
707
|
-
*
|
|
948
|
+
* Construct and simulate a begin_ownership_transfer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
949
|
+
* Begins an ownership transfer to a new address.
|
|
708
950
|
*
|
|
709
951
|
* The new owner must call `accept_ownership()` within `ttl` ledgers
|
|
710
952
|
* to complete the transfer. The pending transfer will automatically expire after.
|
|
@@ -720,7 +962,7 @@ export interface Client {
|
|
|
720
962
|
* - `InvalidTtl` if ttl exceeds max TTL
|
|
721
963
|
* - `InvalidPendingOwner` when cancelling with wrong new_owner address
|
|
722
964
|
*/
|
|
723
|
-
|
|
965
|
+
begin_ownership_transfer: ({ new_owner, ttl }: {
|
|
724
966
|
new_owner: string;
|
|
725
967
|
ttl: u32;
|
|
726
968
|
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
@@ -796,112 +1038,6 @@ export interface Client {
|
|
|
796
1038
|
* Returns whether TTL configs are frozen.
|
|
797
1039
|
*/
|
|
798
1040
|
is_ttl_configs_frozen: (options?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
|
|
799
|
-
/**
|
|
800
|
-
* Construct and simulate a oapp_version 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.
|
|
801
|
-
* Retrieves the OApp version information.
|
|
802
|
-
*
|
|
803
|
-
* # Returns
|
|
804
|
-
* A tuple containing:
|
|
805
|
-
* - `sender_version`: The version of the OAppSender
|
|
806
|
-
* - `receiver_version`: The version of the OAppReceiver
|
|
807
|
-
*/
|
|
808
|
-
oapp_version: (options?: MethodOptions) => Promise<AssembledTransaction<readonly [u64, u64]>>;
|
|
809
|
-
/**
|
|
810
|
-
* Construct and simulate a endpoint transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
811
|
-
* Retrieves the LayerZero endpoint address associated with the OApp.
|
|
812
|
-
*
|
|
813
|
-
* # Returns
|
|
814
|
-
* The LayerZero endpoint address
|
|
815
|
-
*/
|
|
816
|
-
endpoint: (options?: MethodOptions) => Promise<AssembledTransaction<string>>;
|
|
817
|
-
/**
|
|
818
|
-
* Construct and simulate a peer 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.
|
|
819
|
-
* Retrieves the peer (OApp) associated with a corresponding endpoint.
|
|
820
|
-
*
|
|
821
|
-
* # Arguments
|
|
822
|
-
* * `eid` - The endpoint ID
|
|
823
|
-
*
|
|
824
|
-
* # Returns
|
|
825
|
-
* The peer address (OApp instance) associated with the corresponding endpoint
|
|
826
|
-
*/
|
|
827
|
-
peer: ({ eid }: {
|
|
828
|
-
eid: u32;
|
|
829
|
-
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Option<Buffer>>>;
|
|
830
|
-
/**
|
|
831
|
-
* Construct and simulate a set_peer 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.
|
|
832
|
-
* Sets or removes the peer address (OApp instance) for a corresponding endpoint.
|
|
833
|
-
*
|
|
834
|
-
* # Arguments
|
|
835
|
-
* * `eid` - The endpoint ID
|
|
836
|
-
* * `peer` - The address of the peer to be associated with the corresponding endpoint, or None to remove the peer
|
|
837
|
-
*/
|
|
838
|
-
set_peer: ({ eid, peer }: {
|
|
839
|
-
eid: u32;
|
|
840
|
-
peer: Option<Buffer>;
|
|
841
|
-
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
842
|
-
/**
|
|
843
|
-
* Construct and simulate a set_delegate 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.
|
|
844
|
-
* Sets the delegate address for the OApp Core.
|
|
845
|
-
*
|
|
846
|
-
* # Arguments
|
|
847
|
-
* * `delegate` - The address of the delegate to be set, or None to remove the delegate
|
|
848
|
-
*/
|
|
849
|
-
set_delegate: ({ delegate }: {
|
|
850
|
-
delegate: Option<string>;
|
|
851
|
-
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
852
|
-
/**
|
|
853
|
-
* Construct and simulate a enforced_options 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.
|
|
854
|
-
* Retrieves the enforced options for a given endpoint and message type.
|
|
855
|
-
*
|
|
856
|
-
* # Arguments
|
|
857
|
-
* * `eid` - The endpoint ID
|
|
858
|
-
* * `msg_type` - The OApp message type
|
|
859
|
-
*
|
|
860
|
-
* # Returns
|
|
861
|
-
* The enforced options for the given endpoint and message type
|
|
862
|
-
*/
|
|
863
|
-
enforced_options: ({ eid, msg_type }: {
|
|
864
|
-
eid: u32;
|
|
865
|
-
msg_type: u32;
|
|
866
|
-
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Option<Buffer>>>;
|
|
867
|
-
/**
|
|
868
|
-
* Construct and simulate a set_enforced_options 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.
|
|
869
|
-
* Sets or removes the enforced options for specific endpoint and message type combinations.
|
|
870
|
-
*
|
|
871
|
-
* Only the `authorizer` of the OApp can call this function.
|
|
872
|
-
* Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.
|
|
873
|
-
* These enforced options can vary as the potential options/execution on the remote may differ as per the msg_type.
|
|
874
|
-
* e.g. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you don't want to pay
|
|
875
|
-
* if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().
|
|
876
|
-
*
|
|
877
|
-
* # Arguments
|
|
878
|
-
* * `options` - A vector of EnforcedOptionParam structures specifying enforced options
|
|
879
|
-
*/
|
|
880
|
-
set_enforced_options: ({ options }: {
|
|
881
|
-
options: Array<EnforcedOptionParam>;
|
|
882
|
-
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
883
|
-
/**
|
|
884
|
-
* Construct and simulate a combine_options transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
885
|
-
* Combines options for a given endpoint and message type.
|
|
886
|
-
*
|
|
887
|
-
* If there is an enforced lzReceive option:
|
|
888
|
-
* - {gas_limit: 200k, value: 1 XLM} AND a caller supplies a lzReceive option: {gas_limit: 100k, value: 0.5 XLM}
|
|
889
|
-
* - The resulting options will be {gas_limit: 300k, value: 1.5 XLM} when the message is executed on the remote lz_receive() function.
|
|
890
|
-
* The presence of duplicated options is handled off-chain in the verifier/executor.
|
|
891
|
-
*
|
|
892
|
-
* # Arguments
|
|
893
|
-
* * `eid` - The endpoint ID
|
|
894
|
-
* * `msg_type` - The OApp message type
|
|
895
|
-
* * `extra_options` - Additional options passed by the caller
|
|
896
|
-
*
|
|
897
|
-
* # Returns
|
|
898
|
-
* The combination of caller specified options AND enforced options
|
|
899
|
-
*/
|
|
900
|
-
combine_options: ({ eid, msg_type, extra_options }: {
|
|
901
|
-
eid: u32;
|
|
902
|
-
msg_type: u32;
|
|
903
|
-
extra_options: Buffer;
|
|
904
|
-
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Buffer>>;
|
|
905
1041
|
/**
|
|
906
1042
|
* Construct and simulate a quote 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.
|
|
907
1043
|
*/
|
|
@@ -1065,11 +1201,29 @@ export declare class Client extends ContractClient {
|
|
|
1065
1201
|
}): Promise<AssembledTransaction<T>>;
|
|
1066
1202
|
constructor(options: ContractClientOptions);
|
|
1067
1203
|
readonly fromJSON: {
|
|
1204
|
+
oapp_version: (json: string) => AssembledTransaction<readonly [bigint, bigint]>;
|
|
1205
|
+
endpoint: (json: string) => AssembledTransaction<string>;
|
|
1206
|
+
peer: (json: string) => AssembledTransaction<Option<Buffer<ArrayBufferLike>>>;
|
|
1207
|
+
set_peer: (json: string) => AssembledTransaction<null>;
|
|
1208
|
+
set_delegate: (json: string) => AssembledTransaction<null>;
|
|
1209
|
+
grant_role: (json: string) => AssembledTransaction<null>;
|
|
1210
|
+
revoke_role: (json: string) => AssembledTransaction<null>;
|
|
1211
|
+
renounce_role: (json: string) => AssembledTransaction<null>;
|
|
1212
|
+
set_role_admin: (json: string) => AssembledTransaction<null>;
|
|
1213
|
+
remove_role_admin: (json: string) => AssembledTransaction<null>;
|
|
1214
|
+
has_role: (json: string) => AssembledTransaction<Option<number>>;
|
|
1215
|
+
get_role_admin: (json: string) => AssembledTransaction<Option<string>>;
|
|
1216
|
+
get_role_member_count: (json: string) => AssembledTransaction<number>;
|
|
1217
|
+
get_role_member: (json: string) => AssembledTransaction<string>;
|
|
1218
|
+
get_existing_roles: (json: string) => AssembledTransaction<string[]>;
|
|
1219
|
+
enforced_options: (json: string) => AssembledTransaction<Option<Buffer<ArrayBufferLike>>>;
|
|
1220
|
+
set_enforced_options: (json: string) => AssembledTransaction<null>;
|
|
1221
|
+
combine_options: (json: string) => AssembledTransaction<Buffer<ArrayBufferLike>>;
|
|
1068
1222
|
authorizer: (json: string) => AssembledTransaction<Option<string>>;
|
|
1069
1223
|
owner: (json: string) => AssembledTransaction<Option<string>>;
|
|
1070
1224
|
pending_owner: (json: string) => AssembledTransaction<Option<string>>;
|
|
1071
1225
|
transfer_ownership: (json: string) => AssembledTransaction<null>;
|
|
1072
|
-
|
|
1226
|
+
begin_ownership_transfer: (json: string) => AssembledTransaction<null>;
|
|
1073
1227
|
accept_ownership: (json: string) => AssembledTransaction<null>;
|
|
1074
1228
|
renounce_ownership: (json: string) => AssembledTransaction<null>;
|
|
1075
1229
|
extend_instance_ttl: (json: string) => AssembledTransaction<null>;
|
|
@@ -1077,14 +1231,6 @@ export declare class Client extends ContractClient {
|
|
|
1077
1231
|
ttl_configs: (json: string) => AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>;
|
|
1078
1232
|
freeze_ttl_configs: (json: string) => AssembledTransaction<null>;
|
|
1079
1233
|
is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
|
|
1080
|
-
oapp_version: (json: string) => AssembledTransaction<readonly [bigint, bigint]>;
|
|
1081
|
-
endpoint: (json: string) => AssembledTransaction<string>;
|
|
1082
|
-
peer: (json: string) => AssembledTransaction<Option<Buffer<ArrayBufferLike>>>;
|
|
1083
|
-
set_peer: (json: string) => AssembledTransaction<null>;
|
|
1084
|
-
set_delegate: (json: string) => AssembledTransaction<null>;
|
|
1085
|
-
enforced_options: (json: string) => AssembledTransaction<Option<Buffer<ArrayBufferLike>>>;
|
|
1086
|
-
set_enforced_options: (json: string) => AssembledTransaction<null>;
|
|
1087
|
-
combine_options: (json: string) => AssembledTransaction<Buffer<ArrayBufferLike>>;
|
|
1088
1234
|
quote: (json: string) => AssembledTransaction<MessagingFee>;
|
|
1089
1235
|
increment: (json: string) => AssembledTransaction<null>;
|
|
1090
1236
|
set_ordered_nonce: (json: string) => AssembledTransaction<null>;
|