@layerzerolabs/onesig-stellar-sdk 1.2.35 → 1.2.37
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/dist/{NQUQ5475.mjs → DFOGK2XD.js} +3 -3
- package/dist/DFOGK2XD.js.map +1 -0
- package/dist/{EJZMSFN5.mjs → ITLGJNV3.js} +4 -4
- package/dist/ITLGJNV3.js.map +1 -0
- package/dist/{DPYAZNJF.mjs → IUVQYPSY.js} +3 -3
- package/dist/IUVQYPSY.js.map +1 -0
- package/dist/{CT3BLMHC.mjs → KNIDOCFI.js} +4 -4
- package/dist/KNIDOCFI.js.map +1 -0
- package/dist/{YYM473VY.mjs → VUOMXK5T.js} +2 -2
- package/dist/VUOMXK5T.js.map +1 -0
- package/dist/calls.js +4 -0
- package/dist/{calls.mjs.map → calls.js.map} +1 -1
- package/dist/configChangeCalls.js +5 -0
- package/dist/{configChangeCalls.mjs.map → configChangeCalls.js.map} +1 -1
- package/dist/generated/{index.mjs → index.js} +4 -4
- package/dist/generated/{index.mjs.map → index.js.map} +1 -1
- package/dist/index.js +7 -0
- package/dist/{index.mjs.map → index.js.map} +1 -1
- package/dist/leafGenerator.js +5 -0
- package/dist/{leafGenerator.mjs.map → leafGenerator.js.map} +1 -1
- package/package.json +14 -14
- package/dist/CT3BLMHC.mjs.map +0 -1
- package/dist/DPYAZNJF.mjs.map +0 -1
- package/dist/EJZMSFN5.mjs.map +0 -1
- package/dist/NQUQ5475.mjs.map +0 -1
- package/dist/YYM473VY.mjs.map +0 -1
- package/dist/calls.mjs +0 -4
- package/dist/configChangeCalls.mjs +0 -5
- package/dist/index.mjs +0 -7
- package/dist/leafGenerator.mjs +0 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __name } from './
|
|
1
|
+
import { __name } from './VUOMXK5T.js';
|
|
2
2
|
import { Buffer } from 'buffer';
|
|
3
3
|
import { Client as Client$1, Spec } from '@stellar/stellar-sdk/contract';
|
|
4
4
|
import * as contract from '@stellar/stellar-sdk/contract';
|
|
@@ -285,5 +285,5 @@ var Client = class extends Client$1 {
|
|
|
285
285
|
};
|
|
286
286
|
|
|
287
287
|
export { AuthError, BufferReaderError, BufferWriterError, BytesExtError, Client, MultiSigError, OneSigError, OwnableError, RbacError, TtlConfigurableError, UpgradeableError, WASM_BASE64, WASM_HASH, getWasmBuffer };
|
|
288
|
-
//# sourceMappingURL=
|
|
289
|
-
//# sourceMappingURL=
|
|
288
|
+
//# sourceMappingURL=DFOGK2XD.js.map
|
|
289
|
+
//# sourceMappingURL=DFOGK2XD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/generated/index.ts"],"names":["WASM_BASE64","WASM_HASH","getWasmBuffer","Buffer","from","OneSigError","message","BufferReaderError","BufferWriterError","TtlConfigurableError","OwnableError","BytesExtError","UpgradeableError","MultiSigError","AuthError","RbacError","Client","ContractClient","deploy","onesig_id","seed","signers","threshold","executors","executor_required","options","ContractSpec","fromJSON","set_executor","txFromJSON","set_executor_required","get_executors","is_executor","total_executors","set_seed","execute_transaction","verify_merkle_root","verify_transaction_proof","encode_leaf","can_execute_transaction","nonce","version","leaf_encoding_version","authorizer","set_signer","set_threshold","get_signers","total_signers","is_signer","verify_signatures","verify_n_signatures","extend_instance_ttl","set_ttl_configs","ttl_configs","freeze_ttl_configs","is_ttl_configs_frozen"],"mappings":"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","file":"DFOGK2XD.js","sourcesContent":["import { Buffer } from \"buffer\";\nimport { Address } from '@stellar/stellar-sdk';\nimport {\n AssembledTransaction,\n AssembledTransactionOptions,\n Client as ContractClient,\n ClientOptions as ContractClientOptions,\n MethodOptions,\n Result,\n Spec as ContractSpec,\n} from '@stellar/stellar-sdk/contract';\nimport type {\n u32,\n i32,\n u64,\n i64,\n u128,\n i128,\n u256,\n i256,\n Option,\n Typepoint,\n Duration,\n} from '@stellar/stellar-sdk/contract';\nexport * from '@stellar/stellar-sdk'\nexport * as contract from '@stellar/stellar-sdk/contract'\nexport * as rpc from '@stellar/stellar-sdk/rpc'\n\n// Soroban SDK types referenced in contract specs but not defined in the contract itself.\n// InvokerContractAuthEntry is a Soroban built-in encoded as ScVal:\n// scvVec([symbol(\"Contract\"), scvMap({\n// context: scvMap({ args, contract, fn_name }),\n// sub_invocations: scvVec([...])\n// })])\n// Must be manually constructed — the contract spec's nativeToScVal cannot serialize it.\nimport type { xdr } from '@stellar/stellar-sdk';\nexport type InvokerContractAuthEntry = xdr.ScVal;\n\n/**\n * Embedded WASM bytecode (base64-encoded)\n * Size: 28784 bytes (28.11 KB)\n */\nexport const WASM_BASE64 = \"AGFzbQEAAAABxAEhYAABfmACfn4BfmABfgF+YAJ/fgBgA35+fgF+YAJ/fwBgAX4AYAAAYAF/AGAEfn5+fgF+YAF/AX5gAn5+AX9gA39/fwBgAAF/YAN/fn4AYAJ+fwBgAn9/AX5gAn9+AX9gAn9/AX9gA35+fgBgAX4Bf2AEfn5/fwF+YAF/AX9gAn5+AGADfn5/AGAEf39/fwF+YAV+f39/fwBgA35+fgF/YAN+f38BfmACfn8BfmADfn9/AGAGfn5+fn5+AX5gBH5/f38AAokCLAFpATAAAgFsATEAAQFsAV8ABAFiATgAAgFhATAAAgF4ATcAAAF2ATMAAgF2ATEAAQFpAV8AAgF4ATEAAQFiAWUAAQFjATEAAgF2AWQAAQF2ATYAAQF2ATIAAQF2AV8AAAFjATAABAFiATQAAAFhATMAAgFkAV8ABAFiAWkAAQFiAV8AAgFiAWYABAF4ATMAAAF4ATgAAAFiATEACQFiATMAAQFtAWEACQFiAW0ABAFiAWoAAQFiATIACQFtATkABAF2AWcAAQF4ATAAAQF4ATQAAAFsATAAAQFsATgAAQFpAWEAAgF4ATUAAgFsATIAAQFsATcACQFpAWIAAgFiATYAAQFjATIABAODAYEBAwUKCwMCAxIVFg0HCgcIEwcIBgcLFw0YAAELBQ4LFAwDBQMPEBkDGhsGAAYIAgEDAgAAAhQAAA0EBRwSAwMAHQARDwIREwIGAgQBAQIDAAAAAAAAABEDHgMfBQUKBgcIAAEGDwIAAAIAAQQBBQEDBgoACAUQAAAQDAMMBQwDIA4OBQMBABEGIQR/AUGAgMAAC38AQe2EwAALfwBB0ofAAAt/AEHgh8AACwfmBCUGbWVtb3J5AgAMc2V0X2V4ZWN1dG9yAFoVc2V0X2V4ZWN1dG9yX3JlcXVpcmVkAFwNZ2V0X2V4ZWN1dG9ycwBdC2lzX2V4ZWN1dG9yAF8PdG90YWxfZXhlY3V0b3JzAGERZXhlY3V0b3JfcmVxdWlyZWQAYgxfX2NoZWNrX2F1dGgAZAhzZXRfc2VlZAByE2V4ZWN1dGVfdHJhbnNhY3Rpb24AdBJ2ZXJpZnlfbWVya2xlX3Jvb3QAdRh2ZXJpZnlfdHJhbnNhY3Rpb25fcHJvb2YAdgtlbmNvZGVfbGVhZgB3F2Nhbl9leGVjdXRlX3RyYW5zYWN0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IwBBEGsiAiQAAkAgARADQv////+PCFYEQCABQoSAgICACBAqIQUgAUIEQoSAgICACBAWIgEQA0KAgICAcINCgICAgIAIUg0BIAIgACABIAVCIIinIgNBG2siBCADIARB/wFxQQRJG61C/wGDQiCGQgSEECtChICAgBBChICAgJAIEBYQC0KEgICAwAFChICAgIAEEBYQqQEgAigCAEEBRg0BIAIpAwggAkEQaiQADwsACwALEwAgACABECEiAEIAVSAAQgBTawtyAgJ/AX4jAEEQayICJAACQCABKAIIIgMgASgCDE8EQCAAQgI3AwAMAQsgAiABKQMAIAOtQiCGQgSEEAcQeSADQQFqIgMEQCACKQMAIQQgACACKQMINwMIIAAgBDcDACABIAM2AggMAQsACyACQRBqJAALKAACQCAAIAFCAlIEfiABp0EBcQ0BIAAgAjcDCEIBBUIACzcDAA8LAAsNACAAIAEQRkH/AXFFC3UCAn8CfiMAQTBrIgEkABA3EEQiAxAGIQQgAUEANgIIIAEgAzcDACABIARCIIg+AgwDQAJAIAFBIGogARBHIAFBEGogASkDICABKQMoEEggASgCECICQQFHDQAgASkDGCAAEElFDQELCyABQTBqJAAgAkEBcQs5AQF/IwBBEGsiAyQAIAMgASACEKQBIAAgAygCAAR+QgEFIAAgAykDCDcDCEIACzcDACADQRBqJAALNQEBfyMAQRBrIgIkACACIAE3AwggAkEIakEBEKABIQEgAEIANwMAIAAgATcDCCACQRBqJAALcgICfwF+IwBBEGsiAiQAAkAgASgCCCIDIAEoAgxPBEAgAEICNwMADAELIAIgASkDACADrUIghkIEhBAHEE4gA0EBaiIDBEAgAikDACEEIAAgAikDCDcDCCAAIAQ3AwAgASADNgIIDAELAAsgAkEQaiQACx4AIAFC/wGDQsgAUgRAIABCATcDAA8LIAAgARCEAQsQACAAIAFBDEGIgcAAEKoBCzACAX8BfiMAQRBrIgIkACACIAAgARCkASACKAIAQQFGBEAACyACKQMIIAJBEGokAAsoACABIANHBEAACyAArUIghkIEhCACrUIghkIEhCABrUIghkIEhBAfC8oBAgJ/BH4jAEEgayICJAADQCADQSBHBEAgAiADakICNwMAIANBCGohAwwBCwtC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A0HwAGoiCyAFKQMANwMAIANB6ABqIgwgBikDADcDACADIAMpAwg3A2AgCCADQeAAaiIIEDMgDRBvEHApAwAQCyADEBE3AzAgBxA1QfaDwAAQMyEHIARCADcDACAFQgA3AwAgBkIANwMAIANCADcDCCAJEG4gCiAEKQMANwMAIAsgBSkDADcDACAMIAYpAwA3AwAgAyADKQMINwNgIAcgCBAzKQMAEAsgDxBFEEoNAUKDgICAgAEQPgALIA8QYEUNAiAPIA4gDRAQGgsgACASIBAQcSATIAAgAhBURQ0DIAFCAXwiAlANBEEEIAIQMEHUgMAAQRQQUBBZIAMgARAxNwMQIAMgADcDCEH4gMAAQQIgA0EIakECEFEQCRogA0GAAWokAEICDwtCg4CAgJABED4AC0KDgICAgAEQPgALQoOAgICAARA+AAtCg4CAgNAAED4ACwALQoOAgIDwABA+AAsACz0BAX8gACABKAIIIgIgASgCDEkEfiAAIAEpAwAgAq1CIIZCBIQQBzcDCCABIAJBAWo2AghCAAVCAgs3AwALGAAgACABrUIghkIEhCACrUIghkIEhBAcCxEAIAAgAU0EQCABIABrDwsACxAAIAAgAUKAgICAgAgQqwELgAICA38BfiMAQSBrIgIkAAJAIAFC/wGDQssAUgRAIABCATcDAAwBCyABEAYhBSACQQA2AgggAiABNwMAIAIgBUIgiD4CDCACQRBqIgMgAhBlAkAgAikDECIBQgJRIAGnQQFxcg0AIAIpAxgiAadB/wFxIgRBygBHIARBDkdxDQACQCABQfSFwABBARBmQv////8PVg0AIAIoAgggAigCDBBnQQFLDQAgAyACEGUgAikDECIBQgJRIAGnQQFxcg0AIAMgAikDGBBOIAIoAhANACACKQMYIQEgAEIANwMAIAAgATcDCAwCCyAAQgE3AwAMAQsgAEIBNwMACyACQSBqJAALLwICfwF+IwBBEGsiACQAEDcgAEEEEC0gACgCACEBIAApAwggAEEQaiQAQgAgARsLuQMCA38CfiMAQTBrIgIkABA3EBEhBSACQQE6ABAgAiAFIAUQA0KAgICAcINCBIQgAkEQaiIDQQEQNDcDCCACQQhqEHsQgQEhBCADEAUQFSIFQoSAgIDAACAFEANCgICAgHCDQgSEEBYiBUIEQoSAgIDAABAWEIIBAkAgAigCEEEBRg0AIAIpAxggAkEANgIQIANBBBCDAQJAIAIoAhAiA0H///8HcQ0AAkACQAJAIANBGHYOAgABAwsgAkEQaiIDIAVChICAgMAAQoSAgICAARAWEIIBIAIoAhBBAUYNAyACKQMYIAJBADYCECADQQQQgwEgAigCEA0CIAMgBUKEgICAgAFChICAgIAFEBYQhAEgAigCEEEBRw0BDAMLIAJBEGogBUKEgICAwABChICAgMAEEBYQhAEgAigCEEEBRg0CCyAEIAIpAxgQbSAAEIEBIQMgAiABKQMANwMoIAIgASkDGDcDICACIAEpAwg3AxggAiABKQMQNwMQQdSBwABBBCACQRBqQQQQURAVIQAgAyADKQMAIAAQCiIANwMAIAAQCxALIAJBMGokAA8LQoOAgICg/gAQPgALAAsrAgF+AX8QIiIAp0H/AXEiAUEGRwRAIAFBwABGBEAgABAADwsACyAAQgiIC5sBAQR/IwBBQGoiAiQAIAJBOGoiA0IANwMAIAJBMGoiBEIANwMAIAJBKGoiBUIANwMAIAJCADcDICABIAJBIGoQbiACQRhqIAMpAwA3AwAgAkEQaiAEKQMANwMAIAJBCGogBSkDADcDACACIAIpAyA3AwAgACAAKQMAIgEgARADQoCAgIBwg0IEhCACQSAQNDcDACACQUBrJAAgAAsLACAAIAFBIBCDAQuMAQEBfyMAQRBrIgEkACABIABCOIYgAEKA/gODQiiGhCAAQoCA/AeDQhiGIABCgICA+A+DQgiGhIQgAEIIiEKAgID4D4MgAEIYiEKAgPwHg4QgAEIoiEKA/gODIABCOIiEhIQ3AwggAUIANwMAIAFBEBCjASEAQe2EwABBEBCjASAAEAoQJSABQRBqJAALGAAgARApIQEgACAAKQMAIAEQCjcDACAAC+ABAgV/AX4jAEHQAGsiAyQAEDcQbCABVgRAQoOAgIDgABA+AAsQfiEIIAMQETcDACADQdSDwAAQMyAIEG0gABBtIAEQbxBwKQMAEAsgAxARNwMIIANBCGoQNUH2g8AAEDMhBCADQcgAaiIFQgA3AwAgA0FAayIGQgA3AwAgA0E4aiIHQgA3AwAgA0IANwMwIANBMGoQbiADQShqIAUpAwA3AwAgA0EgaiAGKQMANwMAIANBGGogBykDADcDACADIAMpAzA3AxAgBCADQRBqEDMpAwAQCyACEEEgA0HQAGokAAtcAgF/AX4jAEEQayIBJAAgASAAEE4gASgCAEEBRgRAAAsgASkDCCEAEDwQNyAAEHNCjvKqvJDVqvEAEFkgASAANwMAQcyAwABBASABQQEQURAJGiABQRBqJABCAgsNAEEDEC4gAEICEAIaC7sBAgF/B34jAEEwayIBJAACQCAAQv8Bg0LLAFEEQBA8EDcgABAGQiCIIQVCBCECA0ACQCADIAVRDQAgAUEIaiAAIAIQBxBSIANC/////w9RDQMgASkDCCIEQgJRDQAgBKdBAXENAyABKQMgIQQgASkDGCEGIAEpAxAgASkDKCIIEAZCgICAgBBaBEAgCBASGgsgBiAEEBMaIAJCgICAgBB8IQIgA0IBfCEDDAELCyABQTBqJABCAg8LAAsAC1QBAX8jAEEQayIDJAAgAyAAEE4CQCADKAIAQQFGDQAgAykDCCADIAEQLCADKAIAQQFGIAJC/wGDQssAUnINACADKQMIIAIQcSADQRBqJABCAg8LAAu2AgEHfyMAQeAAayICJAAgAkEYaiAAEE4CQAJAIAIoAhhBAUYNACACKQMgIQADQCADQRBHBEAgAkEIaiADakICNwMAIANBCGohAwwBCwsgAUL/AYNCzABSDQAgAUGAgsAAQQIgAkEIakECEFMgAkEYaiIEIAIpAwgQUiACKAIYQQFGDQAgAkHYAGoiBSACQThqKQMANwMAIAJB0ABqIgYgAkEwaiIHKQMANwMAIAJByABqIgggAkEoaiIDKQMANwMAIAIgAikDIDcDQCACKQMQIgFC/wGDQssAUg0AIAcgBSkDADcDACADIAYpAwA3AwAgAkEgaiAIKQMANwMAIAIgAikDQDcDGCACIAE3AzgQNyABIAAQaiAEEGsQVEUNASACQeAAaiQAQgIPCwALQoOAgIDQABA+AAuHAQECfyMAQdAAayICJAAgAkEoaiIDIAAQLAJAIAIoAihBAUYNACACKQMwIAMgARBSIAIoAihBAUYNACACQSBqIAJByABqKQMANwMAIAJBGGogAkFAaykDADcDACACQRBqIAJBOGopAwA3AwAgAiACKQMwNwMIIAJBCGoQayACQdAAaiQADwsAC88CAgN/AX4jAEEgayIBJAACfwJAAkAgAEL/AYNCywBSDQAgABAG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C0V4ZWN1dG9yU2V0AAAAAAEAAAAMZXhlY3V0b3Jfc2V0AAAAAgAAAAAAAAAIZXhlY3V0b3IAAAPuAAAAIAAAAAEAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAACAAAABQAAADRFdmVudCBwdWJsaXNoZWQgd2hlbiBleGVjdXRvciByZXF1aXJlbWVudCBpcyB0b2dnbGVkAAAAAAAAABNFeGVjdXRvclJlcXVpcmVkU2V0AAAAAAEAAAAVZXhlY3V0b3JfcmVxdWlyZWRfc2V0AAAAAAAAAQAAAAAAAAAIcmVxdWlyZWQAAAABAAAAAAAAAAIAAAAEAAAAAAAAAAAAAAALT25lU2lnRXJyb3IAAAAACQAAAAAAAAAVRXhlY3V0b3JBbHJlYWR5RXhpc3RzAAAAAAAAAQAAAAAAAAAaRXhlY3V0b3JBbHJlYWR5SW5pdGlhbGl6ZWQAAAAAAAIAAAAAAAAAEEV4ZWN1dG9yTm90Rm91bmQAAAADAAAAAAAAABJJbnZhbGlkQXV0aENvbnRleHQAAAAAAAQAAAAAAAAAE0ludmFsaWRQcm9vZk9yTm9uY2UAAAAABQAAAAAAAAARTWVya2xlUm9vdEV4cGlyZWQAAAAAAAAGAAAAAAAAABFOb25Db250cmFjdEludm9rZQAAAAAAAAcAAAAAAAAAFE9ubHlFeGVjdXRvck9yU2lnbmVyAAAACAAAAAAAAAAbU2lnbmVyRXhlY3V0aW9uUHJvb2ZFeHBpcmVkAAAAAAkAAAABAAAAWUEgc2luZ2xlIFNvcm9iYW4gaW52b2NhdGlvbiB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgYXRvbWljYWxseSBpbnNpZGUgYSBPbmVTaWcgdHJhbnNhY3Rpb24uAAAAAAAAAAAAAARDYWxsAAAABAAAADVBQkktZW5jb2RlZCBhcmd1bWVudHMgZm9yd2FyZGVkIHRvIHRoZSB0YXJnZXQgbWV0aG9kLgAAAAAAAARhcmdzAAAD6gAAAAAAAAAuTWV0aG9kIGlkZW50aWZpZXIgdGhhdCB3aWxsIGJlIGNhbGxlZCBvbiBgdG9gLgAAAAAABGZ1bmMAAAARAAAAelN1Yi1pbnZvY2F0aW9ucyB0aGF0IHRoZSBPbmVTaWcgY29udHJhY3QgbXVzdCBwcmUtYXV0aG9yaXplCnZpYSBgYXV0aG9yaXplX2FzX2N1cnJlbnRfY29udHJhY3RgIGJlZm9yZSBpbnZva2luZyB0aGlzIGNhbGwuAAAAAAAPc3ViX2ludm9jYXRpb25zAAAAA+oAAAfQAAAAGEludm9rZXJDb250cmFjdEF1dGhFbnRyeQAAAEhUYXJnZXQgY29udHJhY3QgYWRkcmVzcyAobWlycm9ycyBgaW52b2tlX2NvbnRyYWN0YCdzIGBjb250cmFjdEFkZHJlc3NgKS4AAAACdG8AAAAAABMAAAABAAAAOkEgbWVya2xlIGxlYWYgZGVzY3JpYmluZyB0aGUgY2FsbCB0aGF0IHNob3VsZCBiZSBleGVjdXRlZC4AAAAAAAAAAAALVHJhbnNhY3Rpb24AAAAAAgAAACFUaGUgc2luZ2xlIGF1dGhvcml6ZWQgaW52b2NhdGlvbi4AAAAAAAAEY2FsbAAAB9AAAAAEQ2FsbAAAAEtNZXJrbGUgcHJvb2YgKHNpYmxpbmcgaGFzaGVzKSBwcm92aW5nIGBjYWxsYCBiZWxvbmdzIHRvIGFuIGF1dGhvcmlzZWQgcm9vdC4AAAAABXByb29mAAAAAAAD6gAAA+4AAAAgAAAAAQAAAExBY2NvdW50IEFic3RyYWN0aW9uIHBheWxvYWQgdXNlZCBieSBgX19jaGVja19hdXRoYCB0byB2YWxpZGF0ZSBhbiBleGVjdXRpb24uAAAAAAAAABNUcmFuc2FjdGlvbkF1dGhEYXRhAAAAAAUAAAA5VW5peCB0aW1lc3RhbXAgKHNlY29uZHMpIGFmdGVyIHdoaWNoIHRoZSByb290IGlzIGludmFsaWQuAAAAAAAABmV4cGlyeQAAAAAABgAAAC5BcHByb3ZlZCBtZXJrbGUgcm9vdCBjb3ZlcmluZyB0aGUgdHJhbnNhY3Rpb24uAAAAAAALbWVya2xlX3Jvb3QAAAAD7gAAACAAAAAwTWVya2xlIHByb29mIGJpbmRpbmcgdGhlIGNhbGxzIHRvIGBtZXJrbGVfcm9vdGAuAAAABXByb29mAAAAAAAD6gAAA+4AAAAgAAAASEVudGl0eSBzdWJtaXR0aW5nIHRoZSB0cmFuc2FjdGlvbiAoc2lnbmVyLCBleGVjdXRvciwgb3IgcGVybWlzc2lvbmxlc3MpLgAAAAZzZW5kZXIAAAAAB9AAAAAGU2VuZGVyAAAAAABFVGhyZXNob2xkIHNpZ25hdHVyZXMgKHLigJZz4oCWdikgY292ZXJpbmcgYG1lcmtsZV9yb290YCBhbmQgYGV4cGlyeWAuAAAAAAAACnNpZ25hdHVyZXMAAAAAA+oAAAPuAAAAQQAAAAIAAABIUmVwcmVzZW50cyB0aGUgZW50aXR5IHRoYXQgaXMgYXV0aG9yaXNpbmcgdGhlIGBfX2NoZWNrX2F1dGhgIGludm9jYXRpb24uAAAAAAAAAAZTZW5kZXIAAAAAAAMAAAABAAAAqkEgcmVnaXN0ZXJlZCBtdWx0aXNpZyBzaWduZXIgYWN0aW5nIGFzIGl0cyBvd24gZXhlY3V0b3IuIEJpbmRzIGEgc2VjcDI1NmsxCmF1dGhvcml6YXRpb24gc2lnbmF0dXJlIHRvIHRoZSBlZDI1NTE5IHN1Ym1pdHRlciAoYGRlbGVnYXRlYCksIHBlciB0aGUKc2lnbmVyLWFzLWV4ZWN1dG9yIHNwZWMuAAAAAAAGU2lnbmVyAAAAAAABAAAH0AAAABRTaWduZXJFeGVjdXRpb25Qcm9vZgAAAAEAAACSQSByZWdpc3RlcmVkIGV4ZWN1dG9yIChlZDI1NTE5KSBzdWJtaXR0aW5nIHRoZSB0cmFuc2FjdGlvbi4KVGhlIHR1cGxlIGlzIGAocHVibGljX2tleSwgc2lnbmF0dXJlKWAgd2hlcmUgdGhlIHNpZ25hdHVyZSBjb3ZlcnMgdGhlIFNvcm9iYW4gcGF5bG9hZC4AAAAAAAhFeGVjdXRvcgAAAAIAAAPuAAAAIAAAA+4AAABAAAAAAAAAAFJQZXJtaXNzaW9ubGVzcyBleGVjdXRpb24gKGFueW9uZSBtYXkgc3VibWl0IHdoZW4gYGV4ZWN1dG9yX3JlcXVpcmVkYCBpcyBkaXNhYmxlZCkuAAAAAAAOUGVybWlzc2lvbmxlc3MAAAAAAAEAAAGvUGF5bG9hZCBib3VuZCB0byBhIHNpZ25lci1hcy1leGVjdXRvciBzdWJtaXNzaW9uLgoKRW5mb3JjZXMgdGhlIHNwZWMncyAic2lnbmVyIGFjdGluZyBhcyBleGVjdXRvciIgZ3VhcmFudGVlIG9uIFN0ZWxsYXI6CmEgc2VjcDI1NmsxIHNpZ25lciBjb21taXRzIHRvIHRoZSBlZDI1NTE5IHN1Ym1pdHRlciB2aWEgYHNpZ25hdHVyZWAsIGFuZCB0aGUKc3VibWl0dGVyIHByb3ZlcyBjb250cm9sIG9mIGBkZWxlZ2F0ZWAgdmlhIGBkZWxlZ2F0ZV9wcm9vZmAuIGBkZWxlZ2F0ZV9wcm9vZmAgaXMgYQpTb3JvYmFuLXNwZWNpZmljIGZpZWxkOiBgX19jaGVja19hdXRoYCBoYXMgbm8gbmF0aXZlIGBtc2cuc2VuZGVyYCwgc28gaXQgaXMgaG93IHRoaXMKaW1wbGVtZW50YXRpb24gZW5mb3JjZXMgdGhlIHNwZWMncyBgc3VibWl0dGVyID09IGRlbGVnYXRlYCBjaGVjay4AAAAAAAAAABRTaWduZXJFeGVjdXRpb25Qcm9vZgAAAAQAAABAZWQyNTUxOSBwdWJsaWMga2V5ICgzMiBieXRlcykgdGhlIHNpZ25lciBiaW5kcyBhcyB0aGUgc3VibWl0dGVyLgAAAAhkZWxlZ2F0ZQAAA+4AAAAgAAAAgmVkMjU1MTkgc2lnbmF0dXJlICg2NCBieXRlcykgYnkgYGRlbGVnYXRlYCBvdmVyIHRoZSBTb3JvYmFuIHJ1bnRpbWUKcGF5bG9hZCBoYXNoIOKAlCBwcm92ZXMgdGhlIHN1Ym1pdHRlciBhY3R1YWxseSBob2xkcyB0aGF0IGtleS4AAAAAAA5kZWxlZ2F0ZV9wcm9vZgAAAAAD7gAAAEAAAABHVW5peCB0aW1lc3RhbXAgKHNlY29uZHMpIGFmdGVyIHdoaWNoIGBzaWduYXR1cmVgIGNhbiBubyBsb25nZXIgYmUgdXNlZC4AAAAABmV4cGlyeQAAAAAABgAAAI9zZWNwMjU2azEgc2lnbmF0dXJlIChy4oCWc+KAlnYsIDY1IGJ5dGVzKSBvdmVyIHRoZSBFSVAtNzEyIGRpZ2VzdCBvZgpgU2lnbmVyRXhlY3V0aW9uQXV0aG9yaXphdGlvbiB7IGxlYWZIYXNoLCBtZXJrbGVSb290LCBkZWxlZ2F0ZSwgZXhwaXJ5IH1gLgAAAAAJc2lnbmF0dXJlAAAAAAAD7gAAAEEAAAACAAAAmklkZW50aWZpZXIgdXNlZCBieSBgY2FuX2V4ZWN1dGVfdHJhbnNhY3Rpb25gIHRvIGRlc2NyaWJlIHRoZSBjYWxsZXIuClNpZ25lcnMgdXNlIEV0aGVyZXVtLXN0eWxlIDIwLWJ5dGUgYWRkcmVzc2VzIHdoaWxlIGV4ZWN1dG9ycyB1c2UgZWQyNTUxOSBwdWJsaWMga2V5cy4AAAAAAAAAAAAJU2VuZGVyS2V5AAAAAAAAAgAAAAEAAAA5QW4gRXRoZXJldW0tc3R5bGUgc2lnbmVyIGFkZHJlc3MgKDIwIGJ5dGVzLCBsZWZ0LXBhZGRlZCkuAAAAAAAABlNpZ25lcgAAAAAAAQAAA+4AAAAUAAAAAQAAACpBbiBlZDI1NTE5IGV4ZWN1dG9yIHB1YmxpYyBrZXkgKDMyIGJ5dGVzKS4AAAAAAAhFeGVjdXRvcgAAAAEAAAPuAAAAIAAAAAAAAAA3QWRkcyBvciByZW1vdmVzIGFuIGV4ZWN1dG9yIGJhc2VkIG9uIHRoZSBgYWN0aXZlYCBmbGFnLgAAAAAMc2V0X2V4ZWN1dG9yAAAAAgAAAAAAAAAIZXhlY3V0b3IAAAPuAAAAIAAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAAAAAA2U2V0cyB3aGV0aGVyIGFuIGV4ZWN1dG9yIGlzIHJlcXVpcmVkIGZvciB0cmFuc2FjdGlvbnMuAAAAAAAVc2V0X2V4ZWN1dG9yX3JlcXVpcmVkAAAAAAAAAQAAAAAAAAAIcmVxdWlyZWQAAAABAAAAAAAAAAAAAAAtUmV0dXJucyB0aGUgbGlzdCBvZiBhbGwgcmVnaXN0ZXJlZCBleGVjdXRvcnMuAAAAAAAADWdldF9leGVjdXRvcnMAAAAAAAAAAAAAAQAAA+oAAAPuAAAAIAAAAAAAAAA4Q2hlY2tzIHdoZXRoZXIgYSBnaXZlbiBhZGRyZXNzIGlzIGEgcmVnaXN0ZXJlZCBleGVjdXRvci4AAAALaXNfZXhlY3V0b3IAAAAAAQAAAAAAAAAIZXhlY3V0b3IAAAPuAAAAIAAAAAEAAAABAAAAAAAAADFSZXR1cm5zIHRoZSB0b3RhbCBudW1iZXIgb2YgcmVnaXN0ZXJlZCBleGVjdXRvcnMuAAAAAAAAD3RvdGFsX2V4ZWN1dG9ycwAAAAAAAAAAAQAAAAQAAAAAAAAAMlJldHVybnMgd2hldGhlciBhbiBleGVjdXRvciBzaWduYXR1cmUgaXMgcmVxdWlyZWQuAAAAAAARZXhlY3V0b3JfcmVxdWlyZWQAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAxfX2NoZWNrX2F1dGgAAAADAAAAAAAAABFzaWduYXR1cmVfcGF5bG9hZAAAAAAAA+4AAAAgAAAAAAAAAAlhdXRoX2RhdGEAAAAAAAfQAAAAE1RyYW5zYWN0aW9uQXV0aERhdGEAAAAAAAAAAA1hdXRoX2NvbnRleHRzAAAAAAAD6gAAB9AAAAAHQ29udGV4dAAAAAABAAAD6QAAAAIAAAADAAAAAAAAAElVcGRhdGVzIHRoZSBzZWVkIHVzZWQgZm9yIEVJUC03MTIgZGlnZXN0IGNvbnN0cnVjdGlvbiBhbmQgZW1pdHMgYW4gZXZlbnQuAAAAAAAACHNldF9zZWVkAAAAAQAAAAAAAAAEc2VlZAAAA+4AAAAgAAAAAAAAAAAAAAECRGlzcGF0Y2hlcyBleHRlcm5hbCBjb250cmFjdCBjYWxscy4gQWxsIHNlY3VyaXR5IHZlcmlmaWNhdGlvbiBoYXBwZW5zIGluIGBfX2NoZWNrX2F1dGhgLgpFYWNoIGNhbGwncyBgc3ViX2ludm9jYXRpb25zYCBhcmUgcHJlLWF1dGhvcml6ZWQgdmlhIGBhdXRob3JpemVfYXNfY3VycmVudF9jb250cmFjdGAKaW1tZWRpYXRlbHkgYmVmb3JlIGludm9raW5nLCBlbmFibGluZyBkZWVwZXIgc3ViLWludm9jYXRpb25zIChlLmcuIHRva2VuIHRyYW5zZmVycykuAAAAAAATZXhlY3V0ZV90cmFuc2FjdGlvbgAAAAABAAAAAAAAAAVjYWxscwAAAAAAA+oAAAfQAAAABENhbGwAAAAAAAAAAAAAAExWZXJpZmllcyBhIG1lcmtsZSByb290IGJ5IGNoZWNraW5nIGV4cGlyeSBhbmQgdmFsaWRhdGluZyBFSVAtNzEyIHNpZ25hdHVyZXMuAAAAEnZlcmlmeV9tZXJrbGVfcm9vdAAAAAAAAwAAAAAAAAALbWVya2xlX3Jvb3QAAAAD7gAAACAAAAAAAAAABmV4cGlyeQAAAAAABgAAAAAAAAAKc2lnbmF0dXJlcwAAAAAD6gAAA+4AAABBAAAAAAAAAAAAAABVVmVyaWZpZXMgYSB0cmFuc2FjdGlvbidzIG1lcmtsZSBwcm9vZiBhZ2FpbnN0IHRoZSBnaXZlbiByb290IHVzaW5nIHRoZSBjdXJyZW50IG5vbmNlLgAAAAAAABh2ZXJpZnlfdHJhbnNhY3Rpb25fcHJvb2YAAAACAAAAAAAAAAttZXJrbGVfcm9vdAAAAAPuAAAAIAAAAAAAAAALdHJhbnNhY3Rpb24AAAAH0AAAAAtUcmFuc2FjdGlvbgAAAAAAAAAAAAAAAH1FbmNvZGVzIGEgbGVhZiBub2RlIGJ5IHNlcmlhbGl6aW5nIHZlcnNpb24sIG9uZXNpZyBJRCwgY29udHJhY3QgYWRkcmVzcywgbm9uY2UsIGFuZCBjYWxsLCB0aGVuIGRvdWJsZS1oYXNoaW5nIHdpdGgga2VjY2FrMjU2LgAAAAAAAAtlbmNvZGVfbGVhZgAAAAACAAAAAAAAAAVub25jZQAAAAAAAAYAAAAAAAAABGNhbGwAAAfQAAAABENhbGwAAAABAAAD7gAAACAAAAAAAAAAX0NoZWNrcyBpZiB0aGUgc2VuZGVyIGlzIGF1dGhvcml6ZWQgdG8gZXhlY3V0ZSBhIHRyYW5zYWN0aW9uIChleGVjdXRvciBvciBzaWduZXIgd2hlbiByZXF1aXJlZCkuAAAAABdjYW5fZXhlY3V0ZV90cmFuc2FjdGlvbgAAAAABAAAAAAAAAAZzZW5kZXIAAAAAB9AAAAAJU2VuZGVyS2V5AAAAAAAAAQAAAAEAAAAAAAAAOVJldHVybnMgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIE9uZVNpZyBkZXBsb3ltZW50LgAAAAAAAAlvbmVzaWdfaWQAAAAAAAAAAAAAAQAAAAYAAAAAAAAAJlJldHVybnMgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24gbm9uY2UuAAAAAAAFbm9uY2UAAAAAAAAAAAAAAQAAAAYAAAAAAAAAPlJldHVybnMgdGhlIGN1cnJlbnQgc2VlZCB1c2VkIGZvciBFSVAtNzEyIGRpZ2VzdCBjb25zdHJ1Y3Rpb24uAAAAAAAEc2VlZAAAAAAAAAABAAAD7gAAACAAAAAAAAAAJFJldHVybnMgdGhlIGNvbnRyYWN0IHZlcnNpb24gc3RyaW5nLgAAAAd2ZXJzaW9uAAAAAAAAAAABAAAAEAAAAAAAAABFUmV0dXJucyB0aGUgbGVhZiBlbmNvZGluZyB2ZXJzaW9uIHVzZWQgZm9yIG1lcmtsZSBwcm9vZiBjb25zdHJ1Y3Rpb24uAAAAAAAAFWxlYWZfZW5jb2RpbmdfdmVyc2lvbgAAAAAAAAAAAAABAAAABAAAAAAAAAIFQ29uc3RydWN0b3IgdG8gaW5pdGlhbGl6ZSB0aGUgT25lU2lnIGNvbnRyYWN0IHdpdGggaW5pdGlhbCBzdGF0ZQoKIyBBcmd1bWVudHMKKiBgb25lc2lnX2lkYCAtIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIE9uZVNpZyBkZXBsb3ltZW50CiogYHNlZWRgIC0gSW5pdGlhbCBzZWVkIHZhbHVlIGZvciBtZXJrbGUgcm9vdCB2ZXJpZmljYXRpb24KKiBgc2lnbmVyc2AgLSBBcnJheSBvZiBpbml0aWFsIHNpZ25lciBhZGRyZXNzZXMgKDMyIGJ5dGVzIGVhY2gsIEV0aGVyZXVtIGFkZHJlc3NlcyBwYWRkZWQpCiogYHRocmVzaG9sZGAgLSBOdW1iZXIgb2Ygc2lnbmF0dXJlcyByZXF1aXJlZCBmb3IgdHJhbnNhY3Rpb24gZXhlY3V0aW9uCiogYGV4ZWN1dG9yc2AgLSBBcnJheSBvZiBpbml0aWFsIGV4ZWN1dG9yIHB1YmxpYyBrZXlzIChCeXRlc048MzI+KQoqIGBleGVjdXRvcl9yZXF1aXJlZGAgLSBXaGV0aGVyIGV4ZWN1dG9yIHBlcm1pc3Npb24gaXMgcmVxdWlyZWQgZm9yIHRyYW5zYWN0aW9uIGV4ZWN1dGlvbgAAAAAAAA1fX2NvbnN0cnVjdG9yAAAAAAAABgAAAAAAAAAJb25lc2lnX2lkAAAAAAAABgAAAAAAAAAEc2VlZAAAA+4AAAAgAAAAAAAAAAdzaWduZXJzAAAAA+oAAAPuAAAAFAAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAJZXhlY3V0b3JzAAAAAAAD6gAAA+4AAAAgAAAAAAAAABFleGVjdXRvcl9yZXF1aXJlZAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAKYXV0aG9yaXplcgAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAABJQWRkcyBvciByZW1vdmVzIGEgc2lnbmVyIGZyb20gdGhlIG11bHRpc2lnLiBSZXF1aXJlcyBvd25lciBhdXRob3JpemF0aW9uLgAAAAAAAApzZXRfc2lnbmVyAAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAAAAAERTZXRzIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIChxdW9ydW0pLiBSZXF1aXJlcyBvd25lciBhdXRob3JpemF0aW9uLgAAAA1zZXRfdGhyZXNob2xkAAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAAAAAAH1JldHVybnMgYWxsIHJlZ2lzdGVyZWQgc2lnbmVycy4AAAAAC2dldF9zaWduZXJzAAAAAAAAAAABAAAD6gAAA+4AAAAUAAAAAAAAAC9SZXR1cm5zIHRoZSB0b3RhbCBudW1iZXIgb2YgcmVnaXN0ZXJlZCBzaWduZXJzLgAAAAANdG90YWxfc2lnbmVycwAAAAAAAAAAAAABAAAABAAAAAAAAAAsQ2hlY2tzIGlmIGFuIGFkZHJlc3MgaXMgYSByZWdpc3RlcmVkIHNpZ25lci4AAAAJaXNfc2lnbmVyAAAAAAAAAQAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAABAAAAAAAAADFSZXR1cm5zIHRoZSBjdXJyZW50IHNpZ25hdHVyZSB0aHJlc2hvbGQgKHF1b3J1bSkuAAAAAAAACXRocmVzaG9sZAAAAAAAAAAAAAABAAAABAAAAAAAAAA1VmVyaWZpZXMgc2lnbmF0dXJlcyBhZ2FpbnN0IHRoZSBjb25maWd1cmVkIHRocmVzaG9sZC4AAAAAAAARdmVyaWZ5X3NpZ25hdHVyZXMAAAAAAAACAAAAAAAAAAZkaWdlc3QAAAAAA+4AAAAgAAAAAAAAAApzaWduYXR1cmVzAAAAAAPqAAAD7gAAAEEAAAAAAAAAAAAAAC9WZXJpZmllcyBzaWduYXR1cmVzIGFnYWluc3QgYSBjdXN0b20gdGhyZXNob2xkLgAAAAATdmVyaWZ5X25fc2lnbmF0dXJlcwAAAAADAAAAAAAAAAZkaWdlc3QAAAAAA+4AAAAgAAAAAAAAAApzaWduYXR1cmVzAAAAAAPqAAAD7gAAAEEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAAAAAAAKVFeHRlbmRzIHRoZSBpbnN0YW5jZSBUVEwuCgojIEFyZ3VtZW50cwoKKiBgdGhyZXNob2xkYCAtIFRoZSB0aHJlc2hvbGQgdG8gZXh0ZW5kIHRoZSBUVEwgKGlmIGN1cnJlbnQgVFRMIGlzIGJlbG93IHRoaXMsIGV4dGVuZCkuCiogYGV4dGVuZF90b2AgLSBUaGUgVFRMIHRvIGV4dGVuZCB0by4AAAAAAAATZXh0ZW5kX2luc3RhbmNlX3R0bAAAAAACAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAlleHRlbmRfdG8AAAAAAAAEAAAAAAAAAAAAAAGPU2V0cyBUVEwgY29uZmlncyBmb3IgaW5zdGFuY2UgYW5kIHBlcnNpc3RlbnQgc3RvcmFnZS4KCi0gYE5vbmVgIHZhbHVlcyByZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgY29uZmlnIChkaXNhYmxlcyBhdXRvLWV4dGVuc2lvbiBmb3IgdGhhdCB0eXBlKQotIFZhbGlkYXRlcyB0aGF0IGB0aHJlc2hvbGQgPD0gZXh0ZW5kX3RvIDw9IE1BWF9UVExgCgojIEFyZ3VtZW50cwotIGBpbnN0YW5jZWAgLSBUVEwgY29uZmlnIGZvciBpbnN0YW5jZSBzdG9yYWdlCi0gYHBlcnNpc3RlbnRgIC0gVFRMIGNvbmZpZyBmb3IgcGVyc2lzdGVudCBzdG9yYWdlCgojIFBhbmljcwotIGBUdGxDb25maWdGcm96ZW5gIGlmIGNvbmZpZ3MgYXJlIGZyb3plbgotIGBJbnZhbGlkVHRsQ29uZmlnYCBpZiB2YWxpZGF0aW9uIGZhaWxzAAAAAA9zZXRfdHRsX2NvbmZpZ3MAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAASFJldHVybnMgdGhlIGN1cnJlbnQgVFRMIGNvbmZpZ3MgYXMgKGluc3RhbmNlX2NvbmZpZywgcGVyc2lzdGVudF9jb25maWcpLgAAAAt0dGxfY29uZmlncwAAAAAAAAAAAQAAA+0AAAACAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAOFQZXJtYW5lbnRseSBmcmVlemVzIFRUTCBjb25maWdzLCBwcmV2ZW50aW5nIGFueSBmdXR1cmUgbW9kaWZpY2F0aW9ucy4KClRoaXMgaXMgaXJyZXZlcnNpYmxlIGFuZCBwcm92aWRlcyBpbW11dGFiaWxpdHkgZ3VhcmFudGVlcyB0byB1c2Vycy4KRW1pdHMgYFR0bENvbmZpZ3NGcm96ZW5gIGV2ZW50LgoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnQWxyZWFkeUZyb3plbmAgaWYgYWxyZWFkeSBmcm96ZW4AAAAAAAASZnJlZXplX3R0bF9jb25maWdzAAAAAAAAAAAAAAAAAAAAAAAnUmV0dXJucyB3aGV0aGVyIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAABVpc190dGxfY29uZmlnc19mcm96ZW4AAAAAAAAAAAAAAQAAAAEAAAACAAAAAAAAAAAAAAANT25lU2lnU3RvcmFnZQAAAAAAAAUAAAAAAAAAAAAAAAlFeGVjdXRvcnMAAAAAAAAAAAAAAAAAABBFeGVjdXRvclJlcXVpcmVkAAAAAAAAAAAAAAAIT25lU2lnSWQAAAAAAAAAAAAAAARTZWVkAAAAAAAAAAAAAAAFTm9uY2UAAAAAAAAEAAAAHEJ1ZmZlclJlYWRlckVycm9yOiAxMDAwLTEwMDkAAAAAAAAAEUJ1ZmZlclJlYWRlckVycm9yAAAAAAAAAgAAAAAAAAANSW52YWxpZExlbmd0aAAAAAAAA+gAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA+kAAAAEAAAAHEJ1ZmZlcldyaXRlckVycm9yOiAxMDEwLTEwMTkAAAAAAAAAEUJ1ZmZlcldyaXRlckVycm9yAAAAAAAAAQAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD8gAAAAQAAAAfVHRsQ29uZmlndXJhYmxlRXJyb3I6IDEwMjAtMTAyOQAAAAAAAAAAFFR0bENvbmZpZ3VyYWJsZUVycm9yAAAAAwAAAAAAAAAQSW52YWxpZFR0bENvbmZpZwAAA/wAAAAAAAAAD1R0bENvbmZpZ0Zyb3plbgAAAAP9AAAAAAAAABZUdGxDb25maWdBbHJlYWR5RnJvemVuAAAAAAP+AAAABAAAABdPd25hYmxlRXJyb3I6IDEwMzAtMTAzOQAAAAAAAAAADE93bmFibGVFcnJvcgAAAAcAAAAAAAAAEUludmFsaWRBdXRob3JpemVyAAAAAAAEBgAAAAAAAAATSW52YWxpZFBlbmRpbmdPd25lcgAAAAQHAAAAAAAAAApJbnZhbGlkVHRsAAAAAAQIAAAAAAAAABFOb1BlbmRpbmdUcmFuc2ZlcgAAAAAABAkAAAAAAAAAD093bmVyQWxyZWFkeVNldAAAAAQKAAAAAAAAAAtPd25lck5vdFNldAAAAAQLAAAAAAAAABJUcmFuc2ZlckluUHJvZ3Jlc3MAAAAABAwAAAAEAAAAGEJ5dGVzRXh0RXJyb3I6IDEwNDAtMTA0OQAAAAAAAAANQnl0ZXNFeHRFcnJvcgAAAAAAAAEAAAAAAAAADkxlbmd0aE1pc21hdGNoAAAAAAQQAAAABAAAABtVcGdyYWRlYWJsZUVycm9yOiAxMDUwLTEwNTkAAAAAAAAAABBVcGdyYWRlYWJsZUVycm9yAAAAAgAAAAAAAAAUSW52YWxpZE1pZ3JhdGlvbkRhdGEAAAQaAAAAAAAAABNNaWdyYXRpb25Ob3RBbGxvd2VkAAAABBsAAAAEAAAAGE11bHRpU2lnRXJyb3I6IDEwNjAtMTA2OQAAAAAAAAANTXVsdGlTaWdFcnJvcgAAAAAAAAkAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAEJAAAAAAAAAARSW52YWxpZEF1dGhvcml6ZXIAAAAAAAQlAAAAAAAAAA1JbnZhbGlkU2lnbmVyAAAAAAAEJgAAAAAAAAAOU2lnbmF0dXJlRXJyb3IAAAAABCcAAAAAAAAAE1NpZ25lckFscmVhZHlFeGlzdHMAAAAEKAAAAAAAAAAOU2lnbmVyTm90Rm91bmQAAAAABCkAAAAAAAAAHVRvdGFsU2lnbmVyc0xlc3NUaGFuVGhyZXNob2xkAAAAAAAEKgAAAAAAAAAPVW5zb3J0ZWRTaWduZXJzAAAABCsAAAAAAAAADVplcm9UaHJlc2hvbGQAAAAAAAQsAAAABAAAABRBdXRoRXJyb3I6IDEwNzAtMTA3OQAAAAAAAAAJQXV0aEVycm9yAAAAAAAAAQAAAAAAAAASQXV0aG9yaXplck5vdEZvdW5kAAAAAAQuAAAABAAAABRSYmFjRXJyb3I6IDEwODAtMTA4OQAAAAAAAAAJUmJhY0Vycm9yAAAAAAAABwAAAAAAAAARQWRtaW5Sb2xlTm90Rm91bmQAAAAAAAQ4AAAAAAAAABBJbmRleE91dE9mQm91bmRzAAAEOQAAAAAAAAAQTWF4Um9sZXNFeGNlZWRlZAAABDoAAAAAAAAAC1JvbGVJc0VtcHR5AAAABDsAAAAAAAAADFJvbGVOb3RGb3VuZAAABDwAAAAAAAAAC1JvbGVOb3RIZWxkAAAABD0AAAAAAAAADFVuYXV0aG9yaXplZAAABD4AAAAFAAAAMEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHNpZ25lciBpcyBhZGRlZCBvciByZW1vdmVkLgAAAAAAAAAJU2lnbmVyU2V0AAAAAAAAAQAAAApzaWduZXJfc2V0AAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAQAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAANkV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2lnbmF0dXJlIHRocmVzaG9sZCBpcyBjaGFuZ2VkLgAAAAAAAAAAAAxUaHJlc2hvbGRTZXQAAAABAAAADXRocmVzaG9sZF9zZXQAAAAAAAABAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAPTXVsdGlTaWdTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAdTaWduZXJzAAAAAAAAAAAAAAAACVRocmVzaG9sZAAAAAAAAAUAAABXRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyB0cmFuc2ZlcnJlZCAoYm90aCBzaW5nbGUtc3RlcCBhbmQgdHdvLXN0ZXAgY29tcGxldGlvbikuAAAAAAAAAAAUT3duZXJzaGlwVHJhbnNmZXJyZWQAAAABAAAAFW93bmVyc2hpcF90cmFuc2ZlcnJlZAAAAAAAAAIAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAIAAAAFAAAAO0V2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgcHJvcG9zZWQuAAAAAAAAAAAVT3duZXJzaGlwVHJhbnNmZXJyaW5nAAAAAAAAAQAAABZvd25lcnNoaXBfdHJhbnNmZXJyaW5nAAAAAAADAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAIAAAAFAAAAPEV2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgY2FuY2VsbGVkLgAAAAAAAAAaT3duZXJzaGlwVHJhbnNmZXJDYW5jZWxsZWQAAAAAAAEAAAAcb3duZXJzaGlwX3RyYW5zZmVyX2NhbmNlbGxlZAAAAAIAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAAAAAAAF2NhbmNlbGxlZF9wZW5kaW5nX293bmVyAAAAABMAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyByZW5vdW5jZWQuAAAAAAAAAAAAEk93bmVyc2hpcFJlbm91bmNlZAAAAAAAAQAAABNvd25lcnNoaXBfcmVub3VuY2VkAAAAAAEAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA5Pd25hYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABU93bmVyAAAAAAAAAAAAAAAAAAAMUGVuZGluZ093bmVyAAAABQAAACVFdmVudCBlbWl0dGVkIHdoZW4gYSByb2xlIGlzIGdyYW50ZWQuAAAAAAAAAAAAAAtSb2xlR3JhbnRlZAAAAAABAAAADHJvbGVfZ3JhbnRlZAAAAAMAAAAAAAAABHJvbGUAAAARAAAAAQAAAAAAAAAHYWNjb3VudAAAAAATAAAAAQAAAAAAAAAGY2FsbGVyAAAAAAATAAAAAAAAAAIAAAAFAAAAJUV2ZW50IGVtaXR0ZWQgd2hlbiBhIHJvbGUgaXMgcmV2b2tlZC4AAAAAAAAAAAAAC1JvbGVSZXZva2VkAAAAAAEAAAAMcm9sZV9yZXZva2VkAAAAAwAAAAAAAAAEcm9sZQAAABEAAAABAAAAAAAAAAdhY2NvdW50AAAAABMAAAABAAAAAAAAAAZjYWxsZXIAAAAAABMAAAAAAAAAAgAAAAUAAAArRXZlbnQgZW1pdHRlZCB3aGVuIGEgcm9sZSBhZG1pbiBpcyBjaGFuZ2VkLgAAAAAAAAAAEFJvbGVBZG1pbkNoYW5nZWQAAAABAAAAEnJvbGVfYWRtaW5fY2hhbmdlZAAAAAAAAwAAAAAAAAAEcm9sZQAAABEAAAABAAAAAAAAABNwcmV2aW91c19hZG1pbl9yb2xlAAAAA+gAAAARAAAAAAAAAAAAAAAObmV3X2FkbWluX3JvbGUAAAAAA+gAAAARAAAAAAAAAAIAAAACAAAAAAAAAAAAAAALUmJhY1N0b3JhZ2UAAAAABQAAAAAAAAAAAAAADUV4aXN0aW5nUm9sZXMAAAAAAAABAAAAAAAAABJSb2xlSW5kZXhUb0FjY291bnQAAAAAAAIAAAARAAAABAAAAAEAAAAAAAAAElJvbGVBY2NvdW50VG9JbmRleAAAAAAAAgAAABEAAAATAAAAAQAAAAAAAAARUm9sZUFjY291bnRzQ291bnQAAAAAAAABAAAAEQAAAAEAAAAAAAAACVJvbGVBZG1pbgAAAAAAAAEAAAARAAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQAAAAFAAAAJ0V2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgc2V0LgAAAAAAAAAADVR0bENvbmZpZ3NTZXQAAAAAAAABAAAAD3R0bF9jb25maWdzX3NldAAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAAAAAAAAQVHRsQ29uZmlnc0Zyb3plbgAAAAEAAAASdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAABBUdGxDb25maWdTdG9yYWdlAAAAAwAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAISW5zdGFuY2UAAAAAAAAAAAAAAApQZXJzaXN0ZW50AAAAAAACAAAAAAAAAAAAAAASVXBncmFkZWFibGVTdG9yYWdlAAAAAAABAAAAAAAAAAAAAAAJTWlncmF0aW5nAAAAAB4RY29udHJhY3RlbnZtZXRhdjAAAAAAAAAAGQAAAAAAbw5jb250cmFjdG1ldGF2MAAAAAAAAAAFcnN2ZXIAAAAAAAAGMS45MC4wAAAAAAAAAAAACHJzc2RrdmVyAAAALzI1LjEuMSM5NGMyYTNiM2E1ZGVkNmI5Y2Y5Y2VmMGMyMDdiZjg4MDRmM2ViMjk0AACfAw5jb250cmFjdG1ldGF2MAAAAAAAAAAGY2xpdmVyAAAAAAAvMjUuMS4wI2EwNDhhNTdhNzU3NjI0NThiNDg3MDUyZTAwMjFlYTcwNGE5MjZiZWUAAAAAAAAAAAZibGRpbWcAAAAAAGVkb2NrZXIuaW8vc3RlbGxhci9zdGVsbGFyLWNsaUBzaGEyNTY6YzMyNzc0YmZkMmE1N2JlNWMyZWZlNTMxOTVjMzRiY2QwOTNjNzk5Y2I3MDg3ZGY1Y2RjNWIyYjMxZmE4YzY1ZgAAAAAAAAAAAAAGYmxkb3B0AAAAAAAaLS1tYW5pZmVzdC1wYXRoPUNhcmdvLnRvbWwAAAAAAAAAAAAGYmxkb3B0AAAAAAAKLS1vcHRpbWl6ZQAAAAAAAAAAAAZibGRvcHQAAAAAABAtLXBhY2thZ2U9b25lc2lnAAAAAAAAAA1zb3VyY2Vfc2hhMjU2AAAAAAAAQDVhY2NjN2I3YWIyMDVmMWNhYmI3NzZjNjQ5Mzc4NDgxNzI4YjUxM2Y0N2QzNmY0YjEzMGJhNWFkMzg1MTYwZDk=\";\n\n/**\n * Pre-computed WASM hash (SHA-256)\n * Use this when the WASM is already uploaded on-chain\n */\nexport const WASM_HASH = \"7f59b1e8865ffd1bfb3437707ac5b12d87a3a828827e200e3ac9418809195945\";\n\n/**\n * Get the WASM bytecode as a Buffer\n * Use this to upload the WASM to the network\n */\nexport function getWasmBuffer(): Buffer {\n return Buffer.from(WASM_BASE64, 'base64');\n}\n\n\n\n\n\nexport const OneSigError = {\n 1: {message:\"ExecutorAlreadyExists\"},\n 2: {message:\"ExecutorAlreadyInitialized\"},\n 3: {message:\"ExecutorNotFound\"},\n 4: {message:\"InvalidAuthContext\"},\n 5: {message:\"InvalidProofOrNonce\"},\n 6: {message:\"MerkleRootExpired\"},\n 7: {message:\"NonContractInvoke\"},\n 8: {message:\"OnlyExecutorOrSigner\"},\n 9: {message:\"SignerExecutionProofExpired\"}\n}\n\n\n/**\n * A single Soroban invocation that will be executed atomically inside a OneSig transaction.\n */\nexport interface Call {\n /**\n * ABI-encoded arguments forwarded to the target method.\n */\nargs: Array<any>;\n /**\n * Method identifier that will be called on `to`.\n */\nfunc: string;\n /**\n * Sub-invocations that the OneSig contract must pre-authorize\n * via `authorize_as_current_contract` before invoking this call.\n */\nsub_invocations: Array<InvokerContractAuthEntry>;\n /**\n * Target contract address (mirrors `invoke_contract`'s `contractAddress`).\n */\nto: string;\n}\n\n\n/**\n * A merkle leaf describing the call that should be executed.\n */\nexport interface Transaction {\n /**\n * The single authorized invocation.\n */\ncall: Call;\n /**\n * Merkle proof (sibling hashes) proving `call` belongs to an authorised root.\n */\nproof: Array<Buffer>;\n}\n\n\n/**\n * Account Abstraction payload used by `__check_auth` to validate an execution.\n */\nexport interface TransactionAuthData {\n /**\n * Unix timestamp (seconds) after which the root is invalid.\n */\nexpiry: u64;\n /**\n * Approved merkle root covering the transaction.\n */\nmerkle_root: Buffer;\n /**\n * Merkle proof binding the calls to `merkle_root`.\n */\nproof: Array<Buffer>;\n /**\n * Entity submitting the transaction (signer, executor, or permissionless).\n */\nsender: Sender;\n /**\n * Threshold signatures (r‖s‖v) covering `merkle_root` and `expiry`.\n */\nsignatures: Array<Buffer>;\n}\n\n/**\n * Represents the entity that is authorising the `__check_auth` invocation.\n */\nexport type Sender = {tag: \"Signer\", values: readonly [SignerExecutionProof]} | {tag: \"Executor\", values: readonly [Buffer, Buffer]} | {tag: \"Permissionless\", values: void};\n\n\n/**\n * Payload bound to a signer-as-executor submission.\n * \n * Enforces the spec's \"signer acting as executor\" guarantee on Stellar:\n * a secp256k1 signer commits to the ed25519 submitter via `signature`, and the\n * submitter proves control of `delegate` via `delegate_proof`. `delegate_proof` is a\n * Soroban-specific field: `__check_auth` has no native `msg.sender`, so it is how this\n * implementation enforces the spec's `submitter == delegate` check.\n */\nexport interface SignerExecutionProof {\n /**\n * ed25519 public key (32 bytes) the signer binds as the submitter.\n */\ndelegate: Buffer;\n /**\n * ed25519 signature (64 bytes) by `delegate` over the Soroban runtime\n * payload hash — proves the submitter actually holds that key.\n */\ndelegate_proof: Buffer;\n /**\n * Unix timestamp (seconds) after which `signature` can no longer be used.\n */\nexpiry: u64;\n /**\n * secp256k1 signature (r‖s‖v, 65 bytes) over the EIP-712 digest of\n * `SignerExecutionAuthorization { leafHash, merkleRoot, delegate, expiry }`.\n */\nsignature: Buffer;\n}\n\n/**\n * Identifier used by `can_execute_transaction` to describe the caller.\n * Signers use Ethereum-style 20-byte addresses while executors use ed25519 public keys.\n */\nexport type SenderKey = {tag: \"Signer\", values: readonly [Buffer]} | {tag: \"Executor\", values: readonly [Buffer]};\n\nexport type OneSigStorage = {tag: \"Executors\", values: void} | {tag: \"ExecutorRequired\", values: void} | {tag: \"OneSigId\", values: void} | {tag: \"Seed\", values: void} | {tag: \"Nonce\", values: void};\n\n/**\n * BufferReaderError: 1000-1009\n */\nexport const BufferReaderError = {\n 1000: {message:\"InvalidLength\"},\n 1001: {message:\"InvalidAddressPayload\"}\n}\n\n/**\n * BufferWriterError: 1010-1019\n */\nexport const BufferWriterError = {\n 1010: {message:\"InvalidAddressPayload\"}\n}\n\n/**\n * TtlConfigurableError: 1020-1029\n */\nexport const TtlConfigurableError = {\n 1020: {message:\"InvalidTtlConfig\"},\n 1021: {message:\"TtlConfigFrozen\"},\n 1022: {message:\"TtlConfigAlreadyFrozen\"}\n}\n\n/**\n * OwnableError: 1030-1039\n */\nexport const OwnableError = {\n 1030: {message:\"InvalidAuthorizer\"},\n 1031: {message:\"InvalidPendingOwner\"},\n 1032: {message:\"InvalidTtl\"},\n 1033: {message:\"NoPendingTransfer\"},\n 1034: {message:\"OwnerAlreadySet\"},\n 1035: {message:\"OwnerNotSet\"},\n 1036: {message:\"TransferInProgress\"}\n}\n\n/**\n * BytesExtError: 1040-1049\n */\nexport const BytesExtError = {\n 1040: {message:\"LengthMismatch\"}\n}\n\n/**\n * UpgradeableError: 1050-1059\n */\nexport const UpgradeableError = {\n 1050: {message:\"InvalidMigrationData\"},\n 1051: {message:\"MigrationNotAllowed\"}\n}\n\n/**\n * MultiSigError: 1060-1069\n */\nexport const MultiSigError = {\n 1060: {message:\"AlreadyInitialized\"},\n 1061: {message:\"InvalidAuthorizer\"},\n 1062: {message:\"InvalidSigner\"},\n 1063: {message:\"SignatureError\"},\n 1064: {message:\"SignerAlreadyExists\"},\n 1065: {message:\"SignerNotFound\"},\n 1066: {message:\"TotalSignersLessThanThreshold\"},\n 1067: {message:\"UnsortedSigners\"},\n 1068: {message:\"ZeroThreshold\"}\n}\n\n/**\n * AuthError: 1070-1079\n */\nexport const AuthError = {\n 1070: {message:\"AuthorizerNotFound\"}\n}\n\n/**\n * RbacError: 1080-1089\n */\nexport const RbacError = {\n 1080: {message:\"AdminRoleNotFound\"},\n 1081: {message:\"IndexOutOfBounds\"},\n 1082: {message:\"MaxRolesExceeded\"},\n 1083: {message:\"RoleIsEmpty\"},\n 1084: {message:\"RoleNotFound\"},\n 1085: {message:\"RoleNotHeld\"},\n 1086: {message:\"Unauthorized\"}\n}\n\n\n\nexport type MultiSigStorage = {tag: \"Signers\", values: void} | {tag: \"Threshold\", values: void};\n\n\n\n\n\nexport type OwnableStorage = {tag: \"Owner\", values: void} | {tag: \"PendingOwner\", values: void};\n\n\n\n\nexport type RbacStorage = {tag: \"ExistingRoles\", values: void} | {tag: \"RoleIndexToAccount\", values: readonly [string, u32]} | {tag: \"RoleAccountToIndex\", values: readonly [string, string]} | {tag: \"RoleAccountsCount\", values: readonly [string]} | {tag: \"RoleAdmin\", values: readonly [string]};\n\n\n/**\n * TTL configuration: threshold (when to extend) and extend_to (target TTL).\n */\nexport interface TtlConfig {\n /**\n * Target TTL after extension (in ledgers).\n */\nextend_to: u32;\n /**\n * TTL threshold that triggers extension (in ledgers).\n */\nthreshold: u32;\n}\n\n\n\nexport type TtlConfigStorage = {tag: \"Frozen\", values: void} | {tag: \"Instance\", values: void} | {tag: \"Persistent\", values: void};\n\nexport type UpgradeableStorage = {tag: \"Migrating\", values: void};\n\nexport interface Client {\n /**\n * Construct and simulate a set_executor 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.\n * Adds or removes an executor based on the `active` flag.\n */\n set_executor: ({executor, active}: {executor: Buffer, active: boolean}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a set_executor_required 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.\n * Sets whether an executor is required for transactions.\n */\n set_executor_required: ({required}: {required: boolean}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a get_executors 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.\n * Returns the list of all registered executors.\n */\n get_executors: (options?: MethodOptions) => Promise<AssembledTransaction<Array<Buffer>>>\n\n /**\n * Construct and simulate a is_executor 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.\n * Checks whether a given address is a registered executor.\n */\n is_executor: ({executor}: {executor: Buffer}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<boolean>>\n\n /**\n * Construct and simulate a total_executors 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.\n * Returns the total number of registered executors.\n */\n total_executors: (options?: MethodOptions) => Promise<AssembledTransaction<u32>>\n\n /**\n * Construct and simulate a executor_required 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.\n * Returns whether an executor signature is required.\n */\n executor_required: (options?: MethodOptions) => Promise<AssembledTransaction<boolean>>\n\n /**\n * Construct and simulate a set_seed 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.\n * Updates the seed used for EIP-712 digest construction and emits an event.\n */\n set_seed: ({seed}: {seed: Buffer}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a execute_transaction 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.\n * Dispatches external contract calls. All security verification happens in `__check_auth`.\n * Each call's `sub_invocations` are pre-authorized via `authorize_as_current_contract`\n * immediately before invoking, enabling deeper sub-invocations (e.g. token transfers).\n */\n execute_transaction: ({calls}: {calls: Array<Call>}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a verify_merkle_root 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.\n * Verifies a merkle root by checking expiry and validating EIP-712 signatures.\n */\n verify_merkle_root: ({merkle_root, expiry, signatures}: {merkle_root: Buffer, expiry: u64, signatures: Array<Buffer>}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a verify_transaction_proof 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.\n * Verifies a transaction's merkle proof against the given root using the current nonce.\n */\n verify_transaction_proof: ({merkle_root, transaction}: {merkle_root: Buffer, transaction: Transaction}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a encode_leaf 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.\n * Encodes a leaf node by serializing version, onesig ID, contract address, nonce, and call, then double-hashing with keccak256.\n */\n encode_leaf: ({nonce, call}: {nonce: u64, call: Call}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Buffer>>\n\n /**\n * Construct and simulate a can_execute_transaction 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.\n * Checks if the sender is authorized to execute a transaction (executor or signer when required).\n */\n can_execute_transaction: ({sender}: {sender: SenderKey}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<boolean>>\n\n /**\n * Construct and simulate a onesig_id 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.\n * Returns the unique identifier for this OneSig deployment.\n */\n onesig_id: (options?: MethodOptions) => Promise<AssembledTransaction<u64>>\n\n /**\n * Construct and simulate a nonce 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.\n * Returns the current transaction nonce.\n */\n nonce: (options?: MethodOptions) => Promise<AssembledTransaction<u64>>\n\n /**\n * Construct and simulate a seed 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.\n * Returns the current seed used for EIP-712 digest construction.\n */\n seed: (options?: MethodOptions) => Promise<AssembledTransaction<Buffer>>\n\n /**\n * Construct and simulate a 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.\n * Returns the contract version string.\n */\n version: (options?: MethodOptions) => Promise<AssembledTransaction<string>>\n\n /**\n * Construct and simulate a leaf_encoding_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.\n * Returns the leaf encoding version used for merkle proof construction.\n */\n leaf_encoding_version: (options?: MethodOptions) => Promise<AssembledTransaction<u32>>\n\n /**\n * 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.\n */\n authorizer: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>\n\n /**\n * Construct and simulate a set_signer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Adds or removes a signer from the multisig. Requires owner authorization.\n */\n set_signer: ({signer, active}: {signer: Buffer, active: boolean}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a set_threshold transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Sets the signature threshold (quorum). Requires owner authorization.\n */\n set_threshold: ({threshold}: {threshold: u32}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a get_signers transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Returns all registered signers.\n */\n get_signers: (options?: MethodOptions) => Promise<AssembledTransaction<Array<Buffer>>>\n\n /**\n * Construct and simulate a total_signers transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Returns the total number of registered signers.\n */\n total_signers: (options?: MethodOptions) => Promise<AssembledTransaction<u32>>\n\n /**\n * Construct and simulate a is_signer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Checks if an address is a registered signer.\n */\n is_signer: ({signer}: {signer: Buffer}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<boolean>>\n\n /**\n * Construct and simulate a threshold transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Returns the current signature threshold (quorum).\n */\n threshold: (options?: MethodOptions) => Promise<AssembledTransaction<u32>>\n\n /**\n * Construct and simulate a verify_signatures transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Verifies signatures against the configured threshold.\n */\n verify_signatures: ({digest, signatures}: {digest: Buffer, signatures: Array<Buffer>}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a verify_n_signatures transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Verifies signatures against a custom threshold.\n */\n verify_n_signatures: ({digest, signatures, threshold}: {digest: Buffer, signatures: Array<Buffer>, threshold: u32}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a extend_instance_ttl transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Extends the instance TTL.\n * \n * # Arguments\n * \n * * `threshold` - The threshold to extend the TTL (if current TTL is below this, extend).\n * * `extend_to` - The TTL to extend to.\n */\n extend_instance_ttl: ({threshold, extend_to}: {threshold: u32, extend_to: u32}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a set_ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Sets TTL configs for instance and persistent storage.\n * \n * - `None` values remove the corresponding config (disables auto-extension for that type)\n * - Validates that `threshold <= extend_to <= MAX_TTL`\n * \n * # Arguments\n * - `instance` - TTL config for instance storage\n * - `persistent` - TTL config for persistent storage\n * \n * # Panics\n * - `TtlConfigFrozen` if configs are frozen\n * - `InvalidTtlConfig` if validation fails\n */\n set_ttl_configs: ({instance, persistent}: {instance: Option<TtlConfig>, persistent: Option<TtlConfig>}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Returns the current TTL configs as (instance_config, persistent_config).\n */\n ttl_configs: (options?: MethodOptions) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>\n\n /**\n * Construct and simulate a freeze_ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Permanently freezes TTL configs, preventing any future modifications.\n * \n * This is irreversible and provides immutability guarantees to users.\n * Emits `TtlConfigsFrozen` event.\n * \n * # Panics\n * - `TtlConfigAlreadyFrozen` if already frozen\n */\n freeze_ttl_configs: (options?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a is_ttl_configs_frozen transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Returns whether TTL configs are frozen.\n */\n is_ttl_configs_frozen: (options?: MethodOptions) => Promise<AssembledTransaction<boolean>>\n\n}\nexport class Client extends ContractClient {\n static async deploy<T = Client>(\n /** Constructor/Initialization Args for the contract's `__constructor` method */\n {onesig_id, seed, signers, threshold, executors, executor_required}: {onesig_id: u64, seed: Buffer, signers: Array<Buffer>, threshold: u32, executors: Array<Buffer>, executor_required: boolean},\n /** Options for initializing a Client as well as for calling a method, with extras specific to deploying. */\n options: MethodOptions &\n Omit<ContractClientOptions, \"contractId\"> & {\n /** The hash of the Wasm blob, which must already be installed on-chain. */\n wasmHash: Buffer | string;\n /** Salt used to generate the contract's ID. Passed through to {@link Operation.createCustomContract}. Default: random. */\n salt?: Buffer | Uint8Array;\n /** The format used to decode `wasmHash`, if it's provided as a string. */\n format?: \"hex\" | \"base64\";\n }\n ): Promise<AssembledTransaction<T>> {\n return ContractClient.deploy({onesig_id, seed, signers, threshold, executors, executor_required}, options)\n }\n constructor(public readonly options: ContractClientOptions) {\n super(\n new ContractSpec([ \"AAAABQAAAC9FdmVudCBwdWJsaXNoZWQgd2hlbiB0aGUgc2VlZCBpcyBzZXQgb3IgdXBkYXRlZAAAAAAAAAAAB1NlZWRTZXQAAAAAAQAAAAhzZWVkX3NldAAAAAEAAAAAAAAABHNlZWQAAAPuAAAAIAAAAAAAAAAC\",\n \"AAAABQAAAC5FdmVudCBwdWJsaXNoZWQgd2hlbiBhIHRyYW5zYWN0aW9uIGlzIGV4ZWN1dGVkAAAAAAAAAAAAE1RyYW5zYWN0aW9uRXhlY3V0ZWQAAAAAAQAAABR0cmFuc2FjdGlvbl9leGVjdXRlZAAAAAIAAAAAAAAAC21lcmtsZV9yb290AAAAA+4AAAAgAAAAAAAAAAAAAAAFbm9uY2UAAAAAAAAGAAAAAAAAAAI=\",\n \"AAAABQAAADRFdmVudCBwdWJsaXNoZWQgd2hlbiBhbiBleGVjdXRvciBpcyBhZGRlZCBvciByZW1vdmVkAAAAAAAAAAtFeGVjdXRvclNldAAAAAABAAAADGV4ZWN1dG9yX3NldAAAAAIAAAAAAAAACGV4ZWN1dG9yAAAD7gAAACAAAAABAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAg==\",\n \"AAAABQAAADRFdmVudCBwdWJsaXNoZWQgd2hlbiBleGVjdXRvciByZXF1aXJlbWVudCBpcyB0b2dnbGVkAAAAAAAAABNFeGVjdXRvclJlcXVpcmVkU2V0AAAAAAEAAAAVZXhlY3V0b3JfcmVxdWlyZWRfc2V0AAAAAAAAAQAAAAAAAAAIcmVxdWlyZWQAAAABAAAAAAAAAAI=\",\n \"AAAABAAAAAAAAAAAAAAAC09uZVNpZ0Vycm9yAAAAAAkAAAAAAAAAFUV4ZWN1dG9yQWxyZWFkeUV4aXN0cwAAAAAAAAEAAAAAAAAAGkV4ZWN1dG9yQWxyZWFkeUluaXRpYWxpemVkAAAAAAACAAAAAAAAABBFeGVjdXRvck5vdEZvdW5kAAAAAwAAAAAAAAASSW52YWxpZEF1dGhDb250ZXh0AAAAAAAEAAAAAAAAABNJbnZhbGlkUHJvb2ZPck5vbmNlAAAAAAUAAAAAAAAAEU1lcmtsZVJvb3RFeHBpcmVkAAAAAAAABgAAAAAAAAARTm9uQ29udHJhY3RJbnZva2UAAAAAAAAHAAAAAAAAABRPbmx5RXhlY3V0b3JPclNpZ25lcgAAAAgAAAAAAAAAG1NpZ25lckV4ZWN1dGlvblByb29mRXhwaXJlZAAAAAAJ\",\n \"AAAAAQAAAFlBIHNpbmdsZSBTb3JvYmFuIGludm9jYXRpb24gdGhhdCB3aWxsIGJlIGV4ZWN1dGVkIGF0b21pY2FsbHkgaW5zaWRlIGEgT25lU2lnIHRyYW5zYWN0aW9uLgAAAAAAAAAAAAAEQ2FsbAAAAAQAAAA1QUJJLWVuY29kZWQgYXJndW1lbnRzIGZvcndhcmRlZCB0byB0aGUgdGFyZ2V0IG1ldGhvZC4AAAAAAAAEYXJncwAAA+oAAAAAAAAALk1ldGhvZCBpZGVudGlmaWVyIHRoYXQgd2lsbCBiZSBjYWxsZWQgb24gYHRvYC4AAAAAAARmdW5jAAAAEQAAAHpTdWItaW52b2NhdGlvbnMgdGhhdCB0aGUgT25lU2lnIGNvbnRyYWN0IG11c3QgcHJlLWF1dGhvcml6ZQp2aWEgYGF1dGhvcml6ZV9hc19jdXJyZW50X2NvbnRyYWN0YCBiZWZvcmUgaW52b2tpbmcgdGhpcyBjYWxsLgAAAAAAD3N1Yl9pbnZvY2F0aW9ucwAAAAPqAAAH0AAAABhJbnZva2VyQ29udHJhY3RBdXRoRW50cnkAAABIVGFyZ2V0IGNvbnRyYWN0IGFkZHJlc3MgKG1pcnJvcnMgYGludm9rZV9jb250cmFjdGAncyBgY29udHJhY3RBZGRyZXNzYCkuAAAAAnRvAAAAAAAT\",\n \"AAAAAQAAADpBIG1lcmtsZSBsZWFmIGRlc2NyaWJpbmcgdGhlIGNhbGwgdGhhdCBzaG91bGQgYmUgZXhlY3V0ZWQuAAAAAAAAAAAAC1RyYW5zYWN0aW9uAAAAAAIAAAAhVGhlIHNpbmdsZSBhdXRob3JpemVkIGludm9jYXRpb24uAAAAAAAABGNhbGwAAAfQAAAABENhbGwAAABLTWVya2xlIHByb29mIChzaWJsaW5nIGhhc2hlcykgcHJvdmluZyBgY2FsbGAgYmVsb25ncyB0byBhbiBhdXRob3Jpc2VkIHJvb3QuAAAAAAVwcm9vZgAAAAAAA+oAAAPuAAAAIA==\",\n \"AAAAAQAAAExBY2NvdW50IEFic3RyYWN0aW9uIHBheWxvYWQgdXNlZCBieSBgX19jaGVja19hdXRoYCB0byB2YWxpZGF0ZSBhbiBleGVjdXRpb24uAAAAAAAAABNUcmFuc2FjdGlvbkF1dGhEYXRhAAAAAAUAAAA5VW5peCB0aW1lc3RhbXAgKHNlY29uZHMpIGFmdGVyIHdoaWNoIHRoZSByb290IGlzIGludmFsaWQuAAAAAAAABmV4cGlyeQAAAAAABgAAAC5BcHByb3ZlZCBtZXJrbGUgcm9vdCBjb3ZlcmluZyB0aGUgdHJhbnNhY3Rpb24uAAAAAAALbWVya2xlX3Jvb3QAAAAD7gAAACAAAAAwTWVya2xlIHByb29mIGJpbmRpbmcgdGhlIGNhbGxzIHRvIGBtZXJrbGVfcm9vdGAuAAAABXByb29mAAAAAAAD6gAAA+4AAAAgAAAASEVudGl0eSBzdWJtaXR0aW5nIHRoZSB0cmFuc2FjdGlvbiAoc2lnbmVyLCBleGVjdXRvciwgb3IgcGVybWlzc2lvbmxlc3MpLgAAAAZzZW5kZXIAAAAAB9AAAAAGU2VuZGVyAAAAAABFVGhyZXNob2xkIHNpZ25hdHVyZXMgKHLigJZz4oCWdikgY292ZXJpbmcgYG1lcmtsZV9yb290YCBhbmQgYGV4cGlyeWAuAAAAAAAACnNpZ25hdHVyZXMAAAAAA+oAAAPuAAAAQQ==\",\n \"AAAAAgAAAEhSZXByZXNlbnRzIHRoZSBlbnRpdHkgdGhhdCBpcyBhdXRob3Jpc2luZyB0aGUgYF9fY2hlY2tfYXV0aGAgaW52b2NhdGlvbi4AAAAAAAAABlNlbmRlcgAAAAAAAwAAAAEAAACqQSByZWdpc3RlcmVkIG11bHRpc2lnIHNpZ25lciBhY3RpbmcgYXMgaXRzIG93biBleGVjdXRvci4gQmluZHMgYSBzZWNwMjU2azEKYXV0aG9yaXphdGlvbiBzaWduYXR1cmUgdG8gdGhlIGVkMjU1MTkgc3VibWl0dGVyIChgZGVsZWdhdGVgKSwgcGVyIHRoZQpzaWduZXItYXMtZXhlY3V0b3Igc3BlYy4AAAAAAAZTaWduZXIAAAAAAAEAAAfQAAAAFFNpZ25lckV4ZWN1dGlvblByb29mAAAAAQAAAJJBIHJlZ2lzdGVyZWQgZXhlY3V0b3IgKGVkMjU1MTkpIHN1Ym1pdHRpbmcgdGhlIHRyYW5zYWN0aW9uLgpUaGUgdHVwbGUgaXMgYChwdWJsaWNfa2V5LCBzaWduYXR1cmUpYCB3aGVyZSB0aGUgc2lnbmF0dXJlIGNvdmVycyB0aGUgU29yb2JhbiBwYXlsb2FkLgAAAAAACEV4ZWN1dG9yAAAAAgAAA+4AAAAgAAAD7gAAAEAAAAAAAAAAUlBlcm1pc3Npb25sZXNzIGV4ZWN1dGlvbiAoYW55b25lIG1heSBzdWJtaXQgd2hlbiBgZXhlY3V0b3JfcmVxdWlyZWRgIGlzIGRpc2FibGVkKS4AAAAAAA5QZXJtaXNzaW9ubGVzcwAA\",\n \"AAAAAQAAAa9QYXlsb2FkIGJvdW5kIHRvIGEgc2lnbmVyLWFzLWV4ZWN1dG9yIHN1Ym1pc3Npb24uCgpFbmZvcmNlcyB0aGUgc3BlYydzICJzaWduZXIgYWN0aW5nIGFzIGV4ZWN1dG9yIiBndWFyYW50ZWUgb24gU3RlbGxhcjoKYSBzZWNwMjU2azEgc2lnbmVyIGNvbW1pdHMgdG8gdGhlIGVkMjU1MTkgc3VibWl0dGVyIHZpYSBgc2lnbmF0dXJlYCwgYW5kIHRoZQpzdWJtaXR0ZXIgcHJvdmVzIGNvbnRyb2wgb2YgYGRlbGVnYXRlYCB2aWEgYGRlbGVnYXRlX3Byb29mYC4gYGRlbGVnYXRlX3Byb29mYCBpcyBhClNvcm9iYW4tc3BlY2lmaWMgZmllbGQ6IGBfX2NoZWNrX2F1dGhgIGhhcyBubyBuYXRpdmUgYG1zZy5zZW5kZXJgLCBzbyBpdCBpcyBob3cgdGhpcwppbXBsZW1lbnRhdGlvbiBlbmZvcmNlcyB0aGUgc3BlYydzIGBzdWJtaXR0ZXIgPT0gZGVsZWdhdGVgIGNoZWNrLgAAAAAAAAAAFFNpZ25lckV4ZWN1dGlvblByb29mAAAABAAAAEBlZDI1NTE5IHB1YmxpYyBrZXkgKDMyIGJ5dGVzKSB0aGUgc2lnbmVyIGJpbmRzIGFzIHRoZSBzdWJtaXR0ZXIuAAAACGRlbGVnYXRlAAAD7gAAACAAAACCZWQyNTUxOSBzaWduYXR1cmUgKDY0IGJ5dGVzKSBieSBgZGVsZWdhdGVgIG92ZXIgdGhlIFNvcm9iYW4gcnVudGltZQpwYXlsb2FkIGhhc2gg4oCUIHByb3ZlcyB0aGUgc3VibWl0dGVyIGFjdHVhbGx5IGhvbGRzIHRoYXQga2V5LgAAAAAADmRlbGVnYXRlX3Byb29mAAAAAAPuAAAAQAAAAEdVbml4IHRpbWVzdGFtcCAoc2Vjb25kcykgYWZ0ZXIgd2hpY2ggYHNpZ25hdHVyZWAgY2FuIG5vIGxvbmdlciBiZSB1c2VkLgAAAAAGZXhwaXJ5AAAAAAAGAAAAj3NlY3AyNTZrMSBzaWduYXR1cmUgKHLigJZz4oCWdiwgNjUgYnl0ZXMpIG92ZXIgdGhlIEVJUC03MTIgZGlnZXN0IG9mCmBTaWduZXJFeGVjdXRpb25BdXRob3JpemF0aW9uIHsgbGVhZkhhc2gsIG1lcmtsZVJvb3QsIGRlbGVnYXRlLCBleHBpcnkgfWAuAAAAAAlzaWduYXR1cmUAAAAAAAPuAAAAQQ==\",\n \"AAAAAgAAAJpJZGVudGlmaWVyIHVzZWQgYnkgYGNhbl9leGVjdXRlX3RyYW5zYWN0aW9uYCB0byBkZXNjcmliZSB0aGUgY2FsbGVyLgpTaWduZXJzIHVzZSBFdGhlcmV1bS1zdHlsZSAyMC1ieXRlIGFkZHJlc3NlcyB3aGlsZSBleGVjdXRvcnMgdXNlIGVkMjU1MTkgcHVibGljIGtleXMuAAAAAAAAAAAACVNlbmRlcktleQAAAAAAAAIAAAABAAAAOUFuIEV0aGVyZXVtLXN0eWxlIHNpZ25lciBhZGRyZXNzICgyMCBieXRlcywgbGVmdC1wYWRkZWQpLgAAAAAAAAZTaWduZXIAAAAAAAEAAAPuAAAAFAAAAAEAAAAqQW4gZWQyNTUxOSBleGVjdXRvciBwdWJsaWMga2V5ICgzMiBieXRlcykuAAAAAAAIRXhlY3V0b3IAAAABAAAD7gAAACA=\",\n \"AAAAAAAAADdBZGRzIG9yIHJlbW92ZXMgYW4gZXhlY3V0b3IgYmFzZWQgb24gdGhlIGBhY3RpdmVgIGZsYWcuAAAAAAxzZXRfZXhlY3V0b3IAAAACAAAAAAAAAAhleGVjdXRvcgAAA+4AAAAgAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAA\",\n \"AAAAAAAAADZTZXRzIHdoZXRoZXIgYW4gZXhlY3V0b3IgaXMgcmVxdWlyZWQgZm9yIHRyYW5zYWN0aW9ucy4AAAAAABVzZXRfZXhlY3V0b3JfcmVxdWlyZWQAAAAAAAABAAAAAAAAAAhyZXF1aXJlZAAAAAEAAAAA\",\n \"AAAAAAAAAC1SZXR1cm5zIHRoZSBsaXN0IG9mIGFsbCByZWdpc3RlcmVkIGV4ZWN1dG9ycy4AAAAAAAANZ2V0X2V4ZWN1dG9ycwAAAAAAAAAAAAABAAAD6gAAA+4AAAAg\",\n \"AAAAAAAAADhDaGVja3Mgd2hldGhlciBhIGdpdmVuIGFkZHJlc3MgaXMgYSByZWdpc3RlcmVkIGV4ZWN1dG9yLgAAAAtpc19leGVjdXRvcgAAAAABAAAAAAAAAAhleGVjdXRvcgAAA+4AAAAgAAAAAQAAAAE=\",\n \"AAAAAAAAADFSZXR1cm5zIHRoZSB0b3RhbCBudW1iZXIgb2YgcmVnaXN0ZXJlZCBleGVjdXRvcnMuAAAAAAAAD3RvdGFsX2V4ZWN1dG9ycwAAAAAAAAAAAQAAAAQ=\",\n \"AAAAAAAAADJSZXR1cm5zIHdoZXRoZXIgYW4gZXhlY3V0b3Igc2lnbmF0dXJlIGlzIHJlcXVpcmVkLgAAAAAAEWV4ZWN1dG9yX3JlcXVpcmVkAAAAAAAAAAAAAAEAAAAB\",\n \"AAAAAAAAAAAAAAAMX19jaGVja19hdXRoAAAAAwAAAAAAAAARc2lnbmF0dXJlX3BheWxvYWQAAAAAAAPuAAAAIAAAAAAAAAAJYXV0aF9kYXRhAAAAAAAH0AAAABNUcmFuc2FjdGlvbkF1dGhEYXRhAAAAAAAAAAANYXV0aF9jb250ZXh0cwAAAAAAA+oAAAfQAAAAB0NvbnRleHQAAAAAAQAAA+kAAAACAAAAAw==\",\n \"AAAAAAAAAElVcGRhdGVzIHRoZSBzZWVkIHVzZWQgZm9yIEVJUC03MTIgZGlnZXN0IGNvbnN0cnVjdGlvbiBhbmQgZW1pdHMgYW4gZXZlbnQuAAAAAAAACHNldF9zZWVkAAAAAQAAAAAAAAAEc2VlZAAAA+4AAAAgAAAAAA==\",\n \"AAAAAAAAAQJEaXNwYXRjaGVzIGV4dGVybmFsIGNvbnRyYWN0IGNhbGxzLiBBbGwgc2VjdXJpdHkgdmVyaWZpY2F0aW9uIGhhcHBlbnMgaW4gYF9fY2hlY2tfYXV0aGAuCkVhY2ggY2FsbCdzIGBzdWJfaW52b2NhdGlvbnNgIGFyZSBwcmUtYXV0aG9yaXplZCB2aWEgYGF1dGhvcml6ZV9hc19jdXJyZW50X2NvbnRyYWN0YAppbW1lZGlhdGVseSBiZWZvcmUgaW52b2tpbmcsIGVuYWJsaW5nIGRlZXBlciBzdWItaW52b2NhdGlvbnMgKGUuZy4gdG9rZW4gdHJhbnNmZXJzKS4AAAAAABNleGVjdXRlX3RyYW5zYWN0aW9uAAAAAAEAAAAAAAAABWNhbGxzAAAAAAAD6gAAB9AAAAAEQ2FsbAAAAAA=\",\n \"AAAAAAAAAExWZXJpZmllcyBhIG1lcmtsZSByb290IGJ5IGNoZWNraW5nIGV4cGlyeSBhbmQgdmFsaWRhdGluZyBFSVAtNzEyIHNpZ25hdHVyZXMuAAAAEnZlcmlmeV9tZXJrbGVfcm9vdAAAAAAAAwAAAAAAAAALbWVya2xlX3Jvb3QAAAAD7gAAACAAAAAAAAAABmV4cGlyeQAAAAAABgAAAAAAAAAKc2lnbmF0dXJlcwAAAAAD6gAAA+4AAABBAAAAAA==\",\n \"AAAAAAAAAFVWZXJpZmllcyBhIHRyYW5zYWN0aW9uJ3MgbWVya2xlIHByb29mIGFnYWluc3QgdGhlIGdpdmVuIHJvb3QgdXNpbmcgdGhlIGN1cnJlbnQgbm9uY2UuAAAAAAAAGHZlcmlmeV90cmFuc2FjdGlvbl9wcm9vZgAAAAIAAAAAAAAAC21lcmtsZV9yb290AAAAA+4AAAAgAAAAAAAAAAt0cmFuc2FjdGlvbgAAAAfQAAAAC1RyYW5zYWN0aW9uAAAAAAA=\",\n \"AAAAAAAAAH1FbmNvZGVzIGEgbGVhZiBub2RlIGJ5IHNlcmlhbGl6aW5nIHZlcnNpb24sIG9uZXNpZyBJRCwgY29udHJhY3QgYWRkcmVzcywgbm9uY2UsIGFuZCBjYWxsLCB0aGVuIGRvdWJsZS1oYXNoaW5nIHdpdGgga2VjY2FrMjU2LgAAAAAAAAtlbmNvZGVfbGVhZgAAAAACAAAAAAAAAAVub25jZQAAAAAAAAYAAAAAAAAABGNhbGwAAAfQAAAABENhbGwAAAABAAAD7gAAACA=\",\n \"AAAAAAAAAF9DaGVja3MgaWYgdGhlIHNlbmRlciBpcyBhdXRob3JpemVkIHRvIGV4ZWN1dGUgYSB0cmFuc2FjdGlvbiAoZXhlY3V0b3Igb3Igc2lnbmVyIHdoZW4gcmVxdWlyZWQpLgAAAAAXY2FuX2V4ZWN1dGVfdHJhbnNhY3Rpb24AAAAAAQAAAAAAAAAGc2VuZGVyAAAAAAfQAAAACVNlbmRlcktleQAAAAAAAAEAAAAB\",\n \"AAAAAAAAADlSZXR1cm5zIHRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBPbmVTaWcgZGVwbG95bWVudC4AAAAAAAAJb25lc2lnX2lkAAAAAAAAAAAAAAEAAAAG\",\n \"AAAAAAAAACZSZXR1cm5zIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIG5vbmNlLgAAAAAABW5vbmNlAAAAAAAAAAAAAAEAAAAG\",\n \"AAAAAAAAAD5SZXR1cm5zIHRoZSBjdXJyZW50IHNlZWQgdXNlZCBmb3IgRUlQLTcxMiBkaWdlc3QgY29uc3RydWN0aW9uLgAAAAAABHNlZWQAAAAAAAAAAQAAA+4AAAAg\",\n \"AAAAAAAAACRSZXR1cm5zIHRoZSBjb250cmFjdCB2ZXJzaW9uIHN0cmluZy4AAAAHdmVyc2lvbgAAAAAAAAAAAQAAABA=\",\n \"AAAAAAAAAEVSZXR1cm5zIHRoZSBsZWFmIGVuY29kaW5nIHZlcnNpb24gdXNlZCBmb3IgbWVya2xlIHByb29mIGNvbnN0cnVjdGlvbi4AAAAAAAAVbGVhZl9lbmNvZGluZ192ZXJzaW9uAAAAAAAAAAAAAAEAAAAE\",\n \"AAAAAAAAAgVDb25zdHJ1Y3RvciB0byBpbml0aWFsaXplIHRoZSBPbmVTaWcgY29udHJhY3Qgd2l0aCBpbml0aWFsIHN0YXRlCgojIEFyZ3VtZW50cwoqIGBvbmVzaWdfaWRgIC0gVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgT25lU2lnIGRlcGxveW1lbnQKKiBgc2VlZGAgLSBJbml0aWFsIHNlZWQgdmFsdWUgZm9yIG1lcmtsZSByb290IHZlcmlmaWNhdGlvbgoqIGBzaWduZXJzYCAtIEFycmF5IG9mIGluaXRpYWwgc2lnbmVyIGFkZHJlc3NlcyAoMzIgYnl0ZXMgZWFjaCwgRXRoZXJldW0gYWRkcmVzc2VzIHBhZGRlZCkKKiBgdGhyZXNob2xkYCAtIE51bWJlciBvZiBzaWduYXR1cmVzIHJlcXVpcmVkIGZvciB0cmFuc2FjdGlvbiBleGVjdXRpb24KKiBgZXhlY3V0b3JzYCAtIEFycmF5IG9mIGluaXRpYWwgZXhlY3V0b3IgcHVibGljIGtleXMgKEJ5dGVzTjwzMj4pCiogYGV4ZWN1dG9yX3JlcXVpcmVkYCAtIFdoZXRoZXIgZXhlY3V0b3IgcGVybWlzc2lvbiBpcyByZXF1aXJlZCBmb3IgdHJhbnNhY3Rpb24gZXhlY3V0aW9uAAAAAAAADV9fY29uc3RydWN0b3IAAAAAAAAGAAAAAAAAAAlvbmVzaWdfaWQAAAAAAAAGAAAAAAAAAARzZWVkAAAD7gAAACAAAAAAAAAAB3NpZ25lcnMAAAAD6gAAA+4AAAAUAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAlleGVjdXRvcnMAAAAAAAPqAAAD7gAAACAAAAAAAAAAEWV4ZWN1dG9yX3JlcXVpcmVkAAAAAAAAAQAAAAA=\",\n \"AAAAAAAAAAAAAAAKYXV0aG9yaXplcgAAAAAAAAAAAAEAAAPoAAAAEw==\",\n \"AAAAAAAAAElBZGRzIG9yIHJlbW92ZXMgYSBzaWduZXIgZnJvbSB0aGUgbXVsdGlzaWcuIFJlcXVpcmVzIG93bmVyIGF1dGhvcml6YXRpb24uAAAAAAAACnNldF9zaWduZXIAAAAAAAIAAAAAAAAABnNpZ25lcgAAAAAD7gAAABQAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAA=\",\n \"AAAAAAAAAERTZXRzIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIChxdW9ydW0pLiBSZXF1aXJlcyBvd25lciBhdXRob3JpemF0aW9uLgAAAA1zZXRfdGhyZXNob2xkAAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAA=\",\n \"AAAAAAAAAB9SZXR1cm5zIGFsbCByZWdpc3RlcmVkIHNpZ25lcnMuAAAAAAtnZXRfc2lnbmVycwAAAAAAAAAAAQAAA+oAAAPuAAAAFA==\",\n \"AAAAAAAAAC9SZXR1cm5zIHRoZSB0b3RhbCBudW1iZXIgb2YgcmVnaXN0ZXJlZCBzaWduZXJzLgAAAAANdG90YWxfc2lnbmVycwAAAAAAAAAAAAABAAAABA==\",\n \"AAAAAAAAACxDaGVja3MgaWYgYW4gYWRkcmVzcyBpcyBhIHJlZ2lzdGVyZWQgc2lnbmVyLgAAAAlpc19zaWduZXIAAAAAAAABAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAQAAAAE=\",\n \"AAAAAAAAADFSZXR1cm5zIHRoZSBjdXJyZW50IHNpZ25hdHVyZSB0aHJlc2hvbGQgKHF1b3J1bSkuAAAAAAAACXRocmVzaG9sZAAAAAAAAAAAAAABAAAABA==\",\n \"AAAAAAAAADVWZXJpZmllcyBzaWduYXR1cmVzIGFnYWluc3QgdGhlIGNvbmZpZ3VyZWQgdGhyZXNob2xkLgAAAAAAABF2ZXJpZnlfc2lnbmF0dXJlcwAAAAAAAAIAAAAAAAAABmRpZ2VzdAAAAAAD7gAAACAAAAAAAAAACnNpZ25hdHVyZXMAAAAAA+oAAAPuAAAAQQAAAAA=\",\n \"AAAAAAAAAC9WZXJpZmllcyBzaWduYXR1cmVzIGFnYWluc3QgYSBjdXN0b20gdGhyZXNob2xkLgAAAAATdmVyaWZ5X25fc2lnbmF0dXJlcwAAAAADAAAAAAAAAAZkaWdlc3QAAAAAA+4AAAAgAAAAAAAAAApzaWduYXR1cmVzAAAAAAPqAAAD7gAAAEEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAA\",\n \"AAAAAAAAAKVFeHRlbmRzIHRoZSBpbnN0YW5jZSBUVEwuCgojIEFyZ3VtZW50cwoKKiBgdGhyZXNob2xkYCAtIFRoZSB0aHJlc2hvbGQgdG8gZXh0ZW5kIHRoZSBUVEwgKGlmIGN1cnJlbnQgVFRMIGlzIGJlbG93IHRoaXMsIGV4dGVuZCkuCiogYGV4dGVuZF90b2AgLSBUaGUgVFRMIHRvIGV4dGVuZCB0by4AAAAAAAATZXh0ZW5kX2luc3RhbmNlX3R0bAAAAAACAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAlleHRlbmRfdG8AAAAAAAAEAAAAAA==\",\n \"AAAAAAAAAY9TZXRzIFRUTCBjb25maWdzIGZvciBpbnN0YW5jZSBhbmQgcGVyc2lzdGVudCBzdG9yYWdlLgoKLSBgTm9uZWAgdmFsdWVzIHJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBjb25maWcgKGRpc2FibGVzIGF1dG8tZXh0ZW5zaW9uIGZvciB0aGF0IHR5cGUpCi0gVmFsaWRhdGVzIHRoYXQgYHRocmVzaG9sZCA8PSBleHRlbmRfdG8gPD0gTUFYX1RUTGAKCiMgQXJndW1lbnRzCi0gYGluc3RhbmNlYCAtIFRUTCBjb25maWcgZm9yIGluc3RhbmNlIHN0b3JhZ2UKLSBgcGVyc2lzdGVudGAgLSBUVEwgY29uZmlnIGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UKCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0Zyb3plbmAgaWYgY29uZmlncyBhcmUgZnJvemVuCi0gYEludmFsaWRUdGxDb25maWdgIGlmIHZhbGlkYXRpb24gZmFpbHMAAAAAD3NldF90dGxfY29uZmlncwAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAKcGVyc2lzdGVudAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAA==\",\n \"AAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAA==\",\n \"AAAAAAAAAOFQZXJtYW5lbnRseSBmcmVlemVzIFRUTCBjb25maWdzLCBwcmV2ZW50aW5nIGFueSBmdXR1cmUgbW9kaWZpY2F0aW9ucy4KClRoaXMgaXMgaXJyZXZlcnNpYmxlIGFuZCBwcm92aWRlcyBpbW11dGFiaWxpdHkgZ3VhcmFudGVlcyB0byB1c2Vycy4KRW1pdHMgYFR0bENvbmZpZ3NGcm96ZW5gIGV2ZW50LgoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnQWxyZWFkeUZyb3plbmAgaWYgYWxyZWFkeSBmcm96ZW4AAAAAAAASZnJlZXplX3R0bF9jb25maWdzAAAAAAAAAAAAAA==\",\n \"AAAAAAAAACdSZXR1cm5zIHdoZXRoZXIgVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAFWlzX3R0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAABAAAAAQ==\",\n \"AAAAAgAAAAAAAAAAAAAADU9uZVNpZ1N0b3JhZ2UAAAAAAAAFAAAAAAAAAAAAAAAJRXhlY3V0b3JzAAAAAAAAAAAAAAAAAAAQRXhlY3V0b3JSZXF1aXJlZAAAAAAAAAAAAAAACE9uZVNpZ0lkAAAAAAAAAAAAAAAEU2VlZAAAAAAAAAAAAAAABU5vbmNlAAAA\",\n \"AAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPp\",\n \"AAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/I=\",\n \"AAAABAAAAB9UdGxDb25maWd1cmFibGVFcnJvcjogMTAyMC0xMDI5AAAAAAAAAAAUVHRsQ29uZmlndXJhYmxlRXJyb3IAAAADAAAAAAAAABBJbnZhbGlkVHRsQ29uZmlnAAAD/AAAAAAAAAAPVHRsQ29uZmlnRnJvemVuAAAAA/0AAAAAAAAAFlR0bENvbmZpZ0FscmVhZHlGcm96ZW4AAAAAA/4=\",\n \"AAAABAAAABdPd25hYmxlRXJyb3I6IDEwMzAtMTAzOQAAAAAAAAAADE93bmFibGVFcnJvcgAAAAcAAAAAAAAAEUludmFsaWRBdXRob3JpemVyAAAAAAAEBgAAAAAAAAATSW52YWxpZFBlbmRpbmdPd25lcgAAAAQHAAAAAAAAAApJbnZhbGlkVHRsAAAAAAQIAAAAAAAAABFOb1BlbmRpbmdUcmFuc2ZlcgAAAAAABAkAAAAAAAAAD093bmVyQWxyZWFkeVNldAAAAAQKAAAAAAAAAAtPd25lck5vdFNldAAAAAQLAAAAAAAAABJUcmFuc2ZlckluUHJvZ3Jlc3MAAAAABAw=\",\n \"AAAABAAAABhCeXRlc0V4dEVycm9yOiAxMDQwLTEwNDkAAAAAAAAADUJ5dGVzRXh0RXJyb3IAAAAAAAABAAAAAAAAAA5MZW5ndGhNaXNtYXRjaAAAAAAEEA==\",\n \"AAAABAAAABtVcGdyYWRlYWJsZUVycm9yOiAxMDUwLTEwNTkAAAAAAAAAABBVcGdyYWRlYWJsZUVycm9yAAAAAgAAAAAAAAAUSW52YWxpZE1pZ3JhdGlvbkRhdGEAAAQaAAAAAAAAABNNaWdyYXRpb25Ob3RBbGxvd2VkAAAABBs=\",\n \"AAAABAAAABhNdWx0aVNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpU2lnRXJyb3IAAAAAAAAJAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAAEUludmFsaWRBdXRob3JpemVyAAAAAAAEJQAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCYAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQnAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCgAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQpAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCoAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQrAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAELA==\",\n \"AAAABAAAABRBdXRoRXJyb3I6IDEwNzAtMTA3OQAAAAAAAAAJQXV0aEVycm9yAAAAAAAAAQAAAAAAAAASQXV0aG9yaXplck5vdEZvdW5kAAAAAAQu\",\n \"AAAABAAAABRSYmFjRXJyb3I6IDEwODAtMTA4OQAAAAAAAAAJUmJhY0Vycm9yAAAAAAAABwAAAAAAAAARQWRtaW5Sb2xlTm90Rm91bmQAAAAAAAQ4AAAAAAAAABBJbmRleE91dE9mQm91bmRzAAAEOQAAAAAAAAAQTWF4Um9sZXNFeGNlZWRlZAAABDoAAAAAAAAAC1JvbGVJc0VtcHR5AAAABDsAAAAAAAAADFJvbGVOb3RGb3VuZAAABDwAAAAAAAAAC1JvbGVOb3RIZWxkAAAABD0AAAAAAAAADFVuYXV0aG9yaXplZAAABD4=\",\n \"AAAABQAAADBFdmVudCBlbWl0dGVkIHdoZW4gYSBzaWduZXIgaXMgYWRkZWQgb3IgcmVtb3ZlZC4AAAAAAAAACVNpZ25lclNldAAAAAAAAAEAAAAKc2lnbmVyX3NldAAAAAAAAgAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAAC\",\n \"AAAABQAAADZFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNpZ25hdHVyZSB0aHJlc2hvbGQgaXMgY2hhbmdlZC4AAAAAAAAAAAAMVGhyZXNob2xkU2V0AAAAAQAAAA10aHJlc2hvbGRfc2V0AAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAC\",\n \"AAAAAgAAAAAAAAAAAAAAD011bHRpU2lnU3RvcmFnZQAAAAACAAAAAAAAAAAAAAAHU2lnbmVycwAAAAAAAAAAAAAAAAlUaHJlc2hvbGQAAAA=\",\n \"AAAABQAAAFdFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIChib3RoIHNpbmdsZS1zdGVwIGFuZCB0d28tc3RlcCBjb21wbGV0aW9uKS4AAAAAAAAAABRPd25lcnNoaXBUcmFuc2ZlcnJlZAAAAAEAAAAVb3duZXJzaGlwX3RyYW5zZmVycmVkAAAAAAAAAgAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAg==\",\n \"AAAABQAAADtFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIHByb3Bvc2VkLgAAAAAAAAAAFU93bmVyc2hpcFRyYW5zZmVycmluZwAAAAAAAAEAAAAWb3duZXJzaGlwX3RyYW5zZmVycmluZwAAAAAAAwAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAAN0dGwAAAAABAAAAAAAAAAC\",\n \"AAAABQAAADxFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIGNhbmNlbGxlZC4AAAAAAAAAGk93bmVyc2hpcFRyYW5zZmVyQ2FuY2VsbGVkAAAAAAABAAAAHG93bmVyc2hpcF90cmFuc2Zlcl9jYW5jZWxsZWQAAAACAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAAAAAAABdjYW5jZWxsZWRfcGVuZGluZ19vd25lcgAAAAATAAAAAAAAAAI=\",\n \"AAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHJlbm91bmNlZC4AAAAAAAAAAAAST3duZXJzaGlwUmVub3VuY2VkAAAAAAABAAAAE293bmVyc2hpcF9yZW5vdW5jZWQAAAAAAQAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAC\",\n \"AAAAAgAAAAAAAAAAAAAADk93bmFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAFT3duZXIAAAAAAAAAAAAAAAAAAAxQZW5kaW5nT3duZXI=\",\n \"AAAABQAAACVFdmVudCBlbWl0dGVkIHdoZW4gYSByb2xlIGlzIGdyYW50ZWQuAAAAAAAAAAAAAAtSb2xlR3JhbnRlZAAAAAABAAAADHJvbGVfZ3JhbnRlZAAAAAMAAAAAAAAABHJvbGUAAAARAAAAAQAAAAAAAAAHYWNjb3VudAAAAAATAAAAAQAAAAAAAAAGY2FsbGVyAAAAAAATAAAAAAAAAAI=\",\n \"AAAABQAAACVFdmVudCBlbWl0dGVkIHdoZW4gYSByb2xlIGlzIHJldm9rZWQuAAAAAAAAAAAAAAtSb2xlUmV2b2tlZAAAAAABAAAADHJvbGVfcmV2b2tlZAAAAAMAAAAAAAAABHJvbGUAAAARAAAAAQAAAAAAAAAHYWNjb3VudAAAAAATAAAAAQAAAAAAAAAGY2FsbGVyAAAAAAATAAAAAAAAAAI=\",\n \"AAAABQAAACtFdmVudCBlbWl0dGVkIHdoZW4gYSByb2xlIGFkbWluIGlzIGNoYW5nZWQuAAAAAAAAAAAQUm9sZUFkbWluQ2hhbmdlZAAAAAEAAAAScm9sZV9hZG1pbl9jaGFuZ2VkAAAAAAADAAAAAAAAAARyb2xlAAAAEQAAAAEAAAAAAAAAE3ByZXZpb3VzX2FkbWluX3JvbGUAAAAD6AAAABEAAAAAAAAAAAAAAA5uZXdfYWRtaW5fcm9sZQAAAAAD6AAAABEAAAAAAAAAAg==\",\n \"AAAAAgAAAAAAAAAAAAAAC1JiYWNTdG9yYWdlAAAAAAUAAAAAAAAAAAAAAA1FeGlzdGluZ1JvbGVzAAAAAAAAAQAAAAAAAAASUm9sZUluZGV4VG9BY2NvdW50AAAAAAACAAAAEQAAAAQAAAABAAAAAAAAABJSb2xlQWNjb3VudFRvSW5kZXgAAAAAAAIAAAARAAAAEwAAAAEAAAAAAAAAEVJvbGVBY2NvdW50c0NvdW50AAAAAAAAAQAAABEAAAABAAAAAAAAAAlSb2xlQWRtaW4AAAAAAAABAAAAEQ==\",\n \"AAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQ=\",\n \"AAAABQAAACdFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIHNldC4AAAAAAAAAAA1UdGxDb25maWdzU2V0AAAAAAAAAQAAAA90dGxfY29uZmlnc19zZXQAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAg==\",\n \"AAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAAAAAAAAQVHRsQ29uZmlnc0Zyb3plbgAAAAEAAAASdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAg==\",\n \"AAAAAgAAAAAAAAAAAAAAEFR0bENvbmZpZ1N0b3JhZ2UAAAADAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAhJbnN0YW5jZQAAAAAAAAAAAAAAClBlcnNpc3RlbnQAAA==\",\n \"AAAAAgAAAAAAAAAAAAAAElVwZ3JhZGVhYmxlU3RvcmFnZQAAAAAAAQAAAAAAAAAAAAAACU1pZ3JhdGluZwAAAA==\" ]),\n options\n )\n }\n public readonly fromJSON = {\n set_executor: this.txFromJSON<null>,\n set_executor_required: this.txFromJSON<null>,\n get_executors: this.txFromJSON<Array<Buffer>>,\n is_executor: this.txFromJSON<boolean>,\n total_executors: this.txFromJSON<u32>,\n executor_required: this.txFromJSON<boolean>,\n set_seed: this.txFromJSON<null>,\n execute_transaction: this.txFromJSON<null>,\n verify_merkle_root: this.txFromJSON<null>,\n verify_transaction_proof: this.txFromJSON<null>,\n encode_leaf: this.txFromJSON<Buffer>,\n can_execute_transaction: this.txFromJSON<boolean>,\n onesig_id: this.txFromJSON<u64>,\n nonce: this.txFromJSON<u64>,\n seed: this.txFromJSON<Buffer>,\n version: this.txFromJSON<string>,\n leaf_encoding_version: this.txFromJSON<u32>,\n authorizer: this.txFromJSON<Option<string>>,\n set_signer: this.txFromJSON<null>,\n set_threshold: this.txFromJSON<null>,\n get_signers: this.txFromJSON<Array<Buffer>>,\n total_signers: this.txFromJSON<u32>,\n is_signer: this.txFromJSON<boolean>,\n threshold: this.txFromJSON<u32>,\n verify_signatures: this.txFromJSON<null>,\n verify_n_signatures: this.txFromJSON<null>,\n extend_instance_ttl: this.txFromJSON<null>,\n set_ttl_configs: this.txFromJSON<null>,\n ttl_configs: this.txFromJSON<readonly [Option<TtlConfig>, Option<TtlConfig>]>,\n freeze_ttl_configs: this.txFromJSON<null>,\n is_ttl_configs_frozen: this.txFromJSON<boolean>\n }\n}"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createSetExecutorCall, createSetSeedCall, createSetThresholdCall, createSetSignerCall } from './
|
|
2
|
-
import { __name } from './
|
|
1
|
+
import { createSetExecutorCall, createSetSeedCall, createSetThresholdCall, createSetSignerCall } from './IUVQYPSY.js';
|
|
2
|
+
import { __name } from './VUOMXK5T.js';
|
|
3
3
|
import { hexToBytes } from '@layerzerolabs/common-encoding-utils';
|
|
4
4
|
|
|
5
5
|
function toConfigChangeCall(chainName, call) {
|
|
@@ -35,5 +35,5 @@ function generateStellarConfigChangeCall(operation, contractAddress, chainName,
|
|
|
35
35
|
__name(generateStellarConfigChangeCall, "generateStellarConfigChangeCall");
|
|
36
36
|
|
|
37
37
|
export { generateStellarConfigChangeCall };
|
|
38
|
-
//# sourceMappingURL=
|
|
39
|
-
//# sourceMappingURL=
|
|
38
|
+
//# sourceMappingURL=ITLGJNV3.js.map
|
|
39
|
+
//# sourceMappingURL=ITLGJNV3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/configChangeCalls.ts"],"names":["toConfigChangeCall","chainName","call","to","contractAddress","value","data","JSON","stringify","functionName","args","map","arg","toXDR","generateStellarConfigChangeCall","operation","params","createSetSignerCall","Buffer","from","hexToBytes","address","createSetThresholdCall","threshold","createSetSeedCall","seed","createSetExecutorCall","Error"],"mappings":";;;;AAkBA,SAASA,kBAAAA,CAAmBC,WAAmBC,IAAAA,EAAiB;AAC5D,EAAA,OAAO;AACHD,IAAAA,SAAAA;AACAE,IAAAA,EAAAA,EAAID,IAAAA,CAAKE,eAAAA;IACTC,KAAAA,EAAO,GAAA;AACPC,IAAAA,IAAAA,EAAMC,KAAKC,SAAAA,CAAU;AACjBC,MAAAA,YAAAA,EAAcP,IAAAA,CAAKO,YAAAA;MACnBC,IAAAA,EAAMR,IAAAA,CAAKQ,KAAKC,GAAAA,CAAI,CAACC,QAAQA,GAAAA,CAAIC,KAAAA,CAAM,QAAA,CAAA;KAC3C;AACJ,GAAA;AACJ;AAVSb,MAAAA,CAAAA,kBAAAA,EAAAA,oBAAAA,CAAAA;AAwBF,SAASc,+BAAAA,CACZC,SAAAA,EACAX,eAAAA,EACAH,SAAAA,EACAe,MAAAA,EAA+B;AAE/B,EAAA,QAAQD,SAAAA;IACJ,KAAK,WAAA;AACD,MAAA,OAAOf,kBAAAA,CACHC,SAAAA,EACAgB,mBAAAA,CACIC,MAAAA,CAAOC,IAAAA,CAAKC,UAAAA,CAAWJ,MAAAA,CAAOK,OAAO,CAAA,CAAA,EACrC,IAAA,EACAjB,eAAAA,CAAAA,CAAAA;IAGZ,KAAK,cAAA;AACD,MAAA,OAAOJ,kBAAAA,CACHC,SAAAA,EACAgB,mBAAAA,CACIC,MAAAA,CAAOC,IAAAA,CAAKC,UAAAA,CAAWJ,MAAAA,CAAOK,OAAO,CAAA,CAAA,EACrC,KAAA,EACAjB,eAAAA,CAAAA,CAAAA;IAGZ,KAAK,cAAA;AACD,MAAA,OAAOJ,mBACHC,SAAAA,EACAqB,sBAAAA,CAAuBN,MAAAA,CAAOO,SAAAA,EAAqBnB,eAAAA,CAAAA,CAAAA;IAE3D,KAAK,SAAA;AACD,MAAA,OAAOJ,kBAAAA,CACHC,SAAAA,EACAuB,iBAAAA,CAAkBN,MAAAA,CAAOC,IAAAA,CAAKC,UAAAA,CAAWJ,MAAAA,CAAOS,IAAI,CAAA,CAAA,EAAcrB,eAAAA,CAAAA,CAAAA;IAE1E,KAAK,aAAA;AACD,MAAA,OAAOJ,kBAAAA,CACHC,SAAAA,EACAyB,qBAAAA,CACIR,MAAAA,CAAOC,IAAAA,CAAKC,UAAAA,CAAWJ,MAAAA,CAAOK,OAAO,CAAA,CAAA,EACrC,IAAA,EACAjB,eAAAA,CAAAA,CAAAA;IAGZ,KAAK,gBAAA;AACD,MAAA,OAAOJ,kBAAAA,CACHC,SAAAA,EACAyB,qBAAAA,CACIR,MAAAA,CAAOC,IAAAA,CAAKC,UAAAA,CAAWJ,MAAAA,CAAOK,OAAO,CAAA,CAAA,EACrC,KAAA,EACAjB,eAAAA,CAAAA,CAAAA;AAGZ,IAAA;AACI,MAAA,MAAM,IAAIuB,KAAAA,CAAM,CAAA,6CAAA,EAAgDZ,SAAAA,CAAAA,CAAW,CAAA;AACnF;AACJ;AAxDgBD,MAAAA,CAAAA,+BAAAA,EAAAA,iCAAAA,CAAAA","file":"ITLGJNV3.js","sourcesContent":["import { hexToBytes } from '@layerzerolabs/common-encoding-utils';\nimport type { ConfigChangeOperation, OneSigConfigChangeCall } from '@layerzerolabs/onesig-model';\n\nimport {\n createSetExecutorCall,\n createSetSeedCall,\n createSetSignerCall,\n createSetThresholdCall,\n} from './calls';\nimport type { StellarCall } from './leafGenerator';\n\n/**\n * Serialize a Stellar call into the normalized `OneSigConfigChangeCall` shape.\n *\n * The `data` field carries a JSON object `{ functionName, args }` where each\n * arg is the base64-encoded XDR of the `ScVal`. The downstream `toStellarCall`\n * shaper parses this format.\n */\nfunction toConfigChangeCall(chainName: string, call: StellarCall): OneSigConfigChangeCall {\n return {\n chainName,\n to: call.contractAddress,\n value: '0',\n data: JSON.stringify({\n functionName: call.functionName,\n args: call.args.map((arg) => arg.toXDR('base64')),\n }),\n };\n}\n\n/**\n * Generate a Stellar config-change call for a single chain.\n *\n * @param operation - The config-change operation.\n * @param contractAddress - The OneSig contract address on this chain (C...).\n * @param chainName - The chain name (e.g. \"stellar-mainnet\").\n * @param params - Operation-specific parameters:\n * - setSigner / removeSigner: `{ address: string }` (hex-encoded 32-byte key)\n * - setThreshold: `{ threshold: number }`\n * - setSeed: `{ seed: string }` (hex-encoded 32 bytes)\n * - setExecutor / removeExecutor: `{ address: string }` (hex-encoded 32-byte key)\n */\nexport function generateStellarConfigChangeCall(\n operation: ConfigChangeOperation,\n contractAddress: string,\n chainName: string,\n params: Record<string, unknown>,\n): OneSigConfigChangeCall {\n switch (operation) {\n case 'setSigner':\n return toConfigChangeCall(\n chainName,\n createSetSignerCall(\n Buffer.from(hexToBytes(params.address as string)),\n true,\n contractAddress,\n ),\n );\n case 'removeSigner':\n return toConfigChangeCall(\n chainName,\n createSetSignerCall(\n Buffer.from(hexToBytes(params.address as string)),\n false,\n contractAddress,\n ),\n );\n case 'setThreshold':\n return toConfigChangeCall(\n chainName,\n createSetThresholdCall(params.threshold as number, contractAddress),\n );\n case 'setSeed':\n return toConfigChangeCall(\n chainName,\n createSetSeedCall(Buffer.from(hexToBytes(params.seed as string)), contractAddress),\n );\n case 'setExecutor':\n return toConfigChangeCall(\n chainName,\n createSetExecutorCall(\n Buffer.from(hexToBytes(params.address as string)),\n true,\n contractAddress,\n ),\n );\n case 'removeExecutor':\n return toConfigChangeCall(\n chainName,\n createSetExecutorCall(\n Buffer.from(hexToBytes(params.address as string)),\n false,\n contractAddress,\n ),\n );\n default:\n throw new Error(`Unsupported Stellar config change operation: ${operation}`);\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __name } from './
|
|
1
|
+
import { __name } from './VUOMXK5T.js';
|
|
2
2
|
import { xdr, Address } from '@stellar/stellar-sdk';
|
|
3
3
|
|
|
4
4
|
var scMapEntry = /* @__PURE__ */ __name((key, val) => new xdr.ScMapEntry({
|
|
@@ -75,5 +75,5 @@ function createSetSignerCall(signerAddress, active, contractAddress) {
|
|
|
75
75
|
__name(createSetSignerCall, "createSetSignerCall");
|
|
76
76
|
|
|
77
77
|
export { createExecuteTransactionCall, createSetExecutorCall, createSetExecutorRequiredCall, createSetSeedCall, createSetSignerCall, createSetThresholdCall };
|
|
78
|
-
//# sourceMappingURL=
|
|
79
|
-
//# sourceMappingURL=
|
|
78
|
+
//# sourceMappingURL=IUVQYPSY.js.map
|
|
79
|
+
//# sourceMappingURL=IUVQYPSY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/calls.ts"],"names":["scMapEntry","key","val","xdr","ScMapEntry","ScVal","scvSymbol","createExecuteTransactionCall","oneSigAddress","calls","callsScVal","scvVec","map","call","scvMap","args","func","sub_invocations","Address","fromString","to","toScVal","contractAddress","functionName","createSetSeedCall","newSeed","scvBytes","createSetExecutorCall","executor","active","scvBool","createSetExecutorRequiredCall","required","createSetThresholdCall","newThreshold","scvU32","createSetSignerCall","signerAddress"],"mappings":"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","file":"IUVQYPSY.js","sourcesContent":["import { Address, xdr } from '@stellar/stellar-sdk';\n\nimport { type Call } from './generated/index';\nimport { type StellarCall } from './leafGenerator';\n\n/** Build an `(symbol => value)` ScMap entry. */\nconst scMapEntry = (key: string, val: xdr.ScVal) =>\n new xdr.ScMapEntry({ key: xdr.ScVal.scvSymbol(key), val });\n\n/**\n * Bundle multiple external calls into a single `execute_transaction` self-call\n * (the OneSig multicall path).\n *\n * A OneSig merkle leaf authorizes exactly one self-call on the OneSig contract.\n * To dispatch several external calls under one leaf, wrap them as the `calls`\n * argument of `execute_transaction`; the OneSig contract is the direct invoker\n * of each, so they need no separate OneSig auth.\n *\n * The inner calls use the generated {@link Call} type so they mirror the\n * contract's `Call` struct exactly (`to`, `func`, `args`, `sub_invocations`).\n * Each `Call` is encoded as an ScMap by hand rather than via `nativeToScVal`,\n * because the spec cannot serialize the `InvokerContractAuthEntry` values in\n * `sub_invocations`; the hand-rolled encoding is byte-identical to what the\n * generated client submits, and additionally supports nested pre-authorization.\n *\n * The returned {@link StellarCall} is consumed by the leaf generator's\n * `encodeCalls` exactly like any other self-call.\n *\n * @param oneSigAddress - The OneSig contract address (C...); the wrapper's target.\n * @param calls - External calls to execute atomically inside `execute_transaction`.\n */\nexport function createExecuteTransactionCall(oneSigAddress: string, calls: Call[]): StellarCall {\n // ScMap keys must be sorted; Call fields are alphabetical: args, func, sub_invocations, to.\n const callsScVal = xdr.ScVal.scvVec(\n calls.map((call) =>\n xdr.ScVal.scvMap([\n scMapEntry('args', xdr.ScVal.scvVec(call.args)),\n scMapEntry('func', xdr.ScVal.scvSymbol(call.func)),\n scMapEntry('sub_invocations', xdr.ScVal.scvVec(call.sub_invocations)),\n scMapEntry('to', Address.fromString(call.to).toScVal()),\n ]),\n ),\n );\n\n return {\n contractAddress: oneSigAddress,\n functionName: 'execute_transaction',\n args: [callsScVal],\n };\n}\n\n/**\n * Create a call to set the seed value\n */\nexport function createSetSeedCall(newSeed: Buffer, contractAddress: string): StellarCall {\n return {\n contractAddress,\n functionName: 'set_seed',\n args: [xdr.ScVal.scvBytes(newSeed)],\n };\n}\n\n/**\n * Create a call to set an executor\n */\nexport function createSetExecutorCall(\n executor: Buffer,\n active: boolean,\n contractAddress: string,\n): StellarCall {\n return {\n contractAddress,\n functionName: 'set_executor',\n args: [xdr.ScVal.scvBytes(executor), xdr.ScVal.scvBool(active)],\n };\n}\n\n/**\n * Create a call to set executor required flag\n */\nexport function createSetExecutorRequiredCall(\n required: boolean,\n contractAddress: string,\n): StellarCall {\n return {\n contractAddress,\n functionName: 'set_executor_required',\n args: [xdr.ScVal.scvBool(required)],\n };\n}\n\n/**\n * Create a call to set the threshold\n */\nexport function createSetThresholdCall(newThreshold: number, contractAddress: string): StellarCall {\n return {\n contractAddress,\n functionName: 'set_threshold',\n args: [xdr.ScVal.scvU32(newThreshold)],\n };\n}\n\n/**\n * Create a call to set a signer\n */\nexport function createSetSignerCall(\n signerAddress: Buffer,\n active: boolean,\n contractAddress: string,\n): StellarCall {\n return {\n contractAddress,\n functionName: 'set_signer',\n args: [xdr.ScVal.scvBytes(signerAddress), xdr.ScVal.scvBool(active)],\n };\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Client } from './
|
|
2
|
-
import { __name } from './
|
|
1
|
+
import { Client } from './DFOGK2XD.js';
|
|
2
|
+
import { __name } from './VUOMXK5T.js';
|
|
3
3
|
import { Address, StrKey } from '@stellar/stellar-sdk';
|
|
4
4
|
|
|
5
5
|
var ONE_SIG_SPEC = new Client({
|
|
@@ -47,5 +47,5 @@ function stellarLeafGenerator(leafs) {
|
|
|
47
47
|
__name(stellarLeafGenerator, "stellarLeafGenerator");
|
|
48
48
|
|
|
49
49
|
export { stellarLeafGenerator };
|
|
50
|
-
//# sourceMappingURL=
|
|
51
|
-
//# sourceMappingURL=
|
|
50
|
+
//# sourceMappingURL=KNIDOCFI.js.map
|
|
51
|
+
//# sourceMappingURL=KNIDOCFI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/leafGenerator.ts"],"names":["ONE_SIG_SPEC","Client","contractId","rpcUrl","networkPassphrase","allowHttp","spec","callInput","getFunc","inputs","find","input","name","toString","Error","CALL_TYPE","type","stellarLeafGenerator","leafs","encodeAddress","address","StrKey","decodeContract","encodeCalls","calls","length","call","callObject","to","Address","fromString","contractAddress","func","functionName","args","sub_invocations","nativeToScVal","toXDR"],"mappings":";;;;AAWA,IAAMA,YAAAA,GAAe,IAAIC,MAAAA,CAAO;EAC5BC,UAAAA,EAAY,EAAA;EACZC,MAAAA,EAAQ,kBAAA;EACRC,iBAAAA,EAAmB,EAAA;EACnBC,SAAAA,EAAW;AACf,CAAA,CAAA,CAAGC,IAAAA;AACH,IAAMC,SAAAA,GAAYP,YAAAA,CAAaQ,OAAAA,CAAQ,aAAA,EAClCC,MAAAA,EAAM,CACNC,IAAAA,CAAK,CAACC,UAAqCA,KAAAA,CAAMC,IAAAA,EAAI,CAAGC,QAAAA,OAAe,MAAA,CAAA;AAC5E,IAAI,CAACN,SAAAA,EAAW,MAAM,IAAIO,MAAM,uDAAA,CAAA;AAChC,IAAMC,SAAAA,GAAYR,UAAUS,IAAAA,EAAI;AA4BzB,SAASC,qBACZC,KAAAA,EAAwB;AAExB,EAAA,OAAO;AACHA,IAAAA,KAAAA;;AAGAC,IAAAA,aAAAA,CAAcC,OAAAA,EAAe;AACzB,MAAA,IAAI;AACA,QAAA,OAAOC,MAAAA,CAAOC,eAAeF,OAAAA,CAAAA;MACjC,CAAA,CAAA,MAAQ;AACJ,QAAA,MAAM,IAAIN,KAAAA,CAAM,CAAA,iCAAA,EAAoCM,OAAAA,CAAAA,gBAAAA,CAAyB,CAAA;AACjF,MAAA;AACJ,IAAA,CAAA;;;;;;;;AASAG,IAAAA,WAAAA,CAAYC,KAAAA,EAAoB;AAC5B,MAAA,IAAIA,KAAAA,CAAMC,WAAW,CAAA,EAAG;AACpB,QAAA,MAAM,IAAIX,MACN,sIACI,CAAA;AAEZ,MAAA;AAEA,MAAA,MAAMY,IAAAA,GAAOF,MAAM,CAAA,CAAA;AACnB,MAAA,MAAMG,UAAAA,GAAa;QACfC,EAAAA,EAAIC,OAAAA,CAAQC,UAAAA,CAAWJ,IAAAA,CAAKK,eAAe,CAAA;AAC3CC,QAAAA,IAAAA,EAAMN,IAAAA,CAAKO,YAAAA;AACXC,QAAAA,IAAAA,EAAMR,IAAAA,CAAKQ,IAAAA;AACXC,QAAAA,eAAAA,EAAiB;AACrB,OAAA;AAEA,MAAA,OAAOnC,YAAAA,CAAaoC,aAAAA,CAAcT,UAAAA,EAAYZ,SAAAA,EAAWsB,KAAAA,EAAK;AAClE,IAAA;AACJ,GAAA;AACJ;AAzCgBpB,MAAAA,CAAAA,oBAAAA,EAAAA,sBAAAA,CAAAA","file":"KNIDOCFI.js","sourcesContent":["import type { xdr } from '@stellar/stellar-sdk';\nimport { Address, StrKey } from '@stellar/stellar-sdk';\n\nimport { type BaseLeafData, type GenerateLeafsResult } from '@layerzerolabs/onesig-core';\n\nimport { Client } from './generated/index';\n\n// Get the contract spec and Call type at module load. Only `.spec` is used here (no\n// network call), but stellar-sdk v16 eagerly builds an RpcServer in the Client\n// constructor and validates `rpcUrl` via `new URL(...)`, so an empty string throws\n// \"Invalid URL\". Pass a syntactically valid placeholder instead.\nconst ONE_SIG_SPEC = new Client({\n contractId: '',\n rpcUrl: 'http://localhost',\n networkPassphrase: '',\n allowHttp: true,\n}).spec;\nconst callInput = ONE_SIG_SPEC.getFunc('encode_leaf')\n .inputs()\n .find((input: xdr.ScSpecFunctionInputV0) => input.name().toString() === 'call');\nif (!callInput) throw new Error('Could not find call parameter in encode_leaf function');\nconst CALL_TYPE = callInput.type();\n\n/**\n * Stellar contract call data structure\n *\n * Arguments are provided as pre-encoded ScVal[] matching the contract function's parameter types.\n * The entire Call struct (to, func, args) is encoded using nativeToScVal for XDR encoding.\n *\n * A OneSig merkle leaf authorizes exactly ONE self-call on the OneSig contract\n * (see `encodeCalls`, which rejects more than one). This is not a multicall type:\n * each `StellarCall` is a single `(contract, function, args)` invocation.\n *\n * To execute multiple calls under one leaf, you do NOT pass several `StellarCall`s.\n * Instead you make a single `execute_transaction` self-call and put the batch of\n * calls *inside* its `args`: the `calls: Vec<Call>` parameter carries them, and the\n * OneSig contract dispatches each in turn. Use `createExecuteTransactionCall` to\n * build that wrapper. So multicall lives one level down — in the `args` of a single\n * `execute_transaction` call — not in the number of `StellarCall`s per leaf.\n */\nexport interface StellarCall {\n contractAddress: string; // Soroban contract address (C...)\n functionName: string; // Function name to call\n args: xdr.ScVal[]; // Function arguments as ScVal[] matching contract parameters\n}\n\nexport type StellarLeafData = BaseLeafData<string, StellarCall>;\n\n/** Generates Stellar leaf data for OneSig Merkle tree */\nexport function stellarLeafGenerator(\n leafs: StellarLeafData[],\n): GenerateLeafsResult<StellarLeafData> {\n return {\n leafs,\n\n /** Encode OneSig contract address (C...) to 32-byte buffer */\n encodeAddress(address: string): Buffer {\n try {\n return StrKey.decodeContract(address);\n } catch {\n throw new Error(`Invalid OneSig contract address: ${address}. Expected: C...`);\n }\n },\n\n /**\n * Encode a single self-call to XDR buffer using Call encoding.\n *\n * Each leaf contains exactly one self-call (e.g. `set_seed`, `execute_transaction`).\n * To dispatch multiple external contract calls, use a single `execute_transaction`\n * call whose args carry the list of external calls.\n */\n encodeCalls(calls: StellarCall[]): Buffer {\n if (calls.length !== 1) {\n throw new Error(\n 'Stellar leaf must have exactly one self-call. ' +\n 'For multiple external calls, use execute_transaction whose args contain the call list.',\n );\n }\n\n const call = calls[0];\n const callObject = {\n to: Address.fromString(call.contractAddress),\n func: call.functionName,\n args: call.args,\n sub_invocations: [],\n };\n\n return ONE_SIG_SPEC.nativeToScVal(callObject, CALL_TYPE).toXDR();\n },\n };\n}\n"]}
|
|
@@ -2,5 +2,5 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
|
|
4
4
|
export { __name };
|
|
5
|
-
//# sourceMappingURL=
|
|
6
|
-
//# sourceMappingURL=
|
|
5
|
+
//# sourceMappingURL=VUOMXK5T.js.map
|
|
6
|
+
//# sourceMappingURL=VUOMXK5T.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"VUOMXK5T.js"}
|
package/dist/calls.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { createExecuteTransactionCall, createSetExecutorCall, createSetExecutorRequiredCall, createSetSeedCall, createSetSignerCall, createSetThresholdCall } from './IUVQYPSY.js';
|
|
2
|
+
import './VUOMXK5T.js';
|
|
3
|
+
//# sourceMappingURL=calls.js.map
|
|
4
|
+
//# sourceMappingURL=calls.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"calls.
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"calls.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"configChangeCalls.
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"configChangeCalls.js"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { AuthError, BufferReaderError, BufferWriterError, BytesExtError, Client, MultiSigError, OneSigError, OwnableError, RbacError, TtlConfigurableError, UpgradeableError, WASM_BASE64, WASM_HASH, contract, getWasmBuffer, rpc } from '../
|
|
2
|
-
import '../
|
|
3
|
-
//# sourceMappingURL=index.
|
|
4
|
-
//# sourceMappingURL=index.
|
|
1
|
+
export { AuthError, BufferReaderError, BufferWriterError, BytesExtError, Client, MultiSigError, OneSigError, OwnableError, RbacError, TtlConfigurableError, UpgradeableError, WASM_BASE64, WASM_HASH, contract, getWasmBuffer, rpc } from '../DFOGK2XD.js';
|
|
2
|
+
import '../VUOMXK5T.js';
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { generateStellarConfigChangeCall } from './ITLGJNV3.js';
|
|
2
|
+
export { createExecuteTransactionCall, createSetExecutorCall, createSetExecutorRequiredCall, createSetSeedCall, createSetSignerCall, createSetThresholdCall } from './IUVQYPSY.js';
|
|
3
|
+
export { stellarLeafGenerator } from './KNIDOCFI.js';
|
|
4
|
+
export { AuthError, BufferReaderError, BufferWriterError, BytesExtError, Client, MultiSigError, OneSigError, OwnableError, RbacError, TtlConfigurableError, UpgradeableError, WASM_BASE64, WASM_HASH, contract, getWasmBuffer, rpc } from './DFOGK2XD.js';
|
|
5
|
+
import './VUOMXK5T.js';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"leafGenerator.
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"leafGenerator.js"}
|
package/package.json
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@layerzerolabs/onesig-stellar-sdk",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.37",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "TypeScript SDK for OneSig Stellar contract",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"exports": {
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
9
|
-
"import": "./dist/index.
|
|
10
|
-
"require": "./dist/index.
|
|
11
|
-
"default": "./dist/index.
|
|
9
|
+
"import": "./dist/index.js",
|
|
10
|
+
"require": "./dist/index.js",
|
|
11
|
+
"default": "./dist/index.js"
|
|
12
12
|
},
|
|
13
|
-
"main": "./dist/index.
|
|
14
|
-
"module": "./dist/index.
|
|
13
|
+
"main": "./dist/index.js",
|
|
14
|
+
"module": "./dist/index.js",
|
|
15
15
|
"types": "./dist/index.d.ts",
|
|
16
16
|
"files": [
|
|
17
17
|
"dist"
|
|
18
18
|
],
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@stellar/stellar-sdk": "^16.0.1",
|
|
21
|
-
"@layerzerolabs/common-encoding-utils": "1.2.
|
|
22
|
-
"@layerzerolabs/onesig-core": "1.2.
|
|
23
|
-
"@layerzerolabs/onesig-model": "1.2.
|
|
21
|
+
"@layerzerolabs/common-encoding-utils": "1.2.37",
|
|
22
|
+
"@layerzerolabs/onesig-core": "1.2.37",
|
|
23
|
+
"@layerzerolabs/onesig-model": "1.2.37"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"ethers": "^5.8.0",
|
|
@@ -28,11 +28,11 @@
|
|
|
28
28
|
"tsx": "^4.21.0",
|
|
29
29
|
"typescript": "^6.0.3",
|
|
30
30
|
"vitest": "^4.1.10",
|
|
31
|
-
"@layerzerolabs/
|
|
32
|
-
"@layerzerolabs/stellar-
|
|
33
|
-
"@layerzerolabs/tsup-configuration": "1.2.
|
|
34
|
-
"@layerzerolabs/
|
|
35
|
-
"@layerzerolabs/
|
|
31
|
+
"@layerzerolabs/stellar-ts-bindings-gen": "1.2.37",
|
|
32
|
+
"@layerzerolabs/onesig-stellar-contracts": "1.2.37",
|
|
33
|
+
"@layerzerolabs/tsup-configuration": "1.2.37",
|
|
34
|
+
"@layerzerolabs/vm-tooling-stellar": "1.2.37",
|
|
35
|
+
"@layerzerolabs/typescript-configuration": "1.2.37"
|
|
36
36
|
},
|
|
37
37
|
"publishConfig": {
|
|
38
38
|
"access": "public",
|
package/dist/CT3BLMHC.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/leafGenerator.ts"],"names":["ONE_SIG_SPEC","Client","contractId","rpcUrl","networkPassphrase","allowHttp","spec","callInput","getFunc","inputs","find","input","name","toString","Error","CALL_TYPE","type","stellarLeafGenerator","leafs","encodeAddress","address","StrKey","decodeContract","encodeCalls","calls","length","call","callObject","to","Address","fromString","contractAddress","func","functionName","args","sub_invocations","nativeToScVal","toXDR"],"mappings":";;;;AAWA,IAAMA,YAAAA,GAAe,IAAIC,MAAAA,CAAO;EAC5BC,UAAAA,EAAY,EAAA;EACZC,MAAAA,EAAQ,kBAAA;EACRC,iBAAAA,EAAmB,EAAA;EACnBC,SAAAA,EAAW;AACf,CAAA,CAAA,CAAGC,IAAAA;AACH,IAAMC,SAAAA,GAAYP,YAAAA,CAAaQ,OAAAA,CAAQ,aAAA,EAClCC,MAAAA,EAAM,CACNC,IAAAA,CAAK,CAACC,UAAqCA,KAAAA,CAAMC,IAAAA,EAAI,CAAGC,QAAAA,OAAe,MAAA,CAAA;AAC5E,IAAI,CAACN,SAAAA,EAAW,MAAM,IAAIO,MAAM,uDAAA,CAAA;AAChC,IAAMC,SAAAA,GAAYR,UAAUS,IAAAA,EAAI;AA4BzB,SAASC,qBACZC,KAAAA,EAAwB;AAExB,EAAA,OAAO;AACHA,IAAAA,KAAAA;;AAGAC,IAAAA,aAAAA,CAAcC,OAAAA,EAAe;AACzB,MAAA,IAAI;AACA,QAAA,OAAOC,MAAAA,CAAOC,eAAeF,OAAAA,CAAAA;MACjC,CAAA,CAAA,MAAQ;AACJ,QAAA,MAAM,IAAIN,KAAAA,CAAM,CAAA,iCAAA,EAAoCM,OAAAA,CAAAA,gBAAAA,CAAyB,CAAA;AACjF,MAAA;AACJ,IAAA,CAAA;;;;;;;;AASAG,IAAAA,WAAAA,CAAYC,KAAAA,EAAoB;AAC5B,MAAA,IAAIA,KAAAA,CAAMC,WAAW,CAAA,EAAG;AACpB,QAAA,MAAM,IAAIX,MACN,sIACI,CAAA;AAEZ,MAAA;AAEA,MAAA,MAAMY,IAAAA,GAAOF,MAAM,CAAA,CAAA;AACnB,MAAA,MAAMG,UAAAA,GAAa;QACfC,EAAAA,EAAIC,OAAAA,CAAQC,UAAAA,CAAWJ,IAAAA,CAAKK,eAAe,CAAA;AAC3CC,QAAAA,IAAAA,EAAMN,IAAAA,CAAKO,YAAAA;AACXC,QAAAA,IAAAA,EAAMR,IAAAA,CAAKQ,IAAAA;AACXC,QAAAA,eAAAA,EAAiB;AACrB,OAAA;AAEA,MAAA,OAAOnC,YAAAA,CAAaoC,aAAAA,CAAcT,UAAAA,EAAYZ,SAAAA,EAAWsB,KAAAA,EAAK;AAClE,IAAA;AACJ,GAAA;AACJ;AAzCgBpB,MAAAA,CAAAA,oBAAAA,EAAAA,sBAAAA,CAAAA","file":"CT3BLMHC.mjs","sourcesContent":["import type { xdr } from '@stellar/stellar-sdk';\nimport { Address, StrKey } from '@stellar/stellar-sdk';\n\nimport { type BaseLeafData, type GenerateLeafsResult } from '@layerzerolabs/onesig-core';\n\nimport { Client } from './generated/index';\n\n// Get the contract spec and Call type at module load. Only `.spec` is used here (no\n// network call), but stellar-sdk v16 eagerly builds an RpcServer in the Client\n// constructor and validates `rpcUrl` via `new URL(...)`, so an empty string throws\n// \"Invalid URL\". Pass a syntactically valid placeholder instead.\nconst ONE_SIG_SPEC = new Client({\n contractId: '',\n rpcUrl: 'http://localhost',\n networkPassphrase: '',\n allowHttp: true,\n}).spec;\nconst callInput = ONE_SIG_SPEC.getFunc('encode_leaf')\n .inputs()\n .find((input: xdr.ScSpecFunctionInputV0) => input.name().toString() === 'call');\nif (!callInput) throw new Error('Could not find call parameter in encode_leaf function');\nconst CALL_TYPE = callInput.type();\n\n/**\n * Stellar contract call data structure\n *\n * Arguments are provided as pre-encoded ScVal[] matching the contract function's parameter types.\n * The entire Call struct (to, func, args) is encoded using nativeToScVal for XDR encoding.\n *\n * A OneSig merkle leaf authorizes exactly ONE self-call on the OneSig contract\n * (see `encodeCalls`, which rejects more than one). This is not a multicall type:\n * each `StellarCall` is a single `(contract, function, args)` invocation.\n *\n * To execute multiple calls under one leaf, you do NOT pass several `StellarCall`s.\n * Instead you make a single `execute_transaction` self-call and put the batch of\n * calls *inside* its `args`: the `calls: Vec<Call>` parameter carries them, and the\n * OneSig contract dispatches each in turn. Use `createExecuteTransactionCall` to\n * build that wrapper. So multicall lives one level down — in the `args` of a single\n * `execute_transaction` call — not in the number of `StellarCall`s per leaf.\n */\nexport interface StellarCall {\n contractAddress: string; // Soroban contract address (C...)\n functionName: string; // Function name to call\n args: xdr.ScVal[]; // Function arguments as ScVal[] matching contract parameters\n}\n\nexport type StellarLeafData = BaseLeafData<string, StellarCall>;\n\n/** Generates Stellar leaf data for OneSig Merkle tree */\nexport function stellarLeafGenerator(\n leafs: StellarLeafData[],\n): GenerateLeafsResult<StellarLeafData> {\n return {\n leafs,\n\n /** Encode OneSig contract address (C...) to 32-byte buffer */\n encodeAddress(address: string): Buffer {\n try {\n return StrKey.decodeContract(address);\n } catch {\n throw new Error(`Invalid OneSig contract address: ${address}. Expected: C...`);\n }\n },\n\n /**\n * Encode a single self-call to XDR buffer using Call encoding.\n *\n * Each leaf contains exactly one self-call (e.g. `set_seed`, `execute_transaction`).\n * To dispatch multiple external contract calls, use a single `execute_transaction`\n * call whose args carry the list of external calls.\n */\n encodeCalls(calls: StellarCall[]): Buffer {\n if (calls.length !== 1) {\n throw new Error(\n 'Stellar leaf must have exactly one self-call. ' +\n 'For multiple external calls, use execute_transaction whose args contain the call list.',\n );\n }\n\n const call = calls[0];\n const callObject = {\n to: Address.fromString(call.contractAddress),\n func: call.functionName,\n args: call.args,\n sub_invocations: [],\n };\n\n return ONE_SIG_SPEC.nativeToScVal(callObject, CALL_TYPE).toXDR();\n },\n };\n}\n"]}
|
package/dist/DPYAZNJF.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/calls.ts"],"names":["scMapEntry","key","val","xdr","ScMapEntry","ScVal","scvSymbol","createExecuteTransactionCall","oneSigAddress","calls","callsScVal","scvVec","map","call","scvMap","args","func","sub_invocations","Address","fromString","to","toScVal","contractAddress","functionName","createSetSeedCall","newSeed","scvBytes","createSetExecutorCall","executor","active","scvBool","createSetExecutorRequiredCall","required","createSetThresholdCall","newThreshold","scvU32","createSetSignerCall","signerAddress"],"mappings":"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","file":"DPYAZNJF.mjs","sourcesContent":["import { Address, xdr } from '@stellar/stellar-sdk';\n\nimport { type Call } from './generated/index';\nimport { type StellarCall } from './leafGenerator';\n\n/** Build an `(symbol => value)` ScMap entry. */\nconst scMapEntry = (key: string, val: xdr.ScVal) =>\n new xdr.ScMapEntry({ key: xdr.ScVal.scvSymbol(key), val });\n\n/**\n * Bundle multiple external calls into a single `execute_transaction` self-call\n * (the OneSig multicall path).\n *\n * A OneSig merkle leaf authorizes exactly one self-call on the OneSig contract.\n * To dispatch several external calls under one leaf, wrap them as the `calls`\n * argument of `execute_transaction`; the OneSig contract is the direct invoker\n * of each, so they need no separate OneSig auth.\n *\n * The inner calls use the generated {@link Call} type so they mirror the\n * contract's `Call` struct exactly (`to`, `func`, `args`, `sub_invocations`).\n * Each `Call` is encoded as an ScMap by hand rather than via `nativeToScVal`,\n * because the spec cannot serialize the `InvokerContractAuthEntry` values in\n * `sub_invocations`; the hand-rolled encoding is byte-identical to what the\n * generated client submits, and additionally supports nested pre-authorization.\n *\n * The returned {@link StellarCall} is consumed by the leaf generator's\n * `encodeCalls` exactly like any other self-call.\n *\n * @param oneSigAddress - The OneSig contract address (C...); the wrapper's target.\n * @param calls - External calls to execute atomically inside `execute_transaction`.\n */\nexport function createExecuteTransactionCall(oneSigAddress: string, calls: Call[]): StellarCall {\n // ScMap keys must be sorted; Call fields are alphabetical: args, func, sub_invocations, to.\n const callsScVal = xdr.ScVal.scvVec(\n calls.map((call) =>\n xdr.ScVal.scvMap([\n scMapEntry('args', xdr.ScVal.scvVec(call.args)),\n scMapEntry('func', xdr.ScVal.scvSymbol(call.func)),\n scMapEntry('sub_invocations', xdr.ScVal.scvVec(call.sub_invocations)),\n scMapEntry('to', Address.fromString(call.to).toScVal()),\n ]),\n ),\n );\n\n return {\n contractAddress: oneSigAddress,\n functionName: 'execute_transaction',\n args: [callsScVal],\n };\n}\n\n/**\n * Create a call to set the seed value\n */\nexport function createSetSeedCall(newSeed: Buffer, contractAddress: string): StellarCall {\n return {\n contractAddress,\n functionName: 'set_seed',\n args: [xdr.ScVal.scvBytes(newSeed)],\n };\n}\n\n/**\n * Create a call to set an executor\n */\nexport function createSetExecutorCall(\n executor: Buffer,\n active: boolean,\n contractAddress: string,\n): StellarCall {\n return {\n contractAddress,\n functionName: 'set_executor',\n args: [xdr.ScVal.scvBytes(executor), xdr.ScVal.scvBool(active)],\n };\n}\n\n/**\n * Create a call to set executor required flag\n */\nexport function createSetExecutorRequiredCall(\n required: boolean,\n contractAddress: string,\n): StellarCall {\n return {\n contractAddress,\n functionName: 'set_executor_required',\n args: [xdr.ScVal.scvBool(required)],\n };\n}\n\n/**\n * Create a call to set the threshold\n */\nexport function createSetThresholdCall(newThreshold: number, contractAddress: string): StellarCall {\n return {\n contractAddress,\n functionName: 'set_threshold',\n args: [xdr.ScVal.scvU32(newThreshold)],\n };\n}\n\n/**\n * Create a call to set a signer\n */\nexport function createSetSignerCall(\n signerAddress: Buffer,\n active: boolean,\n contractAddress: string,\n): StellarCall {\n return {\n contractAddress,\n functionName: 'set_signer',\n args: [xdr.ScVal.scvBytes(signerAddress), xdr.ScVal.scvBool(active)],\n };\n}\n"]}
|
package/dist/EJZMSFN5.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/configChangeCalls.ts"],"names":["toConfigChangeCall","chainName","call","to","contractAddress","value","data","JSON","stringify","functionName","args","map","arg","toXDR","generateStellarConfigChangeCall","operation","params","createSetSignerCall","Buffer","from","hexToBytes","address","createSetThresholdCall","threshold","createSetSeedCall","seed","createSetExecutorCall","Error"],"mappings":";;;;AAkBA,SAASA,kBAAAA,CAAmBC,WAAmBC,IAAAA,EAAiB;AAC5D,EAAA,OAAO;AACHD,IAAAA,SAAAA;AACAE,IAAAA,EAAAA,EAAID,IAAAA,CAAKE,eAAAA;IACTC,KAAAA,EAAO,GAAA;AACPC,IAAAA,IAAAA,EAAMC,KAAKC,SAAAA,CAAU;AACjBC,MAAAA,YAAAA,EAAcP,IAAAA,CAAKO,YAAAA;MACnBC,IAAAA,EAAMR,IAAAA,CAAKQ,KAAKC,GAAAA,CAAI,CAACC,QAAQA,GAAAA,CAAIC,KAAAA,CAAM,QAAA,CAAA;KAC3C;AACJ,GAAA;AACJ;AAVSb,MAAAA,CAAAA,kBAAAA,EAAAA,oBAAAA,CAAAA;AAwBF,SAASc,+BAAAA,CACZC,SAAAA,EACAX,eAAAA,EACAH,SAAAA,EACAe,MAAAA,EAA+B;AAE/B,EAAA,QAAQD,SAAAA;IACJ,KAAK,WAAA;AACD,MAAA,OAAOf,kBAAAA,CACHC,SAAAA,EACAgB,mBAAAA,CACIC,MAAAA,CAAOC,IAAAA,CAAKC,UAAAA,CAAWJ,MAAAA,CAAOK,OAAO,CAAA,CAAA,EACrC,IAAA,EACAjB,eAAAA,CAAAA,CAAAA;IAGZ,KAAK,cAAA;AACD,MAAA,OAAOJ,kBAAAA,CACHC,SAAAA,EACAgB,mBAAAA,CACIC,MAAAA,CAAOC,IAAAA,CAAKC,UAAAA,CAAWJ,MAAAA,CAAOK,OAAO,CAAA,CAAA,EACrC,KAAA,EACAjB,eAAAA,CAAAA,CAAAA;IAGZ,KAAK,cAAA;AACD,MAAA,OAAOJ,mBACHC,SAAAA,EACAqB,sBAAAA,CAAuBN,MAAAA,CAAOO,SAAAA,EAAqBnB,eAAAA,CAAAA,CAAAA;IAE3D,KAAK,SAAA;AACD,MAAA,OAAOJ,kBAAAA,CACHC,SAAAA,EACAuB,iBAAAA,CAAkBN,MAAAA,CAAOC,IAAAA,CAAKC,UAAAA,CAAWJ,MAAAA,CAAOS,IAAI,CAAA,CAAA,EAAcrB,eAAAA,CAAAA,CAAAA;IAE1E,KAAK,aAAA;AACD,MAAA,OAAOJ,kBAAAA,CACHC,SAAAA,EACAyB,qBAAAA,CACIR,MAAAA,CAAOC,IAAAA,CAAKC,UAAAA,CAAWJ,MAAAA,CAAOK,OAAO,CAAA,CAAA,EACrC,IAAA,EACAjB,eAAAA,CAAAA,CAAAA;IAGZ,KAAK,gBAAA;AACD,MAAA,OAAOJ,kBAAAA,CACHC,SAAAA,EACAyB,qBAAAA,CACIR,MAAAA,CAAOC,IAAAA,CAAKC,UAAAA,CAAWJ,MAAAA,CAAOK,OAAO,CAAA,CAAA,EACrC,KAAA,EACAjB,eAAAA,CAAAA,CAAAA;AAGZ,IAAA;AACI,MAAA,MAAM,IAAIuB,KAAAA,CAAM,CAAA,6CAAA,EAAgDZ,SAAAA,CAAAA,CAAW,CAAA;AACnF;AACJ;AAxDgBD,MAAAA,CAAAA,+BAAAA,EAAAA,iCAAAA,CAAAA","file":"EJZMSFN5.mjs","sourcesContent":["import { hexToBytes } from '@layerzerolabs/common-encoding-utils';\nimport type { ConfigChangeOperation, OneSigConfigChangeCall } from '@layerzerolabs/onesig-model';\n\nimport {\n createSetExecutorCall,\n createSetSeedCall,\n createSetSignerCall,\n createSetThresholdCall,\n} from './calls';\nimport type { StellarCall } from './leafGenerator';\n\n/**\n * Serialize a Stellar call into the normalized `OneSigConfigChangeCall` shape.\n *\n * The `data` field carries a JSON object `{ functionName, args }` where each\n * arg is the base64-encoded XDR of the `ScVal`. The downstream `toStellarCall`\n * shaper parses this format.\n */\nfunction toConfigChangeCall(chainName: string, call: StellarCall): OneSigConfigChangeCall {\n return {\n chainName,\n to: call.contractAddress,\n value: '0',\n data: JSON.stringify({\n functionName: call.functionName,\n args: call.args.map((arg) => arg.toXDR('base64')),\n }),\n };\n}\n\n/**\n * Generate a Stellar config-change call for a single chain.\n *\n * @param operation - The config-change operation.\n * @param contractAddress - The OneSig contract address on this chain (C...).\n * @param chainName - The chain name (e.g. \"stellar-mainnet\").\n * @param params - Operation-specific parameters:\n * - setSigner / removeSigner: `{ address: string }` (hex-encoded 32-byte key)\n * - setThreshold: `{ threshold: number }`\n * - setSeed: `{ seed: string }` (hex-encoded 32 bytes)\n * - setExecutor / removeExecutor: `{ address: string }` (hex-encoded 32-byte key)\n */\nexport function generateStellarConfigChangeCall(\n operation: ConfigChangeOperation,\n contractAddress: string,\n chainName: string,\n params: Record<string, unknown>,\n): OneSigConfigChangeCall {\n switch (operation) {\n case 'setSigner':\n return toConfigChangeCall(\n chainName,\n createSetSignerCall(\n Buffer.from(hexToBytes(params.address as string)),\n true,\n contractAddress,\n ),\n );\n case 'removeSigner':\n return toConfigChangeCall(\n chainName,\n createSetSignerCall(\n Buffer.from(hexToBytes(params.address as string)),\n false,\n contractAddress,\n ),\n );\n case 'setThreshold':\n return toConfigChangeCall(\n chainName,\n createSetThresholdCall(params.threshold as number, contractAddress),\n );\n case 'setSeed':\n return toConfigChangeCall(\n chainName,\n createSetSeedCall(Buffer.from(hexToBytes(params.seed as string)), contractAddress),\n );\n case 'setExecutor':\n return toConfigChangeCall(\n chainName,\n createSetExecutorCall(\n Buffer.from(hexToBytes(params.address as string)),\n true,\n contractAddress,\n ),\n );\n case 'removeExecutor':\n return toConfigChangeCall(\n chainName,\n createSetExecutorCall(\n Buffer.from(hexToBytes(params.address as string)),\n false,\n contractAddress,\n ),\n );\n default:\n throw new Error(`Unsupported Stellar config change operation: ${operation}`);\n }\n}\n"]}
|
package/dist/NQUQ5475.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/generated/index.ts"],"names":["WASM_BASE64","WASM_HASH","getWasmBuffer","Buffer","from","OneSigError","message","BufferReaderError","BufferWriterError","TtlConfigurableError","OwnableError","BytesExtError","UpgradeableError","MultiSigError","AuthError","RbacError","Client","ContractClient","deploy","onesig_id","seed","signers","threshold","executors","executor_required","options","ContractSpec","fromJSON","set_executor","txFromJSON","set_executor_required","get_executors","is_executor","total_executors","set_seed","execute_transaction","verify_merkle_root","verify_transaction_proof","encode_leaf","can_execute_transaction","nonce","version","leaf_encoding_version","authorizer","set_signer","set_threshold","get_signers","total_signers","is_signer","verify_signatures","verify_n_signatures","extend_instance_ttl","set_ttl_configs","ttl_configs","freeze_ttl_configs","is_ttl_configs_frozen"],"mappings":"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","file":"NQUQ5475.mjs","sourcesContent":["import { Buffer } from \"buffer\";\nimport { Address } from '@stellar/stellar-sdk';\nimport {\n AssembledTransaction,\n AssembledTransactionOptions,\n Client as ContractClient,\n ClientOptions as ContractClientOptions,\n MethodOptions,\n Result,\n Spec as ContractSpec,\n} from '@stellar/stellar-sdk/contract';\nimport type {\n u32,\n i32,\n u64,\n i64,\n u128,\n i128,\n u256,\n i256,\n Option,\n Typepoint,\n Duration,\n} from '@stellar/stellar-sdk/contract';\nexport * from '@stellar/stellar-sdk'\nexport * as contract from '@stellar/stellar-sdk/contract'\nexport * as rpc from '@stellar/stellar-sdk/rpc'\n\n// Soroban SDK types referenced in contract specs but not defined in the contract itself.\n// InvokerContractAuthEntry is a Soroban built-in encoded as ScVal:\n// scvVec([symbol(\"Contract\"), scvMap({\n// context: scvMap({ args, contract, fn_name }),\n// sub_invocations: scvVec([...])\n// })])\n// Must be manually constructed — the contract spec's nativeToScVal cannot serialize it.\nimport type { xdr } from '@stellar/stellar-sdk';\nexport type InvokerContractAuthEntry = xdr.ScVal;\n\n/**\n * Embedded WASM bytecode (base64-encoded)\n * Size: 28784 bytes (28.11 KB)\n */\nexport const WASM_BASE64 = \"AGFzbQEAAAABxAEhYAABfmACfn4BfmABfgF+YAJ/fgBgA35+fgF+YAJ/fwBgAX4AYAAAYAF/AGAEfn5+fgF+YAF/AX5gAn5+AX9gA39/fwBgAAF/YAN/fn4AYAJ+fwBgAn9/AX5gAn9+AX9gAn9/AX9gA35+fgBgAX4Bf2AEfn5/fwF+YAF/AX9gAn5+AGADfn5/AGAEf39/fwF+YAV+f39/fwBgA35+fgF/YAN+f38BfmACfn8BfmADfn9/AGAGfn5+fn5+AX5gBH5/f38AAokCLAFpATAAAgFsATEAAQFsAV8ABAFiATgAAgFhATAAAgF4ATcAAAF2ATMAAgF2ATEAAQFpAV8AAgF4ATEAAQFiAWUAAQFjATEAAgF2AWQAAQF2ATYAAQF2ATIAAQF2AV8AAAFjATAABAFiATQAAAFhATMAAgFkAV8ABAFiAWkAAQFiAV8AAgFiAWYABAF4ATMAAAF4ATgAAAFiATEACQFiATMAAQFtAWEACQFiAW0ABAFiAWoAAQFiATIACQFtATkABAF2AWcAAQF4ATAAAQF4ATQAAAFsATAAAQFsATgAAQFpAWEAAgF4ATUAAgFsATIAAQFsATcACQFpAWIAAgFiATYAAQFjATIABAODAYEBAwUKCwMCAxIVFg0HCgcIEwcIBgcLFw0YAAELBQ4LFAwDBQMPEBkDGhsGAAYIAgEDAgAAAhQAAA0EBRwSAwMAHQARDwIREwIGAgQBAQIDAAAAAAAAABEDHgMfBQUKBgcIAAEGDwIAAAIAAQQBBQEDBgoACAUQAAAQDAMMBQwDIA4OBQMBABEGIQR/AUGAgMAAC38AQe2EwAALfwBB0ofAAAt/AEHgh8AACwfmBCUGbWVtb3J5AgAMc2V0X2V4ZWN1dG9yAFoVc2V0X2V4ZWN1dG9yX3JlcXVpcmVkAFwNZ2V0X2V4ZWN1dG9ycwBdC2lzX2V4ZWN1dG9yAF8PdG90YWxfZXhlY3V0b3JzAGERZXhlY3V0b3JfcmVxdWlyZWQAYgxfX2NoZWNrX2F1dGgAZAhzZXRfc2VlZAByE2V4ZWN1dGVfdHJhbnNhY3Rpb24AdBJ2ZXJpZnlfbWVya2xlX3Jvb3QAdRh2ZXJpZnlfdHJhbnNhY3Rpb25fcHJvb2YAdgtlbmNvZGVfbGVhZgB3F2Nhbl9leGVjdXRlX3RyYW5zYWN0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IwBBEGsiAiQAAkAgARADQv////+PCFYEQCABQoSAgICACBAqIQUgAUIEQoSAgICACBAWIgEQA0KAgICAcINCgICAgIAIUg0BIAIgACABIAVCIIinIgNBG2siBCADIARB/wFxQQRJG61C/wGDQiCGQgSEECtChICAgBBChICAgJAIEBYQC0KEgICAwAFChICAgIAEEBYQqQEgAigCAEEBRg0BIAIpAwggAkEQaiQADwsACwALEwAgACABECEiAEIAVSAAQgBTawtyAgJ/AX4jAEEQayICJAACQCABKAIIIgMgASgCDE8EQCAAQgI3AwAMAQsgAiABKQMAIAOtQiCGQgSEEAcQeSADQQFqIgMEQCACKQMAIQQgACACKQMINwMIIAAgBDcDACABIAM2AggMAQsACyACQRBqJAALKAACQCAAIAFCAlIEfiABp0EBcQ0BIAAgAjcDCEIBBUIACzcDAA8LAAsNACAAIAEQRkH/AXFFC3UCAn8CfiMAQTBrIgEkABA3EEQiAxAGIQQgAUEANgIIIAEgAzcDACABIARCIIg+AgwDQAJAIAFBIGogARBHIAFBEGogASkDICABKQMoEEggASgCECICQQFHDQAgASkDGCAAEElFDQELCyABQTBqJAAgAkEBcQs5AQF/IwBBEGsiAyQAIAMgASACEKQBIAAgAygCAAR+QgEFIAAgAykDCDcDCEIACzcDACADQRBqJAALNQEBfyMAQRBrIgIkACACIAE3AwggAkEIakEBEKABIQEgAEIANwMAIAAgATcDCCACQRBqJAALcgICfwF+IwBBEGsiAiQAAkAgASgCCCIDIAEoAgxPBEAgAEICNwMADAELIAIgASkDACADrUIghkIEhBAHEE4gA0EBaiIDBEAgAikDACEEIAAgAikDCDcDCCAAIAQ3AwAgASADNgIIDAELAAsgAkEQaiQACx4AIAFC/wGDQsgAUgRAIABCATcDAA8LIAAgARCEAQsQACAAIAFBDEGIgcAAEKoBCzACAX8BfiMAQRBrIgIkACACIAAgARCkASACKAIAQQFGBEAACyACKQMIIAJBEGokAAsoACABIANHBEAACyAArUIghkIEhCACrUIghkIEhCABrUIghkIEhBAfC8oBAgJ/BH4jAEEgayICJAADQCADQSBHBEAgAiADakICNwMAIANBCGohAwwBCwtC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A0HwAGoiCyAFKQMANwMAIANB6ABqIgwgBikDADcDACADIAMpAwg3A2AgCCADQeAAaiIIEDMgDRBvEHApAwAQCyADEBE3AzAgBxA1QfaDwAAQMyEHIARCADcDACAFQgA3AwAgBkIANwMAIANCADcDCCAJEG4gCiAEKQMANwMAIAsgBSkDADcDACAMIAYpAwA3AwAgAyADKQMINwNgIAcgCBAzKQMAEAsgDxBFEEoNAUKDgICAgAEQPgALIA8QYEUNAiAPIA4gDRAQGgsgACASIBAQcSATIAAgAhBURQ0DIAFCAXwiAlANBEEEIAIQMEHUgMAAQRQQUBBZIAMgARAxNwMQIAMgADcDCEH4gMAAQQIgA0EIakECEFEQCRogA0GAAWokAEICDwtCg4CAgJABED4AC0KDgICAgAEQPgALQoOAgICAARA+AAtCg4CAgNAAED4ACwALQoOAgIDwABA+AAsACz0BAX8gACABKAIIIgIgASgCDEkEfiAAIAEpAwAgAq1CIIZCBIQQBzcDCCABIAJBAWo2AghCAAVCAgs3AwALGAAgACABrUIghkIEhCACrUIghkIEhBAcCxEAIAAgAU0EQCABIABrDwsACxAAIAAgAUKAgICAgAgQqwELgAICA38BfiMAQSBrIgIkAAJAIAFC/wGDQssAUgRAIABCATcDAAwBCyABEAYhBSACQQA2AgggAiABNwMAIAIgBUIgiD4CDCACQRBqIgMgAhBlAkAgAikDECIBQgJRIAGnQQFxcg0AIAIpAxgiAadB/wFxIgRBygBHIARBDkdxDQACQCABQfSFwABBARBmQv////8PVg0AIAIoAgggAigCDBBnQQFLDQAgAyACEGUgAikDECIBQgJRIAGnQQFxcg0AIAMgAikDGBBOIAIoAhANACACKQMYIQEgAEIANwMAIAAgATcDCAwCCyAAQgE3AwAMAQsgAEIBNwMACyACQSBqJAALLwICfwF+IwBBEGsiACQAEDcgAEEEEC0gACgCACEBIAApAwggAEEQaiQAQgAgARsLuQMCA38CfiMAQTBrIgIkABA3EBEhBSACQQE6ABAgAiAFIAUQA0KAgICAcINCBIQgAkEQaiIDQQEQNDcDCCACQQhqEHsQgQEhBCADEAUQFSIFQoSAgIDAACAFEANCgICAgHCDQgSEEBYiBUIEQoSAgIDAABAWEIIBAkAgAigCEEEBRg0AIAIpAxggAkEANgIQIANBBBCDAQJAIAIoAhAiA0H///8HcQ0AAkACQAJAIANBGHYOAgABAwsgAkEQaiIDIAVChICAgMAAQoSAgICAARAWEIIBIAIoAhBBAUYNAyACKQMYIAJBADYCECADQQQQgwEgAigCEA0CIAMgBUKEgICAgAFChICAgIAFEBYQhAEgAigCEEEBRw0BDAMLIAJBEGogBUKEgICAwABChICAgMAEEBYQhAEgAigCEEEBRg0CCyAEIAIpAxgQbSAAEIEBIQMgAiABKQMANwMoIAIgASkDGDcDICACIAEpAwg3AxggAiABKQMQNwMQQdSBwABBBCACQRBqQQQQURAVIQAgAyADKQMAIAAQCiIANwMAIAAQCxALIAJBMGokAA8LQoOAgICg/gAQPgALAAsrAgF+AX8QIiIAp0H/AXEiAUEGRwRAIAFBwABGBEAgABAADwsACyAAQgiIC5sBAQR/IwBBQGoiAiQAIAJBOGoiA0IANwMAIAJBMGoiBEIANwMAIAJBKGoiBUIANwMAIAJCADcDICABIAJBIGoQbiACQRhqIAMpAwA3AwAgAkEQaiAEKQMANwMAIAJBCGogBSkDADcDACACIAIpAyA3AwAgACAAKQMAIgEgARADQoCAgIBwg0IEhCACQSAQNDcDACACQUBrJAAgAAsLACAAIAFBIBCDAQuMAQEBfyMAQRBrIgEkACABIABCOIYgAEKA/gODQiiGhCAAQoCA/AeDQhiGIABCgICA+A+DQgiGhIQgAEIIiEKAgID4D4MgAEIYiEKAgPwHg4QgAEIoiEKA/gODIABCOIiEhIQ3AwggAUIANwMAIAFBEBCjASEAQe2EwABBEBCjASAAEAoQJSABQRBqJAALGAAgARApIQEgACAAKQMAIAEQCjcDACAAC+ABAgV/AX4jAEHQAGsiAyQAEDcQbCABVgRAQoOAgIDgABA+AAsQfiEIIAMQETcDACADQdSDwAAQMyAIEG0gABBtIAEQbxBwKQMAEAsgAxARNwMIIANBCGoQNUH2g8AAEDMhBCADQcgAaiIFQgA3AwAgA0FAayIGQgA3AwAgA0E4aiIHQgA3AwAgA0IANwMwIANBMGoQbiADQShqIAUpAwA3AwAgA0EgaiAGKQMANwMAIANBGGogBykDADcDACADIAMpAzA3AxAgBCADQRBqEDMpAwAQCyACEEEgA0HQAGokAAtcAgF/AX4jAEEQayIBJAAgASAAEE4gASgCAEEBRgRAAAsgASkDCCEAEDwQNyAAEHNCjvKqvJDVqvEAEFkgASAANwMAQcyAwABBASABQQEQURAJGiABQRBqJABCAgsNAEEDEC4gAEICEAIaC7sBAgF/B34jAEEwayIBJAACQCAAQv8Bg0LLAFEEQBA8EDcgABAGQiCIIQVCBCECA0ACQCADIAVRDQAgAUEIaiAAIAIQBxBSIANC/////w9RDQMgASkDCCIEQgJRDQAgBKdBAXENAyABKQMgIQQgASkDGCEGIAEpAxAgASkDKCIIEAZCgICAgBBaBEAgCBASGgsgBiAEEBMaIAJCgICAgBB8IQIgA0IBfCEDDAELCyABQTBqJABCAg8LAAsAC1QBAX8jAEEQayIDJAAgAyAAEE4CQCADKAIAQQFGDQAgAykDCCADIAEQLCADKAIAQQFGIAJC/wGDQssAUnINACADKQMIIAIQcSADQRBqJABCAg8LAAu2AgEHfyMAQeAAayICJAAgAkEYaiAAEE4CQAJAIAIoAhhBAUYNACACKQMgIQADQCADQRBHBEAgAkEIaiADakICNwMAIANBCGohAwwBCwsgAUL/AYNCzABSDQAgAUGAgsAAQQIgAkEIakECEFMgAkEYaiIEIAIpAwgQUiACKAIYQQFGDQAgAkHYAGoiBSACQThqKQMANwMAIAJB0ABqIgYgAkEwaiIHKQMANwMAIAJByABqIgggAkEoaiIDKQMANwMAIAIgAikDIDcDQCACKQMQIgFC/wGDQssAUg0AIAcgBSkDADcDACADIAYpAwA3AwAgAkEgaiAIKQMANwMAIAIgAikDQDcDGCACIAE3AzgQNyABIAAQaiAEEGsQVEUNASACQeAAaiQAQgIPCwALQoOAgIDQABA+AAuHAQECfyMAQdAAayICJAAgAkEoaiIDIAAQLAJAIAIoAihBAUYNACACKQMwIAMgARBSIAIoAihBAUYNACACQSBqIAJByABqKQMANwMAIAJBGGogAkFAaykDADcDACACQRBqIAJBOGopAwA3AwAgAiACKQMwNwMIIAJBCGoQayACQdAAaiQADwsAC88CAgN/AX4jAEEgayIBJAACfwJAAkAgAEL/AYNCywBSDQAgABAGIQQgAUEANgIIIAEgADcDACABIARCIIg+AgwgAUEQaiABEGUgASkDECIAQgJRIACnQQFxcg0AIAEpAxgiAKdB/wFxIgJBygBHIAJBDkdxDQACfgJAAkAgAEHEg8AAQQIQZkIgiKcOAgEAAwsgASgCCCABKAIMEGdBAUsNAiABQRBqIgMgARBlIAEpAxAiAEICUQ0CQQEhAiAAp0EBcQ0CIAMgASkDGBBOIAEoAhBBAUYNAiABKQMYDAELIAEoAgggASgCDBBnQQFLDQEgAUEQaiICIAEQZSABKQMQIgBCAlEgAKdBAXFyDQEgAiABKQMYEHkgASgCEA0BQQAhAiABKQMYCyEAEDdBARBjRQ0CGiACRQ0BIAAQYAwCCwALIAAQSgsgAUEgaiQArQseACABQv8Bg0LIAFIEQCAAQgE3AwAPCyAAIAEQqQELBgAQexAxCy0CAX8BfiMAQRBrIgAkABA3IABBAhAtIAAoAgBFBEAACyAAKQMIIABBEGokAAsGABBqEDELBAAQfgtDAgF/AX4jAEEQayIAJAAQNwJAQQMQLiIBQgIQLwRAIAAgAUICEAEQTiAAKAIAQQFHDQEACwALIAApAwggAEEQaiQACxYAEDdChICAgODGgAhChICAgNAAEBQLCgAQN0KEgICAEAuRAQEBfyMAQRBrIgIkACACIAFCOIYgAUKA/gODQiiGhCABQoCA/AeDQhiGIAFCgICA+A+DQgiGhIQgAUIIiEKAgID4D4MgAUIYiEKAgPwHg4QgAUIoiEKA/gODIAFCOIiEhIQ3AwggACAAKQMAIgEgARADQoCAgIBwg0IEhCACQQhqQQgQNDcDACACQRBqJAAgAAsQACAAIAFCgICAgMAAEKwBCxsAIABCBCABrUIghkIEhCACrUIghkIEhBAZGgsQACAAIAFCgICAgIAEEKwBC5MDAQN/IwBBMGsiBiQAIAZBIGoiByAAECwCQCAGKAIgQQFGDQAgBikDKCEAIAcgARBOIAYoAiBBAUYgAkL/AYNCywBSciADQv8Bg0IEUiAEQv8Bg0LLAFJycg0AQQEgBadB/wFxIgdBAEdBAXQgB0EBRhsiB0ECRg0AIAYpAyhBgMseQYDSHxCGAUGAyx5BgNIfEIcBAkBBABCIAUIBEC9FBEAgA0IgiKchCCACEAYhAyAGQQA2AgggBiACNwMAIAYgA0IgiD4CDANAIAZBIGogBhBHIAZBEGogBikDICAGKQMoEEggBigCEEEBRw0CIAYpAxgQiQEMAAsACxCKAUKDgICAwIQBED4ACyAIEIsBAkBBABAuQgEQL0UEQCAEEAYhAiAGQQA2AgggBiAENwMAIAYgAkIgiD4CDANAIAZBIGogBhBNIAZBEGogBikDICAGKQMoEEggBigCEEEBRw0CIAYpAxgQVQwACwALEDlCg4CAgCAQPgALIAdBAXEQWEECIAAQMBBzIAZBMGokAEICDwsACwsAQQEgACABEKgBCwsAQQIgACABEKgBC2ACAX8BfiMAQRBrIgEkAAJAIABBAXEEQCABQc+GwABBCRBLDAELIAFByIbAAEEHEEsLAkAgASgCAEUEQCABIAEpAwgQTCABKQMIIQIgASkDAFANAQsACyABQRBqJAAgAgukAQIBfwJ+IwBBMGsiASQAAkAgAEH8hcAAQRQQowEQSUUEQBBEIgIQBiEDIAFBADYCCCABIAI3AwAgASADQiCIPgIMA0AgAUEgaiABEEcgAUEQaiABKQMgIAEpAygQSCABKAIQQQFHDQIgASkDGCAAEElFDQALQoOAgICAhQEQPgALQoOAgIDghAEQPgALIAIgABANEI4BIABBARCPASABQTBqJAALTQIBfwJ+IwBBEGsiACQAIABBBGoQOiAAKAIEQQFGBEAgADUCDCEBIAA1AgghAkEAEIgBIAJCIIZCBIQgAUIghkIEhBA7CyAAQRBqJAALfAIBfwJ+IwBBEGsiASQAAkAgAARAIAAQRBAGQiCIp0sNAUEBEIgBIACtQiCGQgSEIgJCAhACGkGohsAAQQ0QUBBZIAEgAjcDCEHAhsAAQQEgAUEIakEBEFEQCRogAUEQaiQADwtCg4CAgMCFARA+AAtCg4CAgKCFARA+AAsrAgJ/AX4jAEEQayIAJAAgABA9IAAoAgAhASAAKQMIIABBEGokAEICIAEbC+sBAgJ/AX4jAEEgayICJAAgAkEQaiAAEHkCQAJAAkACQCACKAIQQQFGDQBBASABp0H/AXEiA0EAR0EBdCADQQFGGyIDQQJGDQAgAikDGCEAEDcQPwJAIANBAXFFBEAgAkEIahBEIgEgABAMEFsgAigCCCIDQQJGDQMgA0UNBCACKAIMIgMgARAGQiCIp0kEQCABIAOtQiCGQgSEEA4hAQsgARAGIQQQQiAEQiCIp0sNBSABEI4BIABBABCPAQwBCyAAEIkBCyACQSBqJABCAg8LAAsAC0KDgICAkIUBED4AC0KDgICAoIUBED4ACxEAQQAQiAEgAEIBEAIaEIoBCxAAIAAgAUEKQZCGwAAQqgELHgAgAEL/AYNCBFIEQAALEDcQPyAAQiCIpxCLAUICCwYAEDcQRAsSABA3EEQQBkKAgICAcINCBIQLLgECfyMAQRBrIgEkACABIAAQeSABKAIAQQFGBEAACyABKQMIEEogAUEQaiQArQsNABA3EEKtQiCGQgSECz4BAX8jAEEQayICJAAgAiAAEE4gAigCAEEBRiABQv8Bg0LLAFJyRQRAIAIpAwggARBBIAJBEGokAEICDwsAC04BAX8jAEEQayIDJAAgAyAAEE4gAygCAEEBRiABQv8Bg0LLAFJyIAJC/wGDQgRSckUEQCADKQMIIAEgAkIgiKcQQyADQRBqJABCAg8LAAssACAAQv8Bg0IEUiABQv8Bg0IEUnJFBEAgAEIgiKcgAUIgiKcQmAFCAg8LAAsXACAArUIghkIEhCABrUIghkIEhBAkGgvfAwEFfyMAQdAAayICJAAgAkEoaiIDIAAQmgECQAJAIAIoAihBAkYNACACQRBqIAJBMGoiBCgCADYCACACIAIpAig3AwggAyABEJoBIAIoAihBAkYNACACQSBqIAQoAgA2AgAgAiACKQIoNwMYEDwQNwJAAkAQNkUEQBAXIQAQGEIgiCIBIABCIIgiAFQNBEGA+4ADIAGnIACnayIDIANBgPuAA08bIQUgAiACQRhqNgIsIAIgAkEIajYCKEEAIQMDQCADQQhGDQMgAkEoaiADaigCACIEKAIAQQFxBEAgBCgCCCIGIAVLDQMgBCgCBCAGSw0DCyADQQRqIQMMAAsAC0KDgICA0P8AED4AC0KDgICAwP8AED4ACwJAIAIoAghBAUYEQCACKAIMIAIoAhAQhgEMAQtBARA4EJsBCwJAIAIoAhhBAUYEQCACKAIcIAIoAiAQhwEMAQtBAhA4EJsBCyACQTBqIAJBEGooAgA2AgAgAkE8aiACQSBqKAIANgIAIAIgAikDCDcDKCACIAIpAxg3AjRB9IbAAEEPEFAQWSACQShqEJwBIQEgAiACQTRqEJwBNwNIIAIgATcDQEGYh8AAQQIgAkFAa0ECEFEQCRogAkHQAGokAEICDwsACwALVAEBfyMAQRBrIgIkAAJAIAFCAlIEQCACQQRqIAEQpQEgAigCBARAIABBAjYCAAwCCyAAIAIpAgg3AgQgAEEBNgIADAELIABBADYCAAsgAkEQaiQACwkAIABCAhAnGgsuAgF/AX4jAEEQayIBJAAgASAAEJ8BIAEoAgBBAUYEQAALIAEpAwggAUEQaiQAC3cCBH8BfiMAQUBqIgAkABA3IABBCGoiARCeASAAQRRqIgIQOiAAQTBqIgMgARCfAQJAIAAoAjBFBEAgACkDOCEEIAMgAhCfASAAKAIwQQFHDQELAAsgACAAKQM4NwMoIAAgBDcDICAAQSBqQQIQoAEgAEFAayQACwkAIABBARCnAQsrACABKAIAQQFGBEAgACABKAIEIAEoAggQpgEPCyAAQgA3AwAgAEICNwMICxYAIACtQiCGQgSEIAGtQiCGQgSEECALUAEBfyMAQRBrIgAkABA8EDcQNgRAQoOAgIDg/wAQPgALQQAQOEIBQgIQAhpBqIfAAEESEFAQWUEEQQAgAEEIakEAEFEQCRogAEEQaiQAQgILBQAQNq0LFgAgAK1CIIZCBIQgAa1CIIZCBIQQGgvCAQIDfwF+An4CQCACQQlLDQAgAiEEIAEhBQNAIAZCCIZCDoQgBEUNAhoCf0EBIAUtAAAiA0HfAEYNABogA0Ewa0H/AXFBCk8EQCADQcEAa0H/AXFBGk8EQCADQeEAa0H/AXFBGUsNBCADQTtrDAILIANBNWsMAQsgA0EuawutQv8BgyAGQgaGhCEGIARBAWshBCAFQQFqIQUMAAsACyABrUIghkIEhCACrUIghkIEhBAdCyEGIABCADcDACAAIAY3AwgLlQECAn8BfiMAQRBrIgMkAANAIAJBEEcEQCACIANqQgI3AwAgAkEIaiECDAELC0EBIQICQCABQv8Bg0LMAFINACABQeSGwABBAiADQQIQUyADKQMAIgFC/wGDQgRSDQAgAykDCCIEQv8Bg0IEUg0AIAAgAUIgiD4CCCAAIARCIIg+AgRBACECCyAAIAI2AgAgA0EQaiQAC08CAX8BfiMAQRBrIgMkACADIAGtQiCGQgSENwMIIAMgAq1CIIZCBIQ3AwBB5IbAAEECIANBAhBRIQQgAEIANwMAIAAgBDcDCCADQRBqJAALVQICfwF+IwBBEGsiAiQAAkAgARA4IgRCAhAvBEAgAkEEaiAEQgIQARClAUEBIQMgAigCBEEBRg0BIAAgAikCCDcCBAsgACADNgIAIAJBEGokAA8LAAs5AgF/AX4jAEEQayIDJAAgABA4IAMgASACEKYBIAMoAgBBAUYEQAALIAMpAwhCAhACGiADQRBqJAALEAAgACABQoCAgIDAAhCsAQu9AQIBfwF+IwBBEGsiBCQAIAMgAhBQIQVBACECIwBBIGsiAyQAIAMgADcDCCADIAU3AwADfiACQRBGBH5BACECA0AgAkEQRwRAIANBEGogAmogAiADaikDADcDACACQQhqIQIMAQsLIANBEGpBAhCgASEAIANBIGokACAABSADQRBqIAJqQgI3AwAgAkEIaiECDAELCxogBCABrUL/AYM3AwggAEGghsAAQQEgBEEIakEBEFEQCRogBEEQaiQACzkBAX5CASEDAkAgAUL/AYNCyABSDQAgARADQoCAgIBwgyACUg0AIAAgATcDCEIAIQMLIAAgAzcDAAskACAAIAEQA0KAgICAcIMgAlEEfiAAIAE3AwhCAAVCAQs3AwALC8YHAwBBgIDAAAvtBENyZWF0ZUNvbnRyYWN0SG9zdEZuQ3JlYXRlQ29udHJhY3RXaXRoQ3Rvckhvc3RGbmUCEAAIAAAAAAAQABQAAAAUABAAHAAAAHNlZWRIABAABAAAAHRyYW5zYWN0aW9uX2V4ZWN1dGVkbWVya2xlX3Jvb3Rub25jZWgAEAALAAAAcwAQAAUAAABleGVjdXRvcl9zZXRleGVjdXRvcl9yZXF1aXJlZF9zZXRyZXF1aXJlZAAAAKkAEAAIAAAAZnVuY3N1Yl9pbnZvY2F0aW9uc3RvAAAAgQIQAAQAAAC8ABAABAAAAMAAEAAPAAAAzwAQAAIAAABjYWxscHJvb2YAAAD0ABAABAAAAPgAEAAFAAAAZXhwaXJ5c2VuZGVyc2lnbmF0dXJlcwAAEAEQAAYAAABoABAACwAAAPgAEAAFAAAAFgEQAAYAAAAcARAACgAAAFNpZ25lckV4ZWN1dG9yUGVybWlzc2lvbmxlc3NQARAABgAAAFYBEAAIAAAAXgEQAA4AAABkZWxlZ2F0ZWRlbGVnYXRlX3Byb29mc2lnbmF0dXJlAIQBEAAIAAAAjAEQAA4AAAAQARAABgAAAJoBEAAJAAAAUAEQAAYAAABWARAACAAAAGQu1dK3e8fMuY4Q2kwC182CMSKNpCIqn4ioDBVUUHTtGQGUwomJFw603DE1kXS5EVwRao+vpnta2sxXDKWD65bWVy7QklWhfsxdj9USihFIDg8B0jsi6usC9PSsrjVeXEKKMC4wLjFFeGVjdXRvcnNFeGVjdXRvclJlcXVpcmVkT25lU2lnSWRTZWVkTm9uY2VDb250cmFjdABB/YTAAAt8V2FzbWFyZ3Njb250cmFjdGZuX25hbWWBAhAABAAAAIUCEAAIAAAAjQIQAAcAAABleGVjdXRhYmxlc2FsdAAArAIQAAoAAAC2AhAABAAAAGNvbnN0cnVjdG9yX2FyZ3PMAhAAEAAAAKwCEAAKAAAAtgIQAAQAAAB9AhAABABBkIbAAAvCAXNpZ25lcl9zZXRhY3RpdmUaAxAABgAAAHRocmVzaG9sZF9zZXR0aHJlc2hvbGQAADUDEAAJAAAAU2lnbmVyc1RocmVzaG9sZGV4dGVuZF90bwAAAFgDEAAJAAAANQMQAAkAAAB0dGxfY29uZmlnc19zZXRpbnN0YW5jZXBlcnNpc3RlbnQAAACDAxAACAAAAIsDEAAKAAAAdHRsX2NvbmZpZ3NfZnJvemVuRnJvemVuSW5zdGFuY2VQZXJzaXN0ZW50APduDmNvbnRyYWN0c3BlY3YwAAAABQAAAC9FdmVudCBwdWJsaXNoZWQgd2hlbiB0aGUgc2VlZCBpcyBzZXQgb3IgdXBkYXRlZAAAAAAAAAAAB1NlZWRTZXQAAAAAAQAAAAhzZWVkX3NldAAAAAEAAAAAAAAABHNlZWQAAAPuAAAAIAAAAAAAAAACAAAABQAAAC5FdmVudCBwdWJsaXNoZWQgd2hlbiBhIHRyYW5zYWN0aW9uIGlzIGV4ZWN1dGVkAAAAAAAAAAAAE1RyYW5zYWN0aW9uRXhlY3V0ZWQAAAAAAQAAABR0cmFuc2FjdGlvbl9leGVjdXRlZAAAAAIAAAAAAAAAC21lcmtsZV9yb290AAAAA+4AAAAgAAAAAAAAAAAAAAAFbm9uY2UAAAAAAAAGAAAAAAAAAAIAAAAFAAAANEV2ZW50IHB1Ymxpc2hlZCB3aGVuIGFuIGV4ZWN1dG9yIGlzIGFkZGVkIG9yIHJlbW92ZWQAAAAAAAAAC0V4ZWN1dG9yU2V0AAAAAAEAAAAMZXhlY3V0b3Jfc2V0AAAAAgAAAAAAAAAIZXhlY3V0b3IAAAPuAAAAIAAAAAEAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAACAAAABQAAADRFdmVudCBwdWJsaXNoZWQgd2hlbiBleGVjdXRvciByZXF1aXJlbWVudCBpcyB0b2dnbGVkAAAAAAAAABNFeGVjdXRvclJlcXVpcmVkU2V0AAAAAAEAAAAVZXhlY3V0b3JfcmVxdWlyZWRfc2V0AAAAAAAAAQAAAAAAAAAIcmVxdWlyZWQAAAABAAAAAAAAAAIAAAAEAAAAAAAAAAAAAAALT25lU2lnRXJyb3IAAAAACQAAAAAAAAAVRXhlY3V0b3JBbHJlYWR5RXhpc3RzAAAAAAAAAQAAAAAAAAAaRXhlY3V0b3JBbHJlYWR5SW5pdGlhbGl6ZWQAAAAAAAIAAAAAAAAAEEV4ZWN1dG9yTm90Rm91bmQAAAADAAAAAAAAABJJbnZhbGlkQXV0aENvbnRleHQAAAAAAAQAAAAAAAAAE0ludmFsaWRQcm9vZk9yTm9uY2UAAAAABQAAAAAAAAARTWVya2xlUm9vdEV4cGlyZWQAAAAAAAAGAAAAAAAAABFOb25Db250cmFjdEludm9rZQAAAAAAAAcAAAAAAAAAFE9ubHlFeGVjdXRvck9yU2lnbmVyAAAACAAAAAAAAAAbU2lnbmVyRXhlY3V0aW9uUHJvb2ZFeHBpcmVkAAAAAAkAAAABAAAAWUEgc2luZ2xlIFNvcm9iYW4gaW52b2NhdGlvbiB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgYXRvbWljYWxseSBpbnNpZGUgYSBPbmVTaWcgdHJhbnNhY3Rpb24uAAAAAAAAAAAAAARDYWxsAAAABAAAADVBQkktZW5jb2RlZCBhcmd1bWVudHMgZm9yd2FyZGVkIHRvIHRoZSB0YXJnZXQgbWV0aG9kLgAAAAAAAARhcmdzAAAD6gAAAAAAAAAuTWV0aG9kIGlkZW50aWZpZXIgdGhhdCB3aWxsIGJlIGNhbGxlZCBvbiBgdG9gLgAAAAAABGZ1bmMAAAARAAAAelN1Yi1pbnZvY2F0aW9ucyB0aGF0IHRoZSBPbmVTaWcgY29udHJhY3QgbXVzdCBwcmUtYXV0aG9yaXplCnZpYSBgYXV0aG9yaXplX2FzX2N1cnJlbnRfY29udHJhY3RgIGJlZm9yZSBpbnZva2luZyB0aGlzIGNhbGwuAAAAAAAPc3ViX2ludm9jYXRpb25zAAAAA+oAAAfQAAAAGEludm9rZXJDb250cmFjdEF1dGhFbnRyeQAAAEhUYXJnZXQgY29udHJhY3QgYWRkcmVzcyAobWlycm9ycyBgaW52b2tlX2NvbnRyYWN0YCdzIGBjb250cmFjdEFkZHJlc3NgKS4AAAACdG8AAAAAABMAAAABAAAAOkEgbWVya2xlIGxlYWYgZGVzY3JpYmluZyB0aGUgY2FsbCB0aGF0IHNob3VsZCBiZSBleGVjdXRlZC4AAAAAAAAAAAALVHJhbnNhY3Rpb24AAAAAAgAAACFUaGUgc2luZ2xlIGF1dGhvcml6ZWQgaW52b2NhdGlvbi4AAAAAAAAEY2FsbAAAB9AAAAAEQ2FsbAAAAEtNZXJrbGUgcHJvb2YgKHNpYmxpbmcgaGFzaGVzKSBwcm92aW5nIGBjYWxsYCBiZWxvbmdzIHRvIGFuIGF1dGhvcmlzZWQgcm9vdC4AAAAABXByb29mAAAAAAAD6gAAA+4AAAAgAAAAAQAAAExBY2NvdW50IEFic3RyYWN0aW9uIHBheWxvYWQgdXNlZCBieSBgX19jaGVja19hdXRoYCB0byB2YWxpZGF0ZSBhbiBleGVjdXRpb24uAAAAAAAAABNUcmFuc2FjdGlvbkF1dGhEYXRhAAAAAAUAAAA5VW5peCB0aW1lc3RhbXAgKHNlY29uZHMpIGFmdGVyIHdoaWNoIHRoZSByb290IGlzIGludmFsaWQuAAAAAAAABmV4cGlyeQAAAAAABgAAAC5BcHByb3ZlZCBtZXJrbGUgcm9vdCBjb3ZlcmluZyB0aGUgdHJhbnNhY3Rpb24uAAAAAAALbWVya2xlX3Jvb3QAAAAD7gAAACAAAAAwTWVya2xlIHByb29mIGJpbmRpbmcgdGhlIGNhbGxzIHRvIGBtZXJrbGVfcm9vdGAuAAAABXByb29mAAAAAAAD6gAAA+4AAAAgAAAASEVudGl0eSBzdWJtaXR0aW5nIHRoZSB0cmFuc2FjdGlvbiAoc2lnbmVyLCBleGVjdXRvciwgb3IgcGVybWlzc2lvbmxlc3MpLgAAAAZzZW5kZXIAAAAAB9AAAAAGU2VuZGVyAAAAAABFVGhyZXNob2xkIHNpZ25hdHVyZXMgKHLigJZz4oCWdikgY292ZXJpbmcgYG1lcmtsZV9yb290YCBhbmQgYGV4cGlyeWAuAAAAAAAACnNpZ25hdHVyZXMAAAAAA+oAAAPuAAAAQQAAAAIAAABIUmVwcmVzZW50cyB0aGUgZW50aXR5IHRoYXQgaXMgYXV0aG9yaXNpbmcgdGhlIGBfX2NoZWNrX2F1dGhgIGludm9jYXRpb24uAAAAAAAAAAZTZW5kZXIAAAAAAAMAAAABAAAAqkEgcmVnaXN0ZXJlZCBtdWx0aXNpZyBzaWduZXIgYWN0aW5nIGFzIGl0cyBvd24gZXhlY3V0b3IuIEJpbmRzIGEgc2VjcDI1NmsxCmF1dGhvcml6YXRpb24gc2lnbmF0dXJlIHRvIHRoZSBlZDI1NTE5IHN1Ym1pdHRlciAoYGRlbGVnYXRlYCksIHBlciB0aGUKc2lnbmVyLWFzLWV4ZWN1dG9yIHNwZWMuAAAAAAAGU2lnbmVyAAAAAAABAAAH0AAAABRTaWduZXJFeGVjdXRpb25Qcm9vZgAAAAEAAACSQSByZWdpc3RlcmVkIGV4ZWN1dG9yIChlZDI1NTE5KSBzdWJtaXR0aW5nIHRoZSB0cmFuc2FjdGlvbi4KVGhlIHR1cGxlIGlzIGAocHVibGljX2tleSwgc2lnbmF0dXJlKWAgd2hlcmUgdGhlIHNpZ25hdHVyZSBjb3ZlcnMgdGhlIFNvcm9iYW4gcGF5bG9hZC4AAAAAAAhFeGVjdXRvcgAAAAIAAAPuAAAAIAAAA+4AAABAAAAAAAAAAFJQZXJtaXNzaW9ubGVzcyBleGVjdXRpb24gKGFueW9uZSBtYXkgc3VibWl0IHdoZW4gYGV4ZWN1dG9yX3JlcXVpcmVkYCBpcyBkaXNhYmxlZCkuAAAAAAAOUGVybWlzc2lvbmxlc3MAAAAAAAEAAAGvUGF5bG9hZCBib3VuZCB0byBhIHNpZ25lci1hcy1leGVjdXRvciBzdWJtaXNzaW9uLgoKRW5mb3JjZXMgdGhlIHNwZWMncyAic2lnbmVyIGFjdGluZyBhcyBleGVjdXRvciIgZ3VhcmFudGVlIG9uIFN0ZWxsYXI6CmEgc2VjcDI1NmsxIHNpZ25lciBjb21taXRzIHRvIHRoZSBlZDI1NTE5IHN1Ym1pdHRlciB2aWEgYHNpZ25hdHVyZWAsIGFuZCB0aGUKc3VibWl0dGVyIHByb3ZlcyBjb250cm9sIG9mIGBkZWxlZ2F0ZWAgdmlhIGBkZWxlZ2F0ZV9wcm9vZmAuIGBkZWxlZ2F0ZV9wcm9vZmAgaXMgYQpTb3JvYmFuLXNwZWNpZmljIGZpZWxkOiBgX19jaGVja19hdXRoYCBoYXMgbm8gbmF0aXZlIGBtc2cuc2VuZGVyYCwgc28gaXQgaXMgaG93IHRoaXMKaW1wbGVtZW50YXRpb24gZW5mb3JjZXMgdGhlIHNwZWMncyBgc3VibWl0dGVyID09IGRlbGVnYXRlYCBjaGVjay4AAAAAAAAAABRTaWduZXJFeGVjdXRpb25Qcm9vZgAAAAQAAABAZWQyNTUxOSBwdWJsaWMga2V5ICgzMiBieXRlcykgdGhlIHNpZ25lciBiaW5kcyBhcyB0aGUgc3VibWl0dGVyLgAAAAhkZWxlZ2F0ZQAAA+4AAAAgAAAAgmVkMjU1MTkgc2lnbmF0dXJlICg2NCBieXRlcykgYnkgYGRlbGVnYXRlYCBvdmVyIHRoZSBTb3JvYmFuIHJ1bnRpbWUKcGF5bG9hZCBoYXNoIOKAlCBwcm92ZXMgdGhlIHN1Ym1pdHRlciBhY3R1YWxseSBob2xkcyB0aGF0IGtleS4AAAAAAA5kZWxlZ2F0ZV9wcm9vZgAAAAAD7gAAAEAAAABHVW5peCB0aW1lc3RhbXAgKHNlY29uZHMpIGFmdGVyIHdoaWNoIGBzaWduYXR1cmVgIGNhbiBubyBsb25nZXIgYmUgdXNlZC4AAAAABmV4cGlyeQAAAAAABgAAAI9zZWNwMjU2azEgc2lnbmF0dXJlIChy4oCWc+KAlnYsIDY1IGJ5dGVzKSBvdmVyIHRoZSBFSVAtNzEyIGRpZ2VzdCBvZgpgU2lnbmVyRXhlY3V0aW9uQXV0aG9yaXphdGlvbiB7IGxlYWZIYXNoLCBtZXJrbGVSb290LCBkZWxlZ2F0ZSwgZXhwaXJ5IH1gLgAAAAAJc2lnbmF0dXJlAAAAAAAD7gAAAEEAAAACAAAAmklkZW50aWZpZXIgdXNlZCBieSBgY2FuX2V4ZWN1dGVfdHJhbnNhY3Rpb25gIHRvIGRlc2NyaWJlIHRoZSBjYWxsZXIuClNpZ25lcnMgdXNlIEV0aGVyZXVtLXN0eWxlIDIwLWJ5dGUgYWRkcmVzc2VzIHdoaWxlIGV4ZWN1dG9ycyB1c2UgZWQyNTUxOSBwdWJsaWMga2V5cy4AAAAAAAAAAAAJU2VuZGVyS2V5AAAAAAAAAgAAAAEAAAA5QW4gRXRoZXJldW0tc3R5bGUgc2lnbmVyIGFkZHJlc3MgKDIwIGJ5dGVzLCBsZWZ0LXBhZGRlZCkuAAAAAAAABlNpZ25lcgAAAAAAAQAAA+4AAAAUAAAAAQAAACpBbiBlZDI1NTE5IGV4ZWN1dG9yIHB1YmxpYyBrZXkgKDMyIGJ5dGVzKS4AAAAAAAhFeGVjdXRvcgAAAAEAAAPuAAAAIAAAAAAAAAA3QWRkcyBvciByZW1vdmVzIGFuIGV4ZWN1dG9yIGJhc2VkIG9uIHRoZSBgYWN0aXZlYCBmbGFnLgAAAAAMc2V0X2V4ZWN1dG9yAAAAAgAAAAAAAAAIZXhlY3V0b3IAAAPuAAAAIAAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAAAAAA2U2V0cyB3aGV0aGVyIGFuIGV4ZWN1dG9yIGlzIHJlcXVpcmVkIGZvciB0cmFuc2FjdGlvbnMuAAAAAAAVc2V0X2V4ZWN1dG9yX3JlcXVpcmVkAAAAAAAAAQAAAAAAAAAIcmVxdWlyZWQAAAABAAAAAAAAAAAAAAAtUmV0dXJucyB0aGUgbGlzdCBvZiBhbGwgcmVnaXN0ZXJlZCBleGVjdXRvcnMuAAAAAAAADWdldF9leGVjdXRvcnMAAAAAAAAAAAAAAQAAA+oAAAPuAAAAIAAAAAAAAAA4Q2hlY2tzIHdoZXRoZXIgYSBnaXZlbiBhZGRyZXNzIGlzIGEgcmVnaXN0ZXJlZCBleGVjdXRvci4AAAALaXNfZXhlY3V0b3IAAAAAAQAAAAAAAAAIZXhlY3V0b3IAAAPuAAAAIAAAAAEAAAABAAAAAAAAADFSZXR1cm5zIHRoZSB0b3RhbCBudW1iZXIgb2YgcmVnaXN0ZXJlZCBleGVjdXRvcnMuAAAAAAAAD3RvdGFsX2V4ZWN1dG9ycwAAAAAAAAAAAQAAAAQAAAAAAAAAMlJldHVybnMgd2hldGhlciBhbiBleGVjdXRvciBzaWduYXR1cmUgaXMgcmVxdWlyZWQuAAAAAAARZXhlY3V0b3JfcmVxdWlyZWQAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAxfX2NoZWNrX2F1dGgAAAADAAAAAAAAABFzaWduYXR1cmVfcGF5bG9hZAAAAAAAA+4AAAAgAAAAAAAAAAlhdXRoX2RhdGEAAAAAAAfQAAAAE1RyYW5zYWN0aW9uQXV0aERhdGEAAAAAAAAAAA1hdXRoX2NvbnRleHRzAAAAAAAD6gAAB9AAAAAHQ29udGV4dAAAAAABAAAD6QAAAAIAAAADAAAAAAAAAElVcGRhdGVzIHRoZSBzZWVkIHVzZWQgZm9yIEVJUC03MTIgZGlnZXN0IGNvbnN0cnVjdGlvbiBhbmQgZW1pdHMgYW4gZXZlbnQuAAAAAAAACHNldF9zZWVkAAAAAQAAAAAAAAAEc2VlZAAAA+4AAAAgAAAAAAAAAAAAAAECRGlzcGF0Y2hlcyBleHRlcm5hbCBjb250cmFjdCBjYWxscy4gQWxsIHNlY3VyaXR5IHZlcmlmaWNhdGlvbiBoYXBwZW5zIGluIGBfX2NoZWNrX2F1dGhgLgpFYWNoIGNhbGwncyBgc3ViX2ludm9jYXRpb25zYCBhcmUgcHJlLWF1dGhvcml6ZWQgdmlhIGBhdXRob3JpemVfYXNfY3VycmVudF9jb250cmFjdGAKaW1tZWRpYXRlbHkgYmVmb3JlIGludm9raW5nLCBlbmFibGluZyBkZWVwZXIgc3ViLWludm9jYXRpb25zIChlLmcuIHRva2VuIHRyYW5zZmVycykuAAAAAAATZXhlY3V0ZV90cmFuc2FjdGlvbgAAAAABAAAAAAAAAAVjYWxscwAAAAAAA+oAAAfQAAAABENhbGwAAAAAAAAAAAAAAExWZXJpZmllcyBhIG1lcmtsZSByb290IGJ5IGNoZWNraW5nIGV4cGlyeSBhbmQgdmFsaWRhdGluZyBFSVAtNzEyIHNpZ25hdHVyZXMuAAAAEnZlcmlmeV9tZXJrbGVfcm9vdAAAAAAAAwAAAAAAAAALbWVya2xlX3Jvb3QAAAAD7gAAACAAAAAAAAAABmV4cGlyeQAAAAAABgAAAAAAAAAKc2lnbmF0dXJlcwAAAAAD6gAAA+4AAABBAAAAAAAAAAAAAABVVmVyaWZpZXMgYSB0cmFuc2FjdGlvbidzIG1lcmtsZSBwcm9vZiBhZ2FpbnN0IHRoZSBnaXZlbiByb290IHVzaW5nIHRoZSBjdXJyZW50IG5vbmNlLgAAAAAAABh2ZXJpZnlfdHJhbnNhY3Rpb25fcHJvb2YAAAACAAAAAAAAAAttZXJrbGVfcm9vdAAAAAPuAAAAIAAAAAAAAAALdHJhbnNhY3Rpb24AAAAH0AAAAAtUcmFuc2FjdGlvbgAAAAAAAAAAAAAAAH1FbmNvZGVzIGEgbGVhZiBub2RlIGJ5IHNlcmlhbGl6aW5nIHZlcnNpb24sIG9uZXNpZyBJRCwgY29udHJhY3QgYWRkcmVzcywgbm9uY2UsIGFuZCBjYWxsLCB0aGVuIGRvdWJsZS1oYXNoaW5nIHdpdGgga2VjY2FrMjU2LgAAAAAAAAtlbmNvZGVfbGVhZgAAAAACAAAAAAAAAAVub25jZQAAAAAAAAYAAAAAAAAABGNhbGwAAAfQAAAABENhbGwAAAABAAAD7gAAACAAAAAAAAAAX0NoZWNrcyBpZiB0aGUgc2VuZGVyIGlzIGF1dGhvcml6ZWQgdG8gZXhlY3V0ZSBhIHRyYW5zYWN0aW9uIChleGVjdXRvciBvciBzaWduZXIgd2hlbiByZXF1aXJlZCkuAAAAABdjYW5fZXhlY3V0ZV90cmFuc2FjdGlvbgAAAAABAAAAAAAAAAZzZW5kZXIAAAAAB9AAAAAJU2VuZGVyS2V5AAAAAAAAAQAAAAEAAAAAAAAAOVJldHVybnMgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIE9uZVNpZyBkZXBsb3ltZW50LgAAAAAAAAlvbmVzaWdfaWQAAAAAAAAAAAAAAQAAAAYAAAAAAAAAJlJldHVybnMgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24gbm9uY2UuAAAAAAAFbm9uY2UAAAAAAAAAAAAAAQAAAAYAAAAAAAAAPlJldHVybnMgdGhlIGN1cnJlbnQgc2VlZCB1c2VkIGZvciBFSVAtNzEyIGRpZ2VzdCBjb25zdHJ1Y3Rpb24uAAAAAAAEc2VlZAAAAAAAAAABAAAD7gAAACAAAAAAAAAAJFJldHVybnMgdGhlIGNvbnRyYWN0IHZlcnNpb24gc3RyaW5nLgAAAAd2ZXJzaW9uAAAAAAAAAAABAAAAEAAAAAAAAABFUmV0dXJucyB0aGUgbGVhZiBlbmNvZGluZyB2ZXJzaW9uIHVzZWQgZm9yIG1lcmtsZSBwcm9vZiBjb25zdHJ1Y3Rpb24uAAAAAAAAFWxlYWZfZW5jb2RpbmdfdmVyc2lvbgAAAAAAAAAAAAABAAAABAAAAAAAAAIFQ29uc3RydWN0b3IgdG8gaW5pdGlhbGl6ZSB0aGUgT25lU2lnIGNvbnRyYWN0IHdpdGggaW5pdGlhbCBzdGF0ZQoKIyBBcmd1bWVudHMKKiBgb25lc2lnX2lkYCAtIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIE9uZVNpZyBkZXBsb3ltZW50CiogYHNlZWRgIC0gSW5pdGlhbCBzZWVkIHZhbHVlIGZvciBtZXJrbGUgcm9vdCB2ZXJpZmljYXRpb24KKiBgc2lnbmVyc2AgLSBBcnJheSBvZiBpbml0aWFsIHNpZ25lciBhZGRyZXNzZXMgKDMyIGJ5dGVzIGVhY2gsIEV0aGVyZXVtIGFkZHJlc3NlcyBwYWRkZWQpCiogYHRocmVzaG9sZGAgLSBOdW1iZXIgb2Ygc2lnbmF0dXJlcyByZXF1aXJlZCBmb3IgdHJhbnNhY3Rpb24gZXhlY3V0aW9uCiogYGV4ZWN1dG9yc2AgLSBBcnJheSBvZiBpbml0aWFsIGV4ZWN1dG9yIHB1YmxpYyBrZXlzIChCeXRlc048MzI+KQoqIGBleGVjdXRvcl9yZXF1aXJlZGAgLSBXaGV0aGVyIGV4ZWN1dG9yIHBlcm1pc3Npb24gaXMgcmVxdWlyZWQgZm9yIHRyYW5zYWN0aW9uIGV4ZWN1dGlvbgAAAAAAAA1fX2NvbnN0cnVjdG9yAAAAAAAABgAAAAAAAAAJb25lc2lnX2lkAAAAAAAABgAAAAAAAAAEc2VlZAAAA+4AAAAgAAAAAAAAAAdzaWduZXJzAAAAA+oAAAPuAAAAFAAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAJZXhlY3V0b3JzAAAAAAAD6gAAA+4AAAAgAAAAAAAAABFleGVjdXRvcl9yZXF1aXJlZAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAKYXV0aG9yaXplcgAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAABJQWRkcyBvciByZW1vdmVzIGEgc2lnbmVyIGZyb20gdGhlIG11bHRpc2lnLiBSZXF1aXJlcyBvd25lciBhdXRob3JpemF0aW9uLgAAAAAAAApzZXRfc2lnbmVyAAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAAAAAERTZXRzIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIChxdW9ydW0pLiBSZXF1aXJlcyBvd25lciBhdXRob3JpemF0aW9uLgAAAA1zZXRfdGhyZXNob2xkAAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAAAAAAH1JldHVybnMgYWxsIHJlZ2lzdGVyZWQgc2lnbmVycy4AAAAAC2dldF9zaWduZXJzAAAAAAAAAAABAAAD6gAAA+4AAAAUAAAAAAAAAC9SZXR1cm5zIHRoZSB0b3RhbCBudW1iZXIgb2YgcmVnaXN0ZXJlZCBzaWduZXJzLgAAAAANdG90YWxfc2lnbmVycwAAAAAAAAAAAAABAAAABAAAAAAAAAAsQ2hlY2tzIGlmIGFuIGFkZHJlc3MgaXMgYSByZWdpc3RlcmVkIHNpZ25lci4AAAAJaXNfc2lnbmVyAAAAAAAAAQAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAABAAAAAAAAADFSZXR1cm5zIHRoZSBjdXJyZW50IHNpZ25hdHVyZSB0aHJlc2hvbGQgKHF1b3J1bSkuAAAAAAAACXRocmVzaG9sZAAAAAAAAAAAAAABAAAABAAAAAAAAAA1VmVyaWZpZXMgc2lnbmF0dXJlcyBhZ2FpbnN0IHRoZSBjb25maWd1cmVkIHRocmVzaG9sZC4AAAAAAAARdmVyaWZ5X3NpZ25hdHVyZXMAAAAAAAACAAAAAAAAAAZkaWdlc3QAAAAAA+4AAAAgAAAAAAAAAApzaWduYXR1cmVzAAAAAAPqAAAD7gAAAEEAAAAAAAAAAAAAAC9WZXJpZmllcyBzaWduYXR1cmVzIGFnYWluc3QgYSBjdXN0b20gdGhyZXNob2xkLgAAAAATdmVyaWZ5X25fc2lnbmF0dXJlcwAAAAADAAAAAAAAAAZkaWdlc3QAAAAAA+4AAAAgAAAAAAAAAApzaWduYXR1cmVzAAAAAAPqAAAD7gAAAEEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAAAAAAAKVFeHRlbmRzIHRoZSBpbnN0YW5jZSBUVEwuCgojIEFyZ3VtZW50cwoKKiBgdGhyZXNob2xkYCAtIFRoZSB0aHJlc2hvbGQgdG8gZXh0ZW5kIHRoZSBUVEwgKGlmIGN1cnJlbnQgVFRMIGlzIGJlbG93IHRoaXMsIGV4dGVuZCkuCiogYGV4dGVuZF90b2AgLSBUaGUgVFRMIHRvIGV4dGVuZCB0by4AAAAAAAATZXh0ZW5kX2luc3RhbmNlX3R0bAAAAAACAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAlleHRlbmRfdG8AAAAAAAAEAAAAAAAAAAAAAAGPU2V0cyBUVEwgY29uZmlncyBmb3IgaW5zdGFuY2UgYW5kIHBlcnNpc3RlbnQgc3RvcmFnZS4KCi0gYE5vbmVgIHZhbHVlcyByZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgY29uZmlnIChkaXNhYmxlcyBhdXRvLWV4dGVuc2lvbiBmb3IgdGhhdCB0eXBlKQotIFZhbGlkYXRlcyB0aGF0IGB0aHJlc2hvbGQgPD0gZXh0ZW5kX3RvIDw9IE1BWF9UVExgCgojIEFyZ3VtZW50cwotIGBpbnN0YW5jZWAgLSBUVEwgY29uZmlnIGZvciBpbnN0YW5jZSBzdG9yYWdlCi0gYHBlcnNpc3RlbnRgIC0gVFRMIGNvbmZpZyBmb3IgcGVyc2lzdGVudCBzdG9yYWdlCgojIFBhbmljcwotIGBUdGxDb25maWdGcm96ZW5gIGlmIGNvbmZpZ3MgYXJlIGZyb3plbgotIGBJbnZhbGlkVHRsQ29uZmlnYCBpZiB2YWxpZGF0aW9uIGZhaWxzAAAAAA9zZXRfdHRsX2NvbmZpZ3MAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAASFJldHVybnMgdGhlIGN1cnJlbnQgVFRMIGNvbmZpZ3MgYXMgKGluc3RhbmNlX2NvbmZpZywgcGVyc2lzdGVudF9jb25maWcpLgAAAAt0dGxfY29uZmlncwAAAAAAAAAAAQAAA+0AAAACAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAOFQZXJtYW5lbnRseSBmcmVlemVzIFRUTCBjb25maWdzLCBwcmV2ZW50aW5nIGFueSBmdXR1cmUgbW9kaWZpY2F0aW9ucy4KClRoaXMgaXMgaXJyZXZlcnNpYmxlIGFuZCBwcm92aWRlcyBpbW11dGFiaWxpdHkgZ3VhcmFudGVlcyB0byB1c2Vycy4KRW1pdHMgYFR0bENvbmZpZ3NGcm96ZW5gIGV2ZW50LgoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnQWxyZWFkeUZyb3plbmAgaWYgYWxyZWFkeSBmcm96ZW4AAAAAAAASZnJlZXplX3R0bF9jb25maWdzAAAAAAAAAAAAAAAAAAAAAAAnUmV0dXJucyB3aGV0aGVyIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAABVpc190dGxfY29uZmlnc19mcm96ZW4AAAAAAAAAAAAAAQAAAAEAAAACAAAAAAAAAAAAAAANT25lU2lnU3RvcmFnZQAAAAAAAAUAAAAAAAAAAAAAAAlFeGVjdXRvcnMAAAAAAAAAAAAAAAAAABBFeGVjdXRvclJlcXVpcmVkAAAAAAAAAAAAAAAIT25lU2lnSWQAAAAAAAAAAAAAAARTZWVkAAAAAAAAAAAAAAAFTm9uY2UAAAAAAAAEAAAAHEJ1ZmZlclJlYWRlckVycm9yOiAxMDAwLTEwMDkAAAAAAAAAEUJ1ZmZlclJlYWRlckVycm9yAAAAAAAAAgAAAAAAAAANSW52YWxpZExlbmd0aAAAAAAAA+gAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA+kAAAAEAAAAHEJ1ZmZlcldyaXRlckVycm9yOiAxMDEwLTEwMTkAAAAAAAAAEUJ1ZmZlcldyaXRlckVycm9yAAAAAAAAAQAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD8gAAAAQAAAAfVHRsQ29uZmlndXJhYmxlRXJyb3I6IDEwMjAtMTAyOQAAAAAAAAAAFFR0bENvbmZpZ3VyYWJsZUVycm9yAAAAAwAAAAAAAAAQSW52YWxpZFR0bENvbmZpZwAAA/wAAAAAAAAAD1R0bENvbmZpZ0Zyb3plbgAAAAP9AAAAAAAAABZUdGxDb25maWdBbHJlYWR5RnJvemVuAAAAAAP+AAAABAAAABdPd25hYmxlRXJyb3I6IDEwMzAtMTAzOQAAAAAAAAAADE93bmFibGVFcnJvcgAAAAcAAAAAAAAAEUludmFsaWRBdXRob3JpemVyAAAAAAAEBgAAAAAAAAATSW52YWxpZFBlbmRpbmdPd25lcgAAAAQHAAAAAAAAAApJbnZhbGlkVHRsAAAAAAQIAAAAAAAAABFOb1BlbmRpbmdUcmFuc2ZlcgAAAAAABAkAAAAAAAAAD093bmVyQWxyZWFkeVNldAAAAAQKAAAAAAAAAAtPd25lck5vdFNldAAAAAQLAAAAAAAAABJUcmFuc2ZlckluUHJvZ3Jlc3MAAAAABAwAAAAEAAAAGEJ5dGVzRXh0RXJyb3I6IDEwNDAtMTA0OQAAAAAAAAANQnl0ZXNFeHRFcnJvcgAAAAAAAAEAAAAAAAAADkxlbmd0aE1pc21hdGNoAAAAAAQQAAAABAAAABtVcGdyYWRlYWJsZUVycm9yOiAxMDUwLTEwNTkAAAAAAAAAABBVcGdyYWRlYWJsZUVycm9yAAAAAgAAAAAAAAAUSW52YWxpZE1pZ3JhdGlvbkRhdGEAAAQaAAAAAAAAABNNaWdyYXRpb25Ob3RBbGxvd2VkAAAABBsAAAAEAAAAGE11bHRpU2lnRXJyb3I6IDEwNjAtMTA2OQAAAAAAAAANTXVsdGlTaWdFcnJvcgAAAAAAAAkAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAEJAAAAAAAAAARSW52YWxpZEF1dGhvcml6ZXIAAAAAAAQlAAAAAAAAAA1JbnZhbGlkU2lnbmVyAAAAAAAEJgAAAAAAAAAOU2lnbmF0dXJlRXJyb3IAAAAABCcAAAAAAAAAE1NpZ25lckFscmVhZHlFeGlzdHMAAAAEKAAAAAAAAAAOU2lnbmVyTm90Rm91bmQAAAAABCkAAAAAAAAAHVRvdGFsU2lnbmVyc0xlc3NUaGFuVGhyZXNob2xkAAAAAAAEKgAAAAAAAAAPVW5zb3J0ZWRTaWduZXJzAAAABCsAAAAAAAAADVplcm9UaHJlc2hvbGQAAAAAAAQsAAAABAAAABRBdXRoRXJyb3I6IDEwNzAtMTA3OQAAAAAAAAAJQXV0aEVycm9yAAAAAAAAAQAAAAAAAAASQXV0aG9yaXplck5vdEZvdW5kAAAAAAQuAAAABAAAABRSYmFjRXJyb3I6IDEwODAtMTA4OQAAAAAAAAAJUmJhY0Vycm9yAAAAAAAABwAAAAAAAAARQWRtaW5Sb2xlTm90Rm91bmQAAAAAAAQ4AAAAAAAAABBJbmRleE91dE9mQm91bmRzAAAEOQAAAAAAAAAQTWF4Um9sZXNFeGNlZWRlZAAABDoAAAAAAAAAC1JvbGVJc0VtcHR5AAAABDsAAAAAAAAADFJvbGVOb3RGb3VuZAAABDwAAAAAAAAAC1JvbGVOb3RIZWxkAAAABD0AAAAAAAAADFVuYXV0aG9yaXplZAAABD4AAAAFAAAAMEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHNpZ25lciBpcyBhZGRlZCBvciByZW1vdmVkLgAAAAAAAAAJU2lnbmVyU2V0AAAAAAAAAQAAAApzaWduZXJfc2V0AAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAQAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAANkV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2lnbmF0dXJlIHRocmVzaG9sZCBpcyBjaGFuZ2VkLgAAAAAAAAAAAAxUaHJlc2hvbGRTZXQAAAABAAAADXRocmVzaG9sZF9zZXQAAAAAAAABAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAPTXVsdGlTaWdTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAdTaWduZXJzAAAAAAAAAAAAAAAACVRocmVzaG9sZAAAAAAAAAUAAABXRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyB0cmFuc2ZlcnJlZCAoYm90aCBzaW5nbGUtc3RlcCBhbmQgdHdvLXN0ZXAgY29tcGxldGlvbikuAAAAAAAAAAAUT3duZXJzaGlwVHJhbnNmZXJyZWQAAAABAAAAFW93bmVyc2hpcF90cmFuc2ZlcnJlZAAAAAAAAAIAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAIAAAAFAAAAO0V2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgcHJvcG9zZWQuAAAAAAAAAAAVT3duZXJzaGlwVHJhbnNmZXJyaW5nAAAAAAAAAQAAABZvd25lcnNoaXBfdHJhbnNmZXJyaW5nAAAAAAADAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAIAAAAFAAAAPEV2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgY2FuY2VsbGVkLgAAAAAAAAAaT3duZXJzaGlwVHJhbnNmZXJDYW5jZWxsZWQAAAAAAAEAAAAcb3duZXJzaGlwX3RyYW5zZmVyX2NhbmNlbGxlZAAAAAIAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAAAAAAAF2NhbmNlbGxlZF9wZW5kaW5nX293bmVyAAAAABMAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyByZW5vdW5jZWQuAAAAAAAAAAAAEk93bmVyc2hpcFJlbm91bmNlZAAAAAAAAQAAABNvd25lcnNoaXBfcmVub3VuY2VkAAAAAAEAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA5Pd25hYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABU93bmVyAAAAAAAAAAAAAAAAAAAMUGVuZGluZ093bmVyAAAABQAAACVFdmVudCBlbWl0dGVkIHdoZW4gYSByb2xlIGlzIGdyYW50ZWQuAAAAAAAAAAAAAAtSb2xlR3JhbnRlZAAAAAABAAAADHJvbGVfZ3JhbnRlZAAAAAMAAAAAAAAABHJvbGUAAAARAAAAAQAAAAAAAAAHYWNjb3VudAAAAAATAAAAAQAAAAAAAAAGY2FsbGVyAAAAAAATAAAAAAAAAAIAAAAFAAAAJUV2ZW50IGVtaXR0ZWQgd2hlbiBhIHJvbGUgaXMgcmV2b2tlZC4AAAAAAAAAAAAAC1JvbGVSZXZva2VkAAAAAAEAAAAMcm9sZV9yZXZva2VkAAAAAwAAAAAAAAAEcm9sZQAAABEAAAABAAAAAAAAAAdhY2NvdW50AAAAABMAAAABAAAAAAAAAAZjYWxsZXIAAAAAABMAAAAAAAAAAgAAAAUAAAArRXZlbnQgZW1pdHRlZCB3aGVuIGEgcm9sZSBhZG1pbiBpcyBjaGFuZ2VkLgAAAAAAAAAAEFJvbGVBZG1pbkNoYW5nZWQAAAABAAAAEnJvbGVfYWRtaW5fY2hhbmdlZAAAAAAAAwAAAAAAAAAEcm9sZQAAABEAAAABAAAAAAAAABNwcmV2aW91c19hZG1pbl9yb2xlAAAAA+gAAAARAAAAAAAAAAAAAAAObmV3X2FkbWluX3JvbGUAAAAAA+gAAAARAAAAAAAAAAIAAAACAAAAAAAAAAAAAAALUmJhY1N0b3JhZ2UAAAAABQAAAAAAAAAAAAAADUV4aXN0aW5nUm9sZXMAAAAAAAABAAAAAAAAABJSb2xlSW5kZXhUb0FjY291bnQAAAAAAAIAAAARAAAABAAAAAEAAAAAAAAAElJvbGVBY2NvdW50VG9JbmRleAAAAAAAAgAAABEAAAATAAAAAQAAAAAAAAARUm9sZUFjY291bnRzQ291bnQAAAAAAAABAAAAEQAAAAEAAAAAAAAACVJvbGVBZG1pbgAAAAAAAAEAAAARAAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQAAAAFAAAAJ0V2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgc2V0LgAAAAAAAAAADVR0bENvbmZpZ3NTZXQAAAAAAAABAAAAD3R0bF9jb25maWdzX3NldAAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAAAAAAAAQVHRsQ29uZmlnc0Zyb3plbgAAAAEAAAASdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAABBUdGxDb25maWdTdG9yYWdlAAAAAwAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAISW5zdGFuY2UAAAAAAAAAAAAAAApQZXJzaXN0ZW50AAAAAAACAAAAAAAAAAAAAAASVXBncmFkZWFibGVTdG9yYWdlAAAAAAABAAAAAAAAAAAAAAAJTWlncmF0aW5nAAAAAB4RY29udHJhY3RlbnZtZXRhdjAAAAAAAAAAGQAAAAAAbw5jb250cmFjdG1ldGF2MAAAAAAAAAAFcnN2ZXIAAAAAAAAGMS45MC4wAAAAAAAAAAAACHJzc2RrdmVyAAAALzI1LjEuMSM5NGMyYTNiM2E1ZGVkNmI5Y2Y5Y2VmMGMyMDdiZjg4MDRmM2ViMjk0AACfAw5jb250cmFjdG1ldGF2MAAAAAAAAAAGY2xpdmVyAAAAAAAvMjUuMS4wI2EwNDhhNTdhNzU3NjI0NThiNDg3MDUyZTAwMjFlYTcwNGE5MjZiZWUAAAAAAAAAAAZibGRpbWcAAAAAAGVkb2NrZXIuaW8vc3RlbGxhci9zdGVsbGFyLWNsaUBzaGEyNTY6YzMyNzc0YmZkMmE1N2JlNWMyZWZlNTMxOTVjMzRiY2QwOTNjNzk5Y2I3MDg3ZGY1Y2RjNWIyYjMxZmE4YzY1ZgAAAAAAAAAAAAAGYmxkb3B0AAAAAAAaLS1tYW5pZmVzdC1wYXRoPUNhcmdvLnRvbWwAAAAAAAAAAAAGYmxkb3B0AAAAAAAKLS1vcHRpbWl6ZQAAAAAAAAAAAAZibGRvcHQAAAAAABAtLXBhY2thZ2U9b25lc2lnAAAAAAAAAA1zb3VyY2Vfc2hhMjU2AAAAAAAAQDVhY2NjN2I3YWIyMDVmMWNhYmI3NzZjNjQ5Mzc4NDgxNzI4YjUxM2Y0N2QzNmY0YjEzMGJhNWFkMzg1MTYwZDk=\";\n\n/**\n * Pre-computed WASM hash (SHA-256)\n * Use this when the WASM is already uploaded on-chain\n */\nexport const WASM_HASH = \"7f59b1e8865ffd1bfb3437707ac5b12d87a3a828827e200e3ac9418809195945\";\n\n/**\n * Get the WASM bytecode as a Buffer\n * Use this to upload the WASM to the network\n */\nexport function getWasmBuffer(): Buffer {\n return Buffer.from(WASM_BASE64, 'base64');\n}\n\n\n\n\n\nexport const OneSigError = {\n 1: {message:\"ExecutorAlreadyExists\"},\n 2: {message:\"ExecutorAlreadyInitialized\"},\n 3: {message:\"ExecutorNotFound\"},\n 4: {message:\"InvalidAuthContext\"},\n 5: {message:\"InvalidProofOrNonce\"},\n 6: {message:\"MerkleRootExpired\"},\n 7: {message:\"NonContractInvoke\"},\n 8: {message:\"OnlyExecutorOrSigner\"},\n 9: {message:\"SignerExecutionProofExpired\"}\n}\n\n\n/**\n * A single Soroban invocation that will be executed atomically inside a OneSig transaction.\n */\nexport interface Call {\n /**\n * ABI-encoded arguments forwarded to the target method.\n */\nargs: Array<any>;\n /**\n * Method identifier that will be called on `to`.\n */\nfunc: string;\n /**\n * Sub-invocations that the OneSig contract must pre-authorize\n * via `authorize_as_current_contract` before invoking this call.\n */\nsub_invocations: Array<InvokerContractAuthEntry>;\n /**\n * Target contract address (mirrors `invoke_contract`'s `contractAddress`).\n */\nto: string;\n}\n\n\n/**\n * A merkle leaf describing the call that should be executed.\n */\nexport interface Transaction {\n /**\n * The single authorized invocation.\n */\ncall: Call;\n /**\n * Merkle proof (sibling hashes) proving `call` belongs to an authorised root.\n */\nproof: Array<Buffer>;\n}\n\n\n/**\n * Account Abstraction payload used by `__check_auth` to validate an execution.\n */\nexport interface TransactionAuthData {\n /**\n * Unix timestamp (seconds) after which the root is invalid.\n */\nexpiry: u64;\n /**\n * Approved merkle root covering the transaction.\n */\nmerkle_root: Buffer;\n /**\n * Merkle proof binding the calls to `merkle_root`.\n */\nproof: Array<Buffer>;\n /**\n * Entity submitting the transaction (signer, executor, or permissionless).\n */\nsender: Sender;\n /**\n * Threshold signatures (r‖s‖v) covering `merkle_root` and `expiry`.\n */\nsignatures: Array<Buffer>;\n}\n\n/**\n * Represents the entity that is authorising the `__check_auth` invocation.\n */\nexport type Sender = {tag: \"Signer\", values: readonly [SignerExecutionProof]} | {tag: \"Executor\", values: readonly [Buffer, Buffer]} | {tag: \"Permissionless\", values: void};\n\n\n/**\n * Payload bound to a signer-as-executor submission.\n * \n * Enforces the spec's \"signer acting as executor\" guarantee on Stellar:\n * a secp256k1 signer commits to the ed25519 submitter via `signature`, and the\n * submitter proves control of `delegate` via `delegate_proof`. `delegate_proof` is a\n * Soroban-specific field: `__check_auth` has no native `msg.sender`, so it is how this\n * implementation enforces the spec's `submitter == delegate` check.\n */\nexport interface SignerExecutionProof {\n /**\n * ed25519 public key (32 bytes) the signer binds as the submitter.\n */\ndelegate: Buffer;\n /**\n * ed25519 signature (64 bytes) by `delegate` over the Soroban runtime\n * payload hash — proves the submitter actually holds that key.\n */\ndelegate_proof: Buffer;\n /**\n * Unix timestamp (seconds) after which `signature` can no longer be used.\n */\nexpiry: u64;\n /**\n * secp256k1 signature (r‖s‖v, 65 bytes) over the EIP-712 digest of\n * `SignerExecutionAuthorization { leafHash, merkleRoot, delegate, expiry }`.\n */\nsignature: Buffer;\n}\n\n/**\n * Identifier used by `can_execute_transaction` to describe the caller.\n * Signers use Ethereum-style 20-byte addresses while executors use ed25519 public keys.\n */\nexport type SenderKey = {tag: \"Signer\", values: readonly [Buffer]} | {tag: \"Executor\", values: readonly [Buffer]};\n\nexport type OneSigStorage = {tag: \"Executors\", values: void} | {tag: \"ExecutorRequired\", values: void} | {tag: \"OneSigId\", values: void} | {tag: \"Seed\", values: void} | {tag: \"Nonce\", values: void};\n\n/**\n * BufferReaderError: 1000-1009\n */\nexport const BufferReaderError = {\n 1000: {message:\"InvalidLength\"},\n 1001: {message:\"InvalidAddressPayload\"}\n}\n\n/**\n * BufferWriterError: 1010-1019\n */\nexport const BufferWriterError = {\n 1010: {message:\"InvalidAddressPayload\"}\n}\n\n/**\n * TtlConfigurableError: 1020-1029\n */\nexport const TtlConfigurableError = {\n 1020: {message:\"InvalidTtlConfig\"},\n 1021: {message:\"TtlConfigFrozen\"},\n 1022: {message:\"TtlConfigAlreadyFrozen\"}\n}\n\n/**\n * OwnableError: 1030-1039\n */\nexport const OwnableError = {\n 1030: {message:\"InvalidAuthorizer\"},\n 1031: {message:\"InvalidPendingOwner\"},\n 1032: {message:\"InvalidTtl\"},\n 1033: {message:\"NoPendingTransfer\"},\n 1034: {message:\"OwnerAlreadySet\"},\n 1035: {message:\"OwnerNotSet\"},\n 1036: {message:\"TransferInProgress\"}\n}\n\n/**\n * BytesExtError: 1040-1049\n */\nexport const BytesExtError = {\n 1040: {message:\"LengthMismatch\"}\n}\n\n/**\n * UpgradeableError: 1050-1059\n */\nexport const UpgradeableError = {\n 1050: {message:\"InvalidMigrationData\"},\n 1051: {message:\"MigrationNotAllowed\"}\n}\n\n/**\n * MultiSigError: 1060-1069\n */\nexport const MultiSigError = {\n 1060: {message:\"AlreadyInitialized\"},\n 1061: {message:\"InvalidAuthorizer\"},\n 1062: {message:\"InvalidSigner\"},\n 1063: {message:\"SignatureError\"},\n 1064: {message:\"SignerAlreadyExists\"},\n 1065: {message:\"SignerNotFound\"},\n 1066: {message:\"TotalSignersLessThanThreshold\"},\n 1067: {message:\"UnsortedSigners\"},\n 1068: {message:\"ZeroThreshold\"}\n}\n\n/**\n * AuthError: 1070-1079\n */\nexport const AuthError = {\n 1070: {message:\"AuthorizerNotFound\"}\n}\n\n/**\n * RbacError: 1080-1089\n */\nexport const RbacError = {\n 1080: {message:\"AdminRoleNotFound\"},\n 1081: {message:\"IndexOutOfBounds\"},\n 1082: {message:\"MaxRolesExceeded\"},\n 1083: {message:\"RoleIsEmpty\"},\n 1084: {message:\"RoleNotFound\"},\n 1085: {message:\"RoleNotHeld\"},\n 1086: {message:\"Unauthorized\"}\n}\n\n\n\nexport type MultiSigStorage = {tag: \"Signers\", values: void} | {tag: \"Threshold\", values: void};\n\n\n\n\n\nexport type OwnableStorage = {tag: \"Owner\", values: void} | {tag: \"PendingOwner\", values: void};\n\n\n\n\nexport type RbacStorage = {tag: \"ExistingRoles\", values: void} | {tag: \"RoleIndexToAccount\", values: readonly [string, u32]} | {tag: \"RoleAccountToIndex\", values: readonly [string, string]} | {tag: \"RoleAccountsCount\", values: readonly [string]} | {tag: \"RoleAdmin\", values: readonly [string]};\n\n\n/**\n * TTL configuration: threshold (when to extend) and extend_to (target TTL).\n */\nexport interface TtlConfig {\n /**\n * Target TTL after extension (in ledgers).\n */\nextend_to: u32;\n /**\n * TTL threshold that triggers extension (in ledgers).\n */\nthreshold: u32;\n}\n\n\n\nexport type TtlConfigStorage = {tag: \"Frozen\", values: void} | {tag: \"Instance\", values: void} | {tag: \"Persistent\", values: void};\n\nexport type UpgradeableStorage = {tag: \"Migrating\", values: void};\n\nexport interface Client {\n /**\n * Construct and simulate a set_executor 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.\n * Adds or removes an executor based on the `active` flag.\n */\n set_executor: ({executor, active}: {executor: Buffer, active: boolean}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a set_executor_required 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.\n * Sets whether an executor is required for transactions.\n */\n set_executor_required: ({required}: {required: boolean}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a get_executors 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.\n * Returns the list of all registered executors.\n */\n get_executors: (options?: MethodOptions) => Promise<AssembledTransaction<Array<Buffer>>>\n\n /**\n * Construct and simulate a is_executor 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.\n * Checks whether a given address is a registered executor.\n */\n is_executor: ({executor}: {executor: Buffer}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<boolean>>\n\n /**\n * Construct and simulate a total_executors 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.\n * Returns the total number of registered executors.\n */\n total_executors: (options?: MethodOptions) => Promise<AssembledTransaction<u32>>\n\n /**\n * Construct and simulate a executor_required 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.\n * Returns whether an executor signature is required.\n */\n executor_required: (options?: MethodOptions) => Promise<AssembledTransaction<boolean>>\n\n /**\n * Construct and simulate a set_seed 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.\n * Updates the seed used for EIP-712 digest construction and emits an event.\n */\n set_seed: ({seed}: {seed: Buffer}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a execute_transaction 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.\n * Dispatches external contract calls. All security verification happens in `__check_auth`.\n * Each call's `sub_invocations` are pre-authorized via `authorize_as_current_contract`\n * immediately before invoking, enabling deeper sub-invocations (e.g. token transfers).\n */\n execute_transaction: ({calls}: {calls: Array<Call>}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a verify_merkle_root 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.\n * Verifies a merkle root by checking expiry and validating EIP-712 signatures.\n */\n verify_merkle_root: ({merkle_root, expiry, signatures}: {merkle_root: Buffer, expiry: u64, signatures: Array<Buffer>}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a verify_transaction_proof 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.\n * Verifies a transaction's merkle proof against the given root using the current nonce.\n */\n verify_transaction_proof: ({merkle_root, transaction}: {merkle_root: Buffer, transaction: Transaction}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a encode_leaf 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.\n * Encodes a leaf node by serializing version, onesig ID, contract address, nonce, and call, then double-hashing with keccak256.\n */\n encode_leaf: ({nonce, call}: {nonce: u64, call: Call}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Buffer>>\n\n /**\n * Construct and simulate a can_execute_transaction 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.\n * Checks if the sender is authorized to execute a transaction (executor or signer when required).\n */\n can_execute_transaction: ({sender}: {sender: SenderKey}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<boolean>>\n\n /**\n * Construct and simulate a onesig_id 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.\n * Returns the unique identifier for this OneSig deployment.\n */\n onesig_id: (options?: MethodOptions) => Promise<AssembledTransaction<u64>>\n\n /**\n * Construct and simulate a nonce 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.\n * Returns the current transaction nonce.\n */\n nonce: (options?: MethodOptions) => Promise<AssembledTransaction<u64>>\n\n /**\n * Construct and simulate a seed 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.\n * Returns the current seed used for EIP-712 digest construction.\n */\n seed: (options?: MethodOptions) => Promise<AssembledTransaction<Buffer>>\n\n /**\n * Construct and simulate a 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.\n * Returns the contract version string.\n */\n version: (options?: MethodOptions) => Promise<AssembledTransaction<string>>\n\n /**\n * Construct and simulate a leaf_encoding_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.\n * Returns the leaf encoding version used for merkle proof construction.\n */\n leaf_encoding_version: (options?: MethodOptions) => Promise<AssembledTransaction<u32>>\n\n /**\n * 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.\n */\n authorizer: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>\n\n /**\n * Construct and simulate a set_signer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Adds or removes a signer from the multisig. Requires owner authorization.\n */\n set_signer: ({signer, active}: {signer: Buffer, active: boolean}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a set_threshold transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Sets the signature threshold (quorum). Requires owner authorization.\n */\n set_threshold: ({threshold}: {threshold: u32}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a get_signers transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Returns all registered signers.\n */\n get_signers: (options?: MethodOptions) => Promise<AssembledTransaction<Array<Buffer>>>\n\n /**\n * Construct and simulate a total_signers transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Returns the total number of registered signers.\n */\n total_signers: (options?: MethodOptions) => Promise<AssembledTransaction<u32>>\n\n /**\n * Construct and simulate a is_signer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Checks if an address is a registered signer.\n */\n is_signer: ({signer}: {signer: Buffer}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<boolean>>\n\n /**\n * Construct and simulate a threshold transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Returns the current signature threshold (quorum).\n */\n threshold: (options?: MethodOptions) => Promise<AssembledTransaction<u32>>\n\n /**\n * Construct and simulate a verify_signatures transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Verifies signatures against the configured threshold.\n */\n verify_signatures: ({digest, signatures}: {digest: Buffer, signatures: Array<Buffer>}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a verify_n_signatures transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Verifies signatures against a custom threshold.\n */\n verify_n_signatures: ({digest, signatures, threshold}: {digest: Buffer, signatures: Array<Buffer>, threshold: u32}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a extend_instance_ttl transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Extends the instance TTL.\n * \n * # Arguments\n * \n * * `threshold` - The threshold to extend the TTL (if current TTL is below this, extend).\n * * `extend_to` - The TTL to extend to.\n */\n extend_instance_ttl: ({threshold, extend_to}: {threshold: u32, extend_to: u32}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a set_ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Sets TTL configs for instance and persistent storage.\n * \n * - `None` values remove the corresponding config (disables auto-extension for that type)\n * - Validates that `threshold <= extend_to <= MAX_TTL`\n * \n * # Arguments\n * - `instance` - TTL config for instance storage\n * - `persistent` - TTL config for persistent storage\n * \n * # Panics\n * - `TtlConfigFrozen` if configs are frozen\n * - `InvalidTtlConfig` if validation fails\n */\n set_ttl_configs: ({instance, persistent}: {instance: Option<TtlConfig>, persistent: Option<TtlConfig>}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Returns the current TTL configs as (instance_config, persistent_config).\n */\n ttl_configs: (options?: MethodOptions) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>\n\n /**\n * Construct and simulate a freeze_ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Permanently freezes TTL configs, preventing any future modifications.\n * \n * This is irreversible and provides immutability guarantees to users.\n * Emits `TtlConfigsFrozen` event.\n * \n * # Panics\n * - `TtlConfigAlreadyFrozen` if already frozen\n */\n freeze_ttl_configs: (options?: MethodOptions) => Promise<AssembledTransaction<null>>\n\n /**\n * Construct and simulate a is_ttl_configs_frozen transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.\n * Returns whether TTL configs are frozen.\n */\n is_ttl_configs_frozen: (options?: MethodOptions) => Promise<AssembledTransaction<boolean>>\n\n}\nexport class Client extends ContractClient {\n static async deploy<T = Client>(\n /** Constructor/Initialization Args for the contract's `__constructor` method */\n {onesig_id, seed, signers, threshold, executors, executor_required}: {onesig_id: u64, seed: Buffer, signers: Array<Buffer>, threshold: u32, executors: Array<Buffer>, executor_required: boolean},\n /** Options for initializing a Client as well as for calling a method, with extras specific to deploying. */\n options: MethodOptions &\n Omit<ContractClientOptions, \"contractId\"> & {\n /** The hash of the Wasm blob, which must already be installed on-chain. */\n wasmHash: Buffer | string;\n /** Salt used to generate the contract's ID. Passed through to {@link Operation.createCustomContract}. Default: random. */\n salt?: Buffer | Uint8Array;\n /** The format used to decode `wasmHash`, if it's provided as a string. */\n format?: \"hex\" | \"base64\";\n }\n ): Promise<AssembledTransaction<T>> {\n return ContractClient.deploy({onesig_id, seed, signers, threshold, executors, executor_required}, options)\n }\n constructor(public readonly options: ContractClientOptions) {\n super(\n new ContractSpec([ \"AAAABQAAAC9FdmVudCBwdWJsaXNoZWQgd2hlbiB0aGUgc2VlZCBpcyBzZXQgb3IgdXBkYXRlZAAAAAAAAAAAB1NlZWRTZXQAAAAAAQAAAAhzZWVkX3NldAAAAAEAAAAAAAAABHNlZWQAAAPuAAAAIAAAAAAAAAAC\",\n \"AAAABQAAAC5FdmVudCBwdWJsaXNoZWQgd2hlbiBhIHRyYW5zYWN0aW9uIGlzIGV4ZWN1dGVkAAAAAAAAAAAAE1RyYW5zYWN0aW9uRXhlY3V0ZWQAAAAAAQAAABR0cmFuc2FjdGlvbl9leGVjdXRlZAAAAAIAAAAAAAAAC21lcmtsZV9yb290AAAAA+4AAAAgAAAAAAAAAAAAAAAFbm9uY2UAAAAAAAAGAAAAAAAAAAI=\",\n \"AAAABQAAADRFdmVudCBwdWJsaXNoZWQgd2hlbiBhbiBleGVjdXRvciBpcyBhZGRlZCBvciByZW1vdmVkAAAAAAAAAAtFeGVjdXRvclNldAAAAAABAAAADGV4ZWN1dG9yX3NldAAAAAIAAAAAAAAACGV4ZWN1dG9yAAAD7gAAACAAAAABAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAg==\",\n \"AAAABQAAADRFdmVudCBwdWJsaXNoZWQgd2hlbiBleGVjdXRvciByZXF1aXJlbWVudCBpcyB0b2dnbGVkAAAAAAAAABNFeGVjdXRvclJlcXVpcmVkU2V0AAAAAAEAAAAVZXhlY3V0b3JfcmVxdWlyZWRfc2V0AAAAAAAAAQAAAAAAAAAIcmVxdWlyZWQAAAABAAAAAAAAAAI=\",\n \"AAAABAAAAAAAAAAAAAAAC09uZVNpZ0Vycm9yAAAAAAkAAAAAAAAAFUV4ZWN1dG9yQWxyZWFkeUV4aXN0cwAAAAAAAAEAAAAAAAAAGkV4ZWN1dG9yQWxyZWFkeUluaXRpYWxpemVkAAAAAAACAAAAAAAAABBFeGVjdXRvck5vdEZvdW5kAAAAAwAAAAAAAAASSW52YWxpZEF1dGhDb250ZXh0AAAAAAAEAAAAAAAAABNJbnZhbGlkUHJvb2ZPck5vbmNlAAAAAAUAAAAAAAAAEU1lcmtsZVJvb3RFeHBpcmVkAAAAAAAABgAAAAAAAAARTm9uQ29udHJhY3RJbnZva2UAAAAAAAAHAAAAAAAAABRPbmx5RXhlY3V0b3JPclNpZ25lcgAAAAgAAAAAAAAAG1NpZ25lckV4ZWN1dGlvblByb29mRXhwaXJlZAAAAAAJ\",\n \"AAAAAQAAAFlBIHNpbmdsZSBTb3JvYmFuIGludm9jYXRpb24gdGhhdCB3aWxsIGJlIGV4ZWN1dGVkIGF0b21pY2FsbHkgaW5zaWRlIGEgT25lU2lnIHRyYW5zYWN0aW9uLgAAAAAAAAAAAAAEQ2FsbAAAAAQAAAA1QUJJLWVuY29kZWQgYXJndW1lbnRzIGZvcndhcmRlZCB0byB0aGUgdGFyZ2V0IG1ldGhvZC4AAAAAAAAEYXJncwAAA+oAAAAAAAAALk1ldGhvZCBpZGVudGlmaWVyIHRoYXQgd2lsbCBiZSBjYWxsZWQgb24gYHRvYC4AAAAAAARmdW5jAAAAEQAAAHpTdWItaW52b2NhdGlvbnMgdGhhdCB0aGUgT25lU2lnIGNvbnRyYWN0IG11c3QgcHJlLWF1dGhvcml6ZQp2aWEgYGF1dGhvcml6ZV9hc19jdXJyZW50X2NvbnRyYWN0YCBiZWZvcmUgaW52b2tpbmcgdGhpcyBjYWxsLgAAAAAAD3N1Yl9pbnZvY2F0aW9ucwAAAAPqAAAH0AAAABhJbnZva2VyQ29udHJhY3RBdXRoRW50cnkAAABIVGFyZ2V0IGNvbnRyYWN0IGFkZHJlc3MgKG1pcnJvcnMgYGludm9rZV9jb250cmFjdGAncyBgY29udHJhY3RBZGRyZXNzYCkuAAAAAnRvAAAAAAAT\",\n \"AAAAAQAAADpBIG1lcmtsZSBsZWFmIGRlc2NyaWJpbmcgdGhlIGNhbGwgdGhhdCBzaG91bGQgYmUgZXhlY3V0ZWQuAAAAAAAAAAAAC1RyYW5zYWN0aW9uAAAAAAIAAAAhVGhlIHNpbmdsZSBhdXRob3JpemVkIGludm9jYXRpb24uAAAAAAAABGNhbGwAAAfQAAAABENhbGwAAABLTWVya2xlIHByb29mIChzaWJsaW5nIGhhc2hlcykgcHJvdmluZyBgY2FsbGAgYmVsb25ncyB0byBhbiBhdXRob3Jpc2VkIHJvb3QuAAAAAAVwcm9vZgAAAAAAA+oAAAPuAAAAIA==\",\n \"AAAAAQAAAExBY2NvdW50IEFic3RyYWN0aW9uIHBheWxvYWQgdXNlZCBieSBgX19jaGVja19hdXRoYCB0byB2YWxpZGF0ZSBhbiBleGVjdXRpb24uAAAAAAAAABNUcmFuc2FjdGlvbkF1dGhEYXRhAAAAAAUAAAA5VW5peCB0aW1lc3RhbXAgKHNlY29uZHMpIGFmdGVyIHdoaWNoIHRoZSByb290IGlzIGludmFsaWQuAAAAAAAABmV4cGlyeQAAAAAABgAAAC5BcHByb3ZlZCBtZXJrbGUgcm9vdCBjb3ZlcmluZyB0aGUgdHJhbnNhY3Rpb24uAAAAAAALbWVya2xlX3Jvb3QAAAAD7gAAACAAAAAwTWVya2xlIHByb29mIGJpbmRpbmcgdGhlIGNhbGxzIHRvIGBtZXJrbGVfcm9vdGAuAAAABXByb29mAAAAAAAD6gAAA+4AAAAgAAAASEVudGl0eSBzdWJtaXR0aW5nIHRoZSB0cmFuc2FjdGlvbiAoc2lnbmVyLCBleGVjdXRvciwgb3IgcGVybWlzc2lvbmxlc3MpLgAAAAZzZW5kZXIAAAAAB9AAAAAGU2VuZGVyAAAAAABFVGhyZXNob2xkIHNpZ25hdHVyZXMgKHLigJZz4oCWdikgY292ZXJpbmcgYG1lcmtsZV9yb290YCBhbmQgYGV4cGlyeWAuAAAAAAAACnNpZ25hdHVyZXMAAAAAA+oAAAPuAAAAQQ==\",\n \"AAAAAgAAAEhSZXByZXNlbnRzIHRoZSBlbnRpdHkgdGhhdCBpcyBhdXRob3Jpc2luZyB0aGUgYF9fY2hlY2tfYXV0aGAgaW52b2NhdGlvbi4AAAAAAAAABlNlbmRlcgAAAAAAAwAAAAEAAACqQSByZWdpc3RlcmVkIG11bHRpc2lnIHNpZ25lciBhY3RpbmcgYXMgaXRzIG93biBleGVjdXRvci4gQmluZHMgYSBzZWNwMjU2azEKYXV0aG9yaXphdGlvbiBzaWduYXR1cmUgdG8gdGhlIGVkMjU1MTkgc3VibWl0dGVyIChgZGVsZWdhdGVgKSwgcGVyIHRoZQpzaWduZXItYXMtZXhlY3V0b3Igc3BlYy4AAAAAAAZTaWduZXIAAAAAAAEAAAfQAAAAFFNpZ25lckV4ZWN1dGlvblByb29mAAAAAQAAAJJBIHJlZ2lzdGVyZWQgZXhlY3V0b3IgKGVkMjU1MTkpIHN1Ym1pdHRpbmcgdGhlIHRyYW5zYWN0aW9uLgpUaGUgdHVwbGUgaXMgYChwdWJsaWNfa2V5LCBzaWduYXR1cmUpYCB3aGVyZSB0aGUgc2lnbmF0dXJlIGNvdmVycyB0aGUgU29yb2JhbiBwYXlsb2FkLgAAAAAACEV4ZWN1dG9yAAAAAgAAA+4AAAAgAAAD7gAAAEAAAAAAAAAAUlBlcm1pc3Npb25sZXNzIGV4ZWN1dGlvbiAoYW55b25lIG1heSBzdWJtaXQgd2hlbiBgZXhlY3V0b3JfcmVxdWlyZWRgIGlzIGRpc2FibGVkKS4AAAAAAA5QZXJtaXNzaW9ubGVzcwAA\",\n \"AAAAAQAAAa9QYXlsb2FkIGJvdW5kIHRvIGEgc2lnbmVyLWFzLWV4ZWN1dG9yIHN1Ym1pc3Npb24uCgpFbmZvcmNlcyB0aGUgc3BlYydzICJzaWduZXIgYWN0aW5nIGFzIGV4ZWN1dG9yIiBndWFyYW50ZWUgb24gU3RlbGxhcjoKYSBzZWNwMjU2azEgc2lnbmVyIGNvbW1pdHMgdG8gdGhlIGVkMjU1MTkgc3VibWl0dGVyIHZpYSBgc2lnbmF0dXJlYCwgYW5kIHRoZQpzdWJtaXR0ZXIgcHJvdmVzIGNvbnRyb2wgb2YgYGRlbGVnYXRlYCB2aWEgYGRlbGVnYXRlX3Byb29mYC4gYGRlbGVnYXRlX3Byb29mYCBpcyBhClNvcm9iYW4tc3BlY2lmaWMgZmllbGQ6IGBfX2NoZWNrX2F1dGhgIGhhcyBubyBuYXRpdmUgYG1zZy5zZW5kZXJgLCBzbyBpdCBpcyBob3cgdGhpcwppbXBsZW1lbnRhdGlvbiBlbmZvcmNlcyB0aGUgc3BlYydzIGBzdWJtaXR0ZXIgPT0gZGVsZWdhdGVgIGNoZWNrLgAAAAAAAAAAFFNpZ25lckV4ZWN1dGlvblByb29mAAAABAAAAEBlZDI1NTE5IHB1YmxpYyBrZXkgKDMyIGJ5dGVzKSB0aGUgc2lnbmVyIGJpbmRzIGFzIHRoZSBzdWJtaXR0ZXIuAAAACGRlbGVnYXRlAAAD7gAAACAAAACCZWQyNTUxOSBzaWduYXR1cmUgKDY0IGJ5dGVzKSBieSBgZGVsZWdhdGVgIG92ZXIgdGhlIFNvcm9iYW4gcnVudGltZQpwYXlsb2FkIGhhc2gg4oCUIHByb3ZlcyB0aGUgc3VibWl0dGVyIGFjdHVhbGx5IGhvbGRzIHRoYXQga2V5LgAAAAAADmRlbGVnYXRlX3Byb29mAAAAAAPuAAAAQAAAAEdVbml4IHRpbWVzdGFtcCAoc2Vjb25kcykgYWZ0ZXIgd2hpY2ggYHNpZ25hdHVyZWAgY2FuIG5vIGxvbmdlciBiZSB1c2VkLgAAAAAGZXhwaXJ5AAAAAAAGAAAAj3NlY3AyNTZrMSBzaWduYXR1cmUgKHLigJZz4oCWdiwgNjUgYnl0ZXMpIG92ZXIgdGhlIEVJUC03MTIgZGlnZXN0IG9mCmBTaWduZXJFeGVjdXRpb25BdXRob3JpemF0aW9uIHsgbGVhZkhhc2gsIG1lcmtsZVJvb3QsIGRlbGVnYXRlLCBleHBpcnkgfWAuAAAAAAlzaWduYXR1cmUAAAAAAAPuAAAAQQ==\",\n \"AAAAAgAAAJpJZGVudGlmaWVyIHVzZWQgYnkgYGNhbl9leGVjdXRlX3RyYW5zYWN0aW9uYCB0byBkZXNjcmliZSB0aGUgY2FsbGVyLgpTaWduZXJzIHVzZSBFdGhlcmV1bS1zdHlsZSAyMC1ieXRlIGFkZHJlc3NlcyB3aGlsZSBleGVjdXRvcnMgdXNlIGVkMjU1MTkgcHVibGljIGtleXMuAAAAAAAAAAAACVNlbmRlcktleQAAAAAAAAIAAAABAAAAOUFuIEV0aGVyZXVtLXN0eWxlIHNpZ25lciBhZGRyZXNzICgyMCBieXRlcywgbGVmdC1wYWRkZWQpLgAAAAAAAAZTaWduZXIAAAAAAAEAAAPuAAAAFAAAAAEAAAAqQW4gZWQyNTUxOSBleGVjdXRvciBwdWJsaWMga2V5ICgzMiBieXRlcykuAAAAAAAIRXhlY3V0b3IAAAABAAAD7gAAACA=\",\n \"AAAAAAAAADdBZGRzIG9yIHJlbW92ZXMgYW4gZXhlY3V0b3IgYmFzZWQgb24gdGhlIGBhY3RpdmVgIGZsYWcuAAAAAAxzZXRfZXhlY3V0b3IAAAACAAAAAAAAAAhleGVjdXRvcgAAA+4AAAAgAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAA\",\n \"AAAAAAAAADZTZXRzIHdoZXRoZXIgYW4gZXhlY3V0b3IgaXMgcmVxdWlyZWQgZm9yIHRyYW5zYWN0aW9ucy4AAAAAABVzZXRfZXhlY3V0b3JfcmVxdWlyZWQAAAAAAAABAAAAAAAAAAhyZXF1aXJlZAAAAAEAAAAA\",\n \"AAAAAAAAAC1SZXR1cm5zIHRoZSBsaXN0IG9mIGFsbCByZWdpc3RlcmVkIGV4ZWN1dG9ycy4AAAAAAAANZ2V0X2V4ZWN1dG9ycwAAAAAAAAAAAAABAAAD6gAAA+4AAAAg\",\n \"AAAAAAAAADhDaGVja3Mgd2hldGhlciBhIGdpdmVuIGFkZHJlc3MgaXMgYSByZWdpc3RlcmVkIGV4ZWN1dG9yLgAAAAtpc19leGVjdXRvcgAAAAABAAAAAAAAAAhleGVjdXRvcgAAA+4AAAAgAAAAAQAAAAE=\",\n \"AAAAAAAAADFSZXR1cm5zIHRoZSB0b3RhbCBudW1iZXIgb2YgcmVnaXN0ZXJlZCBleGVjdXRvcnMuAAAAAAAAD3RvdGFsX2V4ZWN1dG9ycwAAAAAAAAAAAQAAAAQ=\",\n \"AAAAAAAAADJSZXR1cm5zIHdoZXRoZXIgYW4gZXhlY3V0b3Igc2lnbmF0dXJlIGlzIHJlcXVpcmVkLgAAAAAAEWV4ZWN1dG9yX3JlcXVpcmVkAAAAAAAAAAAAAAEAAAAB\",\n \"AAAAAAAAAAAAAAAMX19jaGVja19hdXRoAAAAAwAAAAAAAAARc2lnbmF0dXJlX3BheWxvYWQAAAAAAAPuAAAAIAAAAAAAAAAJYXV0aF9kYXRhAAAAAAAH0AAAABNUcmFuc2FjdGlvbkF1dGhEYXRhAAAAAAAAAAANYXV0aF9jb250ZXh0cwAAAAAAA+oAAAfQAAAAB0NvbnRleHQAAAAAAQAAA+kAAAACAAAAAw==\",\n \"AAAAAAAAAElVcGRhdGVzIHRoZSBzZWVkIHVzZWQgZm9yIEVJUC03MTIgZGlnZXN0IGNvbnN0cnVjdGlvbiBhbmQgZW1pdHMgYW4gZXZlbnQuAAAAAAAACHNldF9zZWVkAAAAAQAAAAAAAAAEc2VlZAAAA+4AAAAgAAAAAA==\",\n \"AAAAAAAAAQJEaXNwYXRjaGVzIGV4dGVybmFsIGNvbnRyYWN0IGNhbGxzLiBBbGwgc2VjdXJpdHkgdmVyaWZpY2F0aW9uIGhhcHBlbnMgaW4gYF9fY2hlY2tfYXV0aGAuCkVhY2ggY2FsbCdzIGBzdWJfaW52b2NhdGlvbnNgIGFyZSBwcmUtYXV0aG9yaXplZCB2aWEgYGF1dGhvcml6ZV9hc19jdXJyZW50X2NvbnRyYWN0YAppbW1lZGlhdGVseSBiZWZvcmUgaW52b2tpbmcsIGVuYWJsaW5nIGRlZXBlciBzdWItaW52b2NhdGlvbnMgKGUuZy4gdG9rZW4gdHJhbnNmZXJzKS4AAAAAABNleGVjdXRlX3RyYW5zYWN0aW9uAAAAAAEAAAAAAAAABWNhbGxzAAAAAAAD6gAAB9AAAAAEQ2FsbAAAAAA=\",\n \"AAAAAAAAAExWZXJpZmllcyBhIG1lcmtsZSByb290IGJ5IGNoZWNraW5nIGV4cGlyeSBhbmQgdmFsaWRhdGluZyBFSVAtNzEyIHNpZ25hdHVyZXMuAAAAEnZlcmlmeV9tZXJrbGVfcm9vdAAAAAAAAwAAAAAAAAALbWVya2xlX3Jvb3QAAAAD7gAAACAAAAAAAAAABmV4cGlyeQAAAAAABgAAAAAAAAAKc2lnbmF0dXJlcwAAAAAD6gAAA+4AAABBAAAAAA==\",\n \"AAAAAAAAAFVWZXJpZmllcyBhIHRyYW5zYWN0aW9uJ3MgbWVya2xlIHByb29mIGFnYWluc3QgdGhlIGdpdmVuIHJvb3QgdXNpbmcgdGhlIGN1cnJlbnQgbm9uY2UuAAAAAAAAGHZlcmlmeV90cmFuc2FjdGlvbl9wcm9vZgAAAAIAAAAAAAAAC21lcmtsZV9yb290AAAAA+4AAAAgAAAAAAAAAAt0cmFuc2FjdGlvbgAAAAfQAAAAC1RyYW5zYWN0aW9uAAAAAAA=\",\n \"AAAAAAAAAH1FbmNvZGVzIGEgbGVhZiBub2RlIGJ5IHNlcmlhbGl6aW5nIHZlcnNpb24sIG9uZXNpZyBJRCwgY29udHJhY3QgYWRkcmVzcywgbm9uY2UsIGFuZCBjYWxsLCB0aGVuIGRvdWJsZS1oYXNoaW5nIHdpdGgga2VjY2FrMjU2LgAAAAAAAAtlbmNvZGVfbGVhZgAAAAACAAAAAAAAAAVub25jZQAAAAAAAAYAAAAAAAAABGNhbGwAAAfQAAAABENhbGwAAAABAAAD7gAAACA=\",\n \"AAAAAAAAAF9DaGVja3MgaWYgdGhlIHNlbmRlciBpcyBhdXRob3JpemVkIHRvIGV4ZWN1dGUgYSB0cmFuc2FjdGlvbiAoZXhlY3V0b3Igb3Igc2lnbmVyIHdoZW4gcmVxdWlyZWQpLgAAAAAXY2FuX2V4ZWN1dGVfdHJhbnNhY3Rpb24AAAAAAQAAAAAAAAAGc2VuZGVyAAAAAAfQAAAACVNlbmRlcktleQAAAAAAAAEAAAAB\",\n \"AAAAAAAAADlSZXR1cm5zIHRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBPbmVTaWcgZGVwbG95bWVudC4AAAAAAAAJb25lc2lnX2lkAAAAAAAAAAAAAAEAAAAG\",\n \"AAAAAAAAACZSZXR1cm5zIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIG5vbmNlLgAAAAAABW5vbmNlAAAAAAAAAAAAAAEAAAAG\",\n \"AAAAAAAAAD5SZXR1cm5zIHRoZSBjdXJyZW50IHNlZWQgdXNlZCBmb3IgRUlQLTcxMiBkaWdlc3QgY29uc3RydWN0aW9uLgAAAAAABHNlZWQAAAAAAAAAAQAAA+4AAAAg\",\n \"AAAAAAAAACRSZXR1cm5zIHRoZSBjb250cmFjdCB2ZXJzaW9uIHN0cmluZy4AAAAHdmVyc2lvbgAAAAAAAAAAAQAAABA=\",\n \"AAAAAAAAAEVSZXR1cm5zIHRoZSBsZWFmIGVuY29kaW5nIHZlcnNpb24gdXNlZCBmb3IgbWVya2xlIHByb29mIGNvbnN0cnVjdGlvbi4AAAAAAAAVbGVhZl9lbmNvZGluZ192ZXJzaW9uAAAAAAAAAAAAAAEAAAAE\",\n \"AAAAAAAAAgVDb25zdHJ1Y3RvciB0byBpbml0aWFsaXplIHRoZSBPbmVTaWcgY29udHJhY3Qgd2l0aCBpbml0aWFsIHN0YXRlCgojIEFyZ3VtZW50cwoqIGBvbmVzaWdfaWRgIC0gVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgT25lU2lnIGRlcGxveW1lbnQKKiBgc2VlZGAgLSBJbml0aWFsIHNlZWQgdmFsdWUgZm9yIG1lcmtsZSByb290IHZlcmlmaWNhdGlvbgoqIGBzaWduZXJzYCAtIEFycmF5IG9mIGluaXRpYWwgc2lnbmVyIGFkZHJlc3NlcyAoMzIgYnl0ZXMgZWFjaCwgRXRoZXJldW0gYWRkcmVzc2VzIHBhZGRlZCkKKiBgdGhyZXNob2xkYCAtIE51bWJlciBvZiBzaWduYXR1cmVzIHJlcXVpcmVkIGZvciB0cmFuc2FjdGlvbiBleGVjdXRpb24KKiBgZXhlY3V0b3JzYCAtIEFycmF5IG9mIGluaXRpYWwgZXhlY3V0b3IgcHVibGljIGtleXMgKEJ5dGVzTjwzMj4pCiogYGV4ZWN1dG9yX3JlcXVpcmVkYCAtIFdoZXRoZXIgZXhlY3V0b3IgcGVybWlzc2lvbiBpcyByZXF1aXJlZCBmb3IgdHJhbnNhY3Rpb24gZXhlY3V0aW9uAAAAAAAADV9fY29uc3RydWN0b3IAAAAAAAAGAAAAAAAAAAlvbmVzaWdfaWQAAAAAAAAGAAAAAAAAAARzZWVkAAAD7gAAACAAAAAAAAAAB3NpZ25lcnMAAAAD6gAAA+4AAAAUAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAlleGVjdXRvcnMAAAAAAAPqAAAD7gAAACAAAAAAAAAAEWV4ZWN1dG9yX3JlcXVpcmVkAAAAAAAAAQAAAAA=\",\n \"AAAAAAAAAAAAAAAKYXV0aG9yaXplcgAAAAAAAAAAAAEAAAPoAAAAEw==\",\n \"AAAAAAAAAElBZGRzIG9yIHJlbW92ZXMgYSBzaWduZXIgZnJvbSB0aGUgbXVsdGlzaWcuIFJlcXVpcmVzIG93bmVyIGF1dGhvcml6YXRpb24uAAAAAAAACnNldF9zaWduZXIAAAAAAAIAAAAAAAAABnNpZ25lcgAAAAAD7gAAABQAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAA=\",\n \"AAAAAAAAAERTZXRzIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIChxdW9ydW0pLiBSZXF1aXJlcyBvd25lciBhdXRob3JpemF0aW9uLgAAAA1zZXRfdGhyZXNob2xkAAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAA=\",\n \"AAAAAAAAAB9SZXR1cm5zIGFsbCByZWdpc3RlcmVkIHNpZ25lcnMuAAAAAAtnZXRfc2lnbmVycwAAAAAAAAAAAQAAA+oAAAPuAAAAFA==\",\n \"AAAAAAAAAC9SZXR1cm5zIHRoZSB0b3RhbCBudW1iZXIgb2YgcmVnaXN0ZXJlZCBzaWduZXJzLgAAAAANdG90YWxfc2lnbmVycwAAAAAAAAAAAAABAAAABA==\",\n \"AAAAAAAAACxDaGVja3MgaWYgYW4gYWRkcmVzcyBpcyBhIHJlZ2lzdGVyZWQgc2lnbmVyLgAAAAlpc19zaWduZXIAAAAAAAABAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAQAAAAE=\",\n \"AAAAAAAAADFSZXR1cm5zIHRoZSBjdXJyZW50IHNpZ25hdHVyZSB0aHJlc2hvbGQgKHF1b3J1bSkuAAAAAAAACXRocmVzaG9sZAAAAAAAAAAAAAABAAAABA==\",\n \"AAAAAAAAADVWZXJpZmllcyBzaWduYXR1cmVzIGFnYWluc3QgdGhlIGNvbmZpZ3VyZWQgdGhyZXNob2xkLgAAAAAAABF2ZXJpZnlfc2lnbmF0dXJlcwAAAAAAAAIAAAAAAAAABmRpZ2VzdAAAAAAD7gAAACAAAAAAAAAACnNpZ25hdHVyZXMAAAAAA+oAAAPuAAAAQQAAAAA=\",\n \"AAAAAAAAAC9WZXJpZmllcyBzaWduYXR1cmVzIGFnYWluc3QgYSBjdXN0b20gdGhyZXNob2xkLgAAAAATdmVyaWZ5X25fc2lnbmF0dXJlcwAAAAADAAAAAAAAAAZkaWdlc3QAAAAAA+4AAAAgAAAAAAAAAApzaWduYXR1cmVzAAAAAAPqAAAD7gAAAEEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAA\",\n \"AAAAAAAAAKVFeHRlbmRzIHRoZSBpbnN0YW5jZSBUVEwuCgojIEFyZ3VtZW50cwoKKiBgdGhyZXNob2xkYCAtIFRoZSB0aHJlc2hvbGQgdG8gZXh0ZW5kIHRoZSBUVEwgKGlmIGN1cnJlbnQgVFRMIGlzIGJlbG93IHRoaXMsIGV4dGVuZCkuCiogYGV4dGVuZF90b2AgLSBUaGUgVFRMIHRvIGV4dGVuZCB0by4AAAAAAAATZXh0ZW5kX2luc3RhbmNlX3R0bAAAAAACAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAlleHRlbmRfdG8AAAAAAAAEAAAAAA==\",\n \"AAAAAAAAAY9TZXRzIFRUTCBjb25maWdzIGZvciBpbnN0YW5jZSBhbmQgcGVyc2lzdGVudCBzdG9yYWdlLgoKLSBgTm9uZWAgdmFsdWVzIHJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBjb25maWcgKGRpc2FibGVzIGF1dG8tZXh0ZW5zaW9uIGZvciB0aGF0IHR5cGUpCi0gVmFsaWRhdGVzIHRoYXQgYHRocmVzaG9sZCA8PSBleHRlbmRfdG8gPD0gTUFYX1RUTGAKCiMgQXJndW1lbnRzCi0gYGluc3RhbmNlYCAtIFRUTCBjb25maWcgZm9yIGluc3RhbmNlIHN0b3JhZ2UKLSBgcGVyc2lzdGVudGAgLSBUVEwgY29uZmlnIGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UKCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0Zyb3plbmAgaWYgY29uZmlncyBhcmUgZnJvemVuCi0gYEludmFsaWRUdGxDb25maWdgIGlmIHZhbGlkYXRpb24gZmFpbHMAAAAAD3NldF90dGxfY29uZmlncwAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAKcGVyc2lzdGVudAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAA==\",\n \"AAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAA==\",\n \"AAAAAAAAAOFQZXJtYW5lbnRseSBmcmVlemVzIFRUTCBjb25maWdzLCBwcmV2ZW50aW5nIGFueSBmdXR1cmUgbW9kaWZpY2F0aW9ucy4KClRoaXMgaXMgaXJyZXZlcnNpYmxlIGFuZCBwcm92aWRlcyBpbW11dGFiaWxpdHkgZ3VhcmFudGVlcyB0byB1c2Vycy4KRW1pdHMgYFR0bENvbmZpZ3NGcm96ZW5gIGV2ZW50LgoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnQWxyZWFkeUZyb3plbmAgaWYgYWxyZWFkeSBmcm96ZW4AAAAAAAASZnJlZXplX3R0bF9jb25maWdzAAAAAAAAAAAAAA==\",\n \"AAAAAAAAACdSZXR1cm5zIHdoZXRoZXIgVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAFWlzX3R0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAABAAAAAQ==\",\n \"AAAAAgAAAAAAAAAAAAAADU9uZVNpZ1N0b3JhZ2UAAAAAAAAFAAAAAAAAAAAAAAAJRXhlY3V0b3JzAAAAAAAAAAAAAAAAAAAQRXhlY3V0b3JSZXF1aXJlZAAAAAAAAAAAAAAACE9uZVNpZ0lkAAAAAAAAAAAAAAAEU2VlZAAAAAAAAAAAAAAABU5vbmNlAAAA\",\n \"AAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPp\",\n \"AAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/I=\",\n \"AAAABAAAAB9UdGxDb25maWd1cmFibGVFcnJvcjogMTAyMC0xMDI5AAAAAAAAAAAUVHRsQ29uZmlndXJhYmxlRXJyb3IAAAADAAAAAAAAABBJbnZhbGlkVHRsQ29uZmlnAAAD/AAAAAAAAAAPVHRsQ29uZmlnRnJvemVuAAAAA/0AAAAAAAAAFlR0bENvbmZpZ0FscmVhZHlGcm96ZW4AAAAAA/4=\",\n \"AAAABAAAABdPd25hYmxlRXJyb3I6IDEwMzAtMTAzOQAAAAAAAAAADE93bmFibGVFcnJvcgAAAAcAAAAAAAAAEUludmFsaWRBdXRob3JpemVyAAAAAAAEBgAAAAAAAAATSW52YWxpZFBlbmRpbmdPd25lcgAAAAQHAAAAAAAAAApJbnZhbGlkVHRsAAAAAAQIAAAAAAAAABFOb1BlbmRpbmdUcmFuc2ZlcgAAAAAABAkAAAAAAAAAD093bmVyQWxyZWFkeVNldAAAAAQKAAAAAAAAAAtPd25lck5vdFNldAAAAAQLAAAAAAAAABJUcmFuc2ZlckluUHJvZ3Jlc3MAAAAABAw=\",\n \"AAAABAAAABhCeXRlc0V4dEVycm9yOiAxMDQwLTEwNDkAAAAAAAAADUJ5dGVzRXh0RXJyb3IAAAAAAAABAAAAAAAAAA5MZW5ndGhNaXNtYXRjaAAAAAAEEA==\",\n \"AAAABAAAABtVcGdyYWRlYWJsZUVycm9yOiAxMDUwLTEwNTkAAAAAAAAAABBVcGdyYWRlYWJsZUVycm9yAAAAAgAAAAAAAAAUSW52YWxpZE1pZ3JhdGlvbkRhdGEAAAQaAAAAAAAAABNNaWdyYXRpb25Ob3RBbGxvd2VkAAAABBs=\",\n \"AAAABAAAABhNdWx0aVNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpU2lnRXJyb3IAAAAAAAAJAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAAEUludmFsaWRBdXRob3JpemVyAAAAAAAEJQAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCYAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQnAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCgAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQpAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCoAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQrAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAELA==\",\n \"AAAABAAAABRBdXRoRXJyb3I6IDEwNzAtMTA3OQAAAAAAAAAJQXV0aEVycm9yAAAAAAAAAQAAAAAAAAASQXV0aG9yaXplck5vdEZvdW5kAAAAAAQu\",\n \"AAAABAAAABRSYmFjRXJyb3I6IDEwODAtMTA4OQAAAAAAAAAJUmJhY0Vycm9yAAAAAAAABwAAAAAAAAARQWRtaW5Sb2xlTm90Rm91bmQAAAAAAAQ4AAAAAAAAABBJbmRleE91dE9mQm91bmRzAAAEOQAAAAAAAAAQTWF4Um9sZXNFeGNlZWRlZAAABDoAAAAAAAAAC1JvbGVJc0VtcHR5AAAABDsAAAAAAAAADFJvbGVOb3RGb3VuZAAABDwAAAAAAAAAC1JvbGVOb3RIZWxkAAAABD0AAAAAAAAADFVuYXV0aG9yaXplZAAABD4=\",\n \"AAAABQAAADBFdmVudCBlbWl0dGVkIHdoZW4gYSBzaWduZXIgaXMgYWRkZWQgb3IgcmVtb3ZlZC4AAAAAAAAACVNpZ25lclNldAAAAAAAAAEAAAAKc2lnbmVyX3NldAAAAAAAAgAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAAC\",\n \"AAAABQAAADZFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNpZ25hdHVyZSB0aHJlc2hvbGQgaXMgY2hhbmdlZC4AAAAAAAAAAAAMVGhyZXNob2xkU2V0AAAAAQAAAA10aHJlc2hvbGRfc2V0AAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAC\",\n \"AAAAAgAAAAAAAAAAAAAAD011bHRpU2lnU3RvcmFnZQAAAAACAAAAAAAAAAAAAAAHU2lnbmVycwAAAAAAAAAAAAAAAAlUaHJlc2hvbGQAAAA=\",\n \"AAAABQAAAFdFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIChib3RoIHNpbmdsZS1zdGVwIGFuZCB0d28tc3RlcCBjb21wbGV0aW9uKS4AAAAAAAAAABRPd25lcnNoaXBUcmFuc2ZlcnJlZAAAAAEAAAAVb3duZXJzaGlwX3RyYW5zZmVycmVkAAAAAAAAAgAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAg==\",\n \"AAAABQAAADtFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIHByb3Bvc2VkLgAAAAAAAAAAFU93bmVyc2hpcFRyYW5zZmVycmluZwAAAAAAAAEAAAAWb3duZXJzaGlwX3RyYW5zZmVycmluZwAAAAAAAwAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAAN0dGwAAAAABAAAAAAAAAAC\",\n \"AAAABQAAADxFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIGNhbmNlbGxlZC4AAAAAAAAAGk93bmVyc2hpcFRyYW5zZmVyQ2FuY2VsbGVkAAAAAAABAAAAHG93bmVyc2hpcF90cmFuc2Zlcl9jYW5jZWxsZWQAAAACAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAAAAAAABdjYW5jZWxsZWRfcGVuZGluZ19vd25lcgAAAAATAAAAAAAAAAI=\",\n \"AAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHJlbm91bmNlZC4AAAAAAAAAAAAST3duZXJzaGlwUmVub3VuY2VkAAAAAAABAAAAE293bmVyc2hpcF9yZW5vdW5jZWQAAAAAAQAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAC\",\n \"AAAAAgAAAAAAAAAAAAAADk93bmFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAFT3duZXIAAAAAAAAAAAAAAAAAAAxQZW5kaW5nT3duZXI=\",\n \"AAAABQAAACVFdmVudCBlbWl0dGVkIHdoZW4gYSByb2xlIGlzIGdyYW50ZWQuAAAAAAAAAAAAAAtSb2xlR3JhbnRlZAAAAAABAAAADHJvbGVfZ3JhbnRlZAAAAAMAAAAAAAAABHJvbGUAAAARAAAAAQAAAAAAAAAHYWNjb3VudAAAAAATAAAAAQAAAAAAAAAGY2FsbGVyAAAAAAATAAAAAAAAAAI=\",\n \"AAAABQAAACVFdmVudCBlbWl0dGVkIHdoZW4gYSByb2xlIGlzIHJldm9rZWQuAAAAAAAAAAAAAAtSb2xlUmV2b2tlZAAAAAABAAAADHJvbGVfcmV2b2tlZAAAAAMAAAAAAAAABHJvbGUAAAARAAAAAQAAAAAAAAAHYWNjb3VudAAAAAATAAAAAQAAAAAAAAAGY2FsbGVyAAAAAAATAAAAAAAAAAI=\",\n \"AAAABQAAACtFdmVudCBlbWl0dGVkIHdoZW4gYSByb2xlIGFkbWluIGlzIGNoYW5nZWQuAAAAAAAAAAAQUm9sZUFkbWluQ2hhbmdlZAAAAAEAAAAScm9sZV9hZG1pbl9jaGFuZ2VkAAAAAAADAAAAAAAAAARyb2xlAAAAEQAAAAEAAAAAAAAAE3ByZXZpb3VzX2FkbWluX3JvbGUAAAAD6AAAABEAAAAAAAAAAAAAAA5uZXdfYWRtaW5fcm9sZQAAAAAD6AAAABEAAAAAAAAAAg==\",\n \"AAAAAgAAAAAAAAAAAAAAC1JiYWNTdG9yYWdlAAAAAAUAAAAAAAAAAAAAAA1FeGlzdGluZ1JvbGVzAAAAAAAAAQAAAAAAAAASUm9sZUluZGV4VG9BY2NvdW50AAAAAAACAAAAEQAAAAQAAAABAAAAAAAAABJSb2xlQWNjb3VudFRvSW5kZXgAAAAAAAIAAAARAAAAEwAAAAEAAAAAAAAAEVJvbGVBY2NvdW50c0NvdW50AAAAAAAAAQAAABEAAAABAAAAAAAAAAlSb2xlQWRtaW4AAAAAAAABAAAAEQ==\",\n \"AAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQ=\",\n \"AAAABQAAACdFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIHNldC4AAAAAAAAAAA1UdGxDb25maWdzU2V0AAAAAAAAAQAAAA90dGxfY29uZmlnc19zZXQAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAg==\",\n \"AAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAAAAAAAAQVHRsQ29uZmlnc0Zyb3plbgAAAAEAAAASdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAg==\",\n \"AAAAAgAAAAAAAAAAAAAAEFR0bENvbmZpZ1N0b3JhZ2UAAAADAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAhJbnN0YW5jZQAAAAAAAAAAAAAAClBlcnNpc3RlbnQAAA==\",\n \"AAAAAgAAAAAAAAAAAAAAElVwZ3JhZGVhYmxlU3RvcmFnZQAAAAAAAQAAAAAAAAAAAAAACU1pZ3JhdGluZwAAAA==\" ]),\n options\n )\n }\n public readonly fromJSON = {\n set_executor: this.txFromJSON<null>,\n set_executor_required: this.txFromJSON<null>,\n get_executors: this.txFromJSON<Array<Buffer>>,\n is_executor: this.txFromJSON<boolean>,\n total_executors: this.txFromJSON<u32>,\n executor_required: this.txFromJSON<boolean>,\n set_seed: this.txFromJSON<null>,\n execute_transaction: this.txFromJSON<null>,\n verify_merkle_root: this.txFromJSON<null>,\n verify_transaction_proof: this.txFromJSON<null>,\n encode_leaf: this.txFromJSON<Buffer>,\n can_execute_transaction: this.txFromJSON<boolean>,\n onesig_id: this.txFromJSON<u64>,\n nonce: this.txFromJSON<u64>,\n seed: this.txFromJSON<Buffer>,\n version: this.txFromJSON<string>,\n leaf_encoding_version: this.txFromJSON<u32>,\n authorizer: this.txFromJSON<Option<string>>,\n set_signer: this.txFromJSON<null>,\n set_threshold: this.txFromJSON<null>,\n get_signers: this.txFromJSON<Array<Buffer>>,\n total_signers: this.txFromJSON<u32>,\n is_signer: this.txFromJSON<boolean>,\n threshold: this.txFromJSON<u32>,\n verify_signatures: this.txFromJSON<null>,\n verify_n_signatures: this.txFromJSON<null>,\n extend_instance_ttl: this.txFromJSON<null>,\n set_ttl_configs: this.txFromJSON<null>,\n ttl_configs: this.txFromJSON<readonly [Option<TtlConfig>, Option<TtlConfig>]>,\n freeze_ttl_configs: this.txFromJSON<null>,\n is_ttl_configs_frozen: this.txFromJSON<boolean>\n }\n}"]}
|
package/dist/YYM473VY.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"YYM473VY.mjs"}
|
package/dist/calls.mjs
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { createExecuteTransactionCall, createSetExecutorCall, createSetExecutorRequiredCall, createSetSeedCall, createSetSignerCall, createSetThresholdCall } from './DPYAZNJF.mjs';
|
|
2
|
-
import './YYM473VY.mjs';
|
|
3
|
-
//# sourceMappingURL=calls.mjs.map
|
|
4
|
-
//# sourceMappingURL=calls.mjs.map
|
package/dist/index.mjs
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export { generateStellarConfigChangeCall } from './EJZMSFN5.mjs';
|
|
2
|
-
export { createExecuteTransactionCall, createSetExecutorCall, createSetExecutorRequiredCall, createSetSeedCall, createSetSignerCall, createSetThresholdCall } from './DPYAZNJF.mjs';
|
|
3
|
-
export { stellarLeafGenerator } from './CT3BLMHC.mjs';
|
|
4
|
-
export { AuthError, BufferReaderError, BufferWriterError, BytesExtError, Client, MultiSigError, OneSigError, OwnableError, RbacError, TtlConfigurableError, UpgradeableError, WASM_BASE64, WASM_HASH, contract, getWasmBuffer, rpc } from './NQUQ5475.mjs';
|
|
5
|
-
import './YYM473VY.mjs';
|
|
6
|
-
//# sourceMappingURL=index.mjs.map
|
|
7
|
-
//# sourceMappingURL=index.mjs.map
|