@latticexyz/world-modules 2.2.17-227db4d37db5dd26607f77e805d91701ba2e38db → 2.2.17-3d5b7b75c5c68f4c7499ecd2fcf6e3b2b40c6ad5
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/mud.config.d.ts +1 -57
- package/dist/mud.config.js +1 -1
- package/dist/mud.config.js.map +1 -1
- package/out/AccessManagementSystem.sol/AccessManagementSystem.json +1 -1
- package/out/Allowances.sol/Allowances.json +1 -1
- package/out/ArrayLib.sol/ArrayLib.json +1 -1
- package/out/BalanceTransferSystem.sol/BalanceTransferSystem.json +1 -1
- package/out/Balances.sol/Balances.json +1 -1
- package/out/BatchCallSystem.sol/BatchCallSystem.json +1 -1
- package/out/CallboundDelegationControl.sol/CallboundDelegationControl.json +1 -1
- package/out/CallboundDelegations.sol/CallboundDelegations.json +1 -1
- package/out/DelegationControlMock.sol/DelegationControlMock.json +1 -1
- package/out/ERC20.t.sol/ERC20Test.json +1 -1
- package/out/ERC20Metadata.sol/ERC20Metadata.json +1 -1
- package/out/ERC20Module.sol/ERC20Module.json +1 -1
- package/out/ERC20Module.sol/ERC20ModuleRegistrationLib.json +1 -1
- package/out/ERC20Registry.sol/ERC20Registry.json +1 -1
- package/out/ERC20System.sol/ERC20System.json +1 -1
- package/out/ERC721.t.sol/ERC721Recipient.json +1 -1
- package/out/ERC721.t.sol/ERC721Test.json +1 -1
- package/out/ERC721.t.sol/ERC721TokenReceiver.json +1 -1
- package/out/ERC721.t.sol/NonERC721Recipient.json +1 -1
- package/out/ERC721.t.sol/RevertingERC721Recipient.json +1 -1
- package/out/ERC721.t.sol/WrongReturnDataERC721Recipient.json +1 -1
- package/out/ERC721Metadata.sol/ERC721Metadata.json +1 -1
- package/out/ERC721Module.sol/ERC721Module.json +1 -1
- package/out/ERC721Module.sol/ERC721ModuleRegistrationLib.json +1 -1
- package/out/ERC721Registry.sol/ERC721Registry.json +1 -1
- package/out/ERC721System.sol/ERC721System.json +1 -1
- package/out/EchoSubscriber.sol/EchoSubscriber.json +1 -1
- package/out/GasReporter.sol/GasReporter.json +1 -1
- package/out/IERC20.sol/IERC20.json +1 -1
- package/out/IERC20Errors.sol/IERC20Errors.json +1 -1
- package/out/IERC20Events.sol/IERC20Events.json +1 -1
- package/out/IERC20Mintable.sol/IERC20Mintable.json +1 -1
- package/out/IERC721.sol/IERC721.json +1 -1
- package/out/IERC721Errors.sol/IERC721Errors.json +1 -1
- package/out/IERC721Events.sol/IERC721Events.json +1 -1
- package/out/IERC721Metadata.sol/IERC721Metadata.json +1 -1
- package/out/IERC721Mintable.sol/IERC721Mintable.json +1 -1
- package/out/IERC721Receiver.sol/IERC721Receiver.json +1 -1
- package/out/InitModule.sol/InitModule.json +1 -1
- package/out/KeysInTable.sol/KeysInTable.json +1 -1
- package/out/KeysInTableHook.sol/KeysInTableHook.json +1 -1
- package/out/KeysInTableModule.sol/KeysInTableModule.json +1 -1
- package/out/KeysInTableModule.t.sol/KeysInTableModuleTest.json +1 -1
- package/out/KeysWithValue.sol/KeysWithValue.json +1 -1
- package/out/KeysWithValueHook.sol/KeysWithValueHook.json +1 -1
- package/out/KeysWithValueModule.sol/KeysWithValueModule.json +1 -1
- package/out/KeysWithValueModule.t.sol/KeysWithValueModuleTest.json +1 -1
- package/out/LibString.sol/LibString.json +1 -1
- package/out/ModuleInstallationSystem.sol/ModuleInstallationSystem.json +1 -1
- package/out/OperatorApproval.sol/OperatorApproval.json +1 -1
- package/out/Owners.sol/Owners.json +1 -1
- package/out/Puppet.sol/Puppet.json +1 -1
- package/out/PuppetDelegationControl.sol/PuppetDelegationControl.json +1 -1
- package/out/PuppetFactorySystem.sol/PuppetFactorySystem.json +1 -1
- package/out/PuppetMaster.sol/PuppetMaster.json +1 -1
- package/out/PuppetModule.sol/PuppetModule.json +1 -1
- package/out/PuppetModule.t.sol/PuppetModuleTest.json +1 -1
- package/out/PuppetModule.t.sol/PuppetTestSystem.json +1 -1
- package/out/PuppetRegistry.sol/PuppetRegistry.json +1 -1
- package/out/RegistrationSystem.sol/RegistrationSystem.json +1 -1
- package/out/RevertSubscriber.sol/RevertSubscriber.json +1 -1
- package/out/StandardDelegationsModule.sol/StandardDelegationsModule.json +1 -1
- package/out/StandardDelegationsModule.t.sol/StandardDelegationsModuleTest.json +1 -1
- package/out/StdError.sol/stdError.json +1 -1
- package/out/StoreRead.sol/StoreRead.json +1 -1
- package/out/StoreRegistrationSystem.sol/StoreRegistrationSystem.json +1 -1
- package/out/System.sol/System.json +1 -1
- package/out/SystemSwitch.sol/SystemSwitch.json +1 -1
- package/out/SystemSwitch.t.sol/EchoSystem.json +1 -1
- package/out/SystemSwitch.t.sol/SystemSwitchTest.json +1 -1
- package/out/SystemboundDelegationControl.sol/SystemboundDelegationControl.json +1 -1
- package/out/SystemboundDelegations.sol/SystemboundDelegations.json +1 -1
- package/out/TimeboundDelegationControl.sol/TimeboundDelegationControl.json +1 -1
- package/out/TimeboundDelegations.sol/TimeboundDelegations.json +1 -1
- package/out/TokenApproval.sol/TokenApproval.json +1 -1
- package/out/TokenURI.sol/TokenURI.json +1 -1
- package/out/TotalSupply.sol/TotalSupply.json +1 -1
- package/out/UniqueEntity.sol/UniqueEntity.json +1 -1
- package/out/UniqueEntityModule.sol/UniqueEntityModule.json +1 -1
- package/out/UniqueEntityModule.t.sol/UniqueEntityModuleTest.json +1 -1
- package/out/UniqueEntityModule.t.sol/UniqueEntityTestSystem.json +1 -1
- package/out/UniqueEntitySystem.sol/UniqueEntitySystem.json +1 -1
- package/out/UsedKeysIndex.sol/UsedKeysIndex.json +1 -1
- package/out/World.sol/World.json +1 -1
- package/out/World.t.sol/EchoSystemHook.json +1 -1
- package/out/World.t.sol/PayableFallbackSystem.json +1 -1
- package/out/World.t.sol/RevertSystemHook.json +1 -1
- package/out/World.t.sol/WorldTest.json +1 -1
- package/out/World.t.sol/WorldTestSystem.json +1 -1
- package/out/WorldRegistrationSystem.sol/WorldRegistrationSystem.json +1 -1
- package/out/build-info/{168545c7409f2927f6e50ed7ce0d033c.json → 5adb61cced337bb5e7b3d4344c85094e.json} +1 -1
- package/out/query.t.sol/QueryTest.json +1 -1
- package/out/test.sol/DSTest.json +1 -1
- package/package.json +9 -9
- package/src/codegen/index.sol +0 -1
- package/out/CallWithSignatureModule.t.sol/Unstable_CallWithSignatureModuleTest.abi.json +0 -541
- package/out/CallWithSignatureModule.t.sol/Unstable_CallWithSignatureModuleTest.abi.json.d.ts +0 -543
- package/out/CallWithSignatureModule.t.sol/Unstable_CallWithSignatureModuleTest.json +0 -1
- package/out/CallWithSignatureNonces.sol/CallWithSignatureNonces.abi.json +0 -1
- package/out/CallWithSignatureNonces.sol/CallWithSignatureNonces.json +0 -1
- package/out/ECDSA.sol/ECDSA.abi.json +0 -29
- package/out/ECDSA.sol/ECDSA.abi.json.d.ts +0 -31
- package/out/ECDSA.sol/ECDSA.json +0 -1
- package/out/IERC1271.sol/IERC1271.abi.json +0 -26
- package/out/IERC1271.sol/IERC1271.abi.json.d.ts +0 -28
- package/out/IERC1271.sol/IERC1271.json +0 -1
- package/out/IUnstable_CallWithSignatureErrors.sol/IUnstable_CallWithSignatureErrors.abi.json +0 -7
- package/out/IUnstable_CallWithSignatureErrors.sol/IUnstable_CallWithSignatureErrors.abi.json.d.ts +0 -9
- package/out/IUnstable_CallWithSignatureErrors.sol/IUnstable_CallWithSignatureErrors.json +0 -1
- package/out/SignatureChecker.sol/SignatureChecker.abi.json +0 -1
- package/out/SignatureChecker.sol/SignatureChecker.json +0 -1
- package/out/Unstable_CallWithSignatureModule.sol/Unstable_CallWithSignatureModule.abi.json +0 -436
- package/out/Unstable_CallWithSignatureModule.sol/Unstable_CallWithSignatureModule.abi.json.d.ts +0 -438
- package/out/Unstable_CallWithSignatureModule.sol/Unstable_CallWithSignatureModule.json +0 -1
- package/out/Unstable_CallWithSignatureSystem.sol/Unstable_CallWithSignatureSystem.abi.json +0 -183
- package/out/Unstable_CallWithSignatureSystem.sol/Unstable_CallWithSignatureSystem.abi.json.d.ts +0 -185
- package/out/Unstable_CallWithSignatureSystem.sol/Unstable_CallWithSignatureSystem.json +0 -1
- package/src/modules/callwithsignature/ECDSA.sol +0 -174
- package/src/modules/callwithsignature/IERC1271.sol +0 -17
- package/src/modules/callwithsignature/IUnstable_CallWithSignatureErrors.sol +0 -9
- package/src/modules/callwithsignature/SignatureChecker.sol +0 -50
- package/src/modules/callwithsignature/Unstable_CallWithSignatureModule.sol +0 -48
- package/src/modules/callwithsignature/Unstable_CallWithSignatureSystem.sol +0 -36
- package/src/modules/callwithsignature/constants.sol +0 -10
- package/src/modules/callwithsignature/getSignedMessageHash.sol +0 -54
- package/src/modules/callwithsignature/tables/CallWithSignatureNonces.sol +0 -199
- package/src/modules/callwithsignature/validateCallWithSignature.sol +0 -31
@@ -1 +0,0 @@
|
|
1
|
-
{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"callWithSignature","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506121238061001d5f395ff3fe608060405260043610610058575f3560e01c80631fae6308116100415780631fae6308146100bc57806345ec9354146100dc578063e1af802c146100fb575f80fd5b806301ffc9a71461005c578063119df25f14610090575b5f80fd5b348015610067575f80fd5b5061007b610076366004611c24565b61010f565b60405190151581526020015b60405180910390f35b34801561009b575f80fd5b506100a46101a7565b6040516001600160a01b039091168152602001610087565b6100cf6100ca366004611d00565b6101b5565b6040516100879190611dd3565b3480156100e7575f80fd5b50604051601f193601358152602001610087565b348015610106575f80fd5b506100a46101fa565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101a157507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b5f6101b0610203565b905090565b60606101c385858585610235565b6101e0856101d0876102a1565b6101db906001611df9565b610342565b6101f185858536601f190135610402565b95945050505050565b5f6101b061042e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806102325750335b90565b5f61023f856102a1565b90505f6102568686868561025161042e565b610437565b90506102638682856105f5565b610299576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050565b6040805160018082528183019092525f9182919060208083019080368337019050509050826001600160a01b03165f1b815f815181106102e3576102e3611e0c565b60209081029190910101525f61033a7f7462000000000000000000000000000043616c6c576974685369676e6174757283837e20010020000000000000000000000000000000000000000000000000000000610668565b949350505050565b6040805160018082528183019092525f9160208083019080368337019050509050826001600160a01b03165f1b815f8151811061038157610381611e0c565b6020026020010181815250506103fd7f7462000000000000000000000000000043616c6c576974685369676e617475725f1b825f856040516020016103c891815260200190565b60408051601f198184030181529190527e20010020000000000000000000000000000000000000000000000000000000610694565b505050565b60605f80610412878787876106b0565b91509150816104245761042481610870565b9695505050505050565b5f6101b0610878565b604080517f6268546d6d3d3a16ed8cfd22f4fe09a1d17f9af43838183ba533d41e284cf32660208201526001600160a01b038316918101919091524660608201525f908190608001604051602081830303815290604052805190602001209050807fe1aba1240c6e8ae2c09457b30ace1a1a2b13361439ce6e8d5a278d794ac997ec886104e16104c78a60101b90565b71ffffffffffffffffffffffffffffffffffff19166108b6565b6040516020016104f19190611e20565b604051602081830303815290604052805190602001206105186105138b610959565b6108b6565b6040516020016105289190611e20565b60408051601f1981840301815282825280516020918201208c518d830120918401969096526001600160a01b03909416908201526060810191909152608081019290925260a082015260c0810186905260e001604051602081830303815290604052805190602001206040516020016105d39291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b6040516020818303038152906040528051906020012091505095945050505050565b5f836001600160a01b03163b5f03610653575f80610613858561096f565b5090925090505f81600381111561062c5761062c611e3b565b14801561064a5750856001600160a01b0316826001600160a01b0316145b92505050610661565b61065e8484846109b8565b90505b9392505050565b5f6101f16106768686610ad5565b60ff858116601b0360080285901c1661068f8587610b2a565b610b62565b6106a985856106a38487610b2a565b85610bb2565b5050505050565b5f60605f6106bd86610e47565b90505f5b8151811015610789575f8282815181106106dd576106dd611e0c565b602002602001015190506107096001826affffffffffffffffffffff1916610ecc90919063ffffffff16565b15610780576040517fc3323031000000000000000000000000000000000000000000000000000000008152606082901c9063c332303190610752908c908c908c90600401611e4f565b5f604051808303815f87803b158015610769575f80fd5b505af115801561077b573d5f803e3d5ffd5b505050505b506001016106c1565b5061079687858888610ee9565b90935091505f5b8151811015610865575f8282815181106107b9576107b9611e0c565b602002602001015190506107e56002826affffffffffffffffffffff1916610ecc90919063ffffffff16565b1561085c576040517f973d8f99000000000000000000000000000000000000000000000000000000008152606082901c9063973d8f999061082e908c908c908c90600401611e4f565b5f604051808303815f87803b158015610845575f80fd5b505af1158015610857573d5f803e3d5ffd5b505050505b5060010161079d565b505094509492505050565b805160208201fd5b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175545f906001600160a01b0316806108b1573391505090565b919050565b60605f5b601081101561091a577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff00000000000000000000000000000000000000000000000000000000000000161561091a576001016108ba565b604080517fffffffffffffffffffffffffffffffff0000000000000000000000000000000085166020820152815160309091019091528181528061033a565b5f61096660706010611df9565b9190911b919050565b5f805f83516041036109a6576020840151604085015160608601515f1a6109988882858561101c565b9550955095505050506109b1565b505081515f91506002905b9250925092565b5f805f856001600160a01b031685856040516024016109d8929190611e76565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1626ba7e0000000000000000000000000000000000000000000000000000000017905251610a3b9190611e20565b5f60405180830381855afa9150503d805f8114610a73576040519150601f19603f3d011682016040523d82523d5f602084013e610a78565b606091505b5091509150818015610a8c57506020815110155b8015610424575080517f1626ba7e0000000000000000000000000000000000000000000000000000000090610aca9083016020908101908401611e8e565b149695505050505050565b5f8282604051602001610ae9929190611ea5565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b5f80805b8360ff16811015610b5a57610b5060ff601b83900360080287901c1683611df9565b9150600101610b2e565b509392505050565b5f60208210610b8757602082048401935060208281610b8357610b83611edf565b0691505b508254600882021b602082900380841115610b5a576001850154600882021c82179150509392505050565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff0000000000000000000000000000000000000000000000000000000000001603610c3c57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be848484604051610c2f93929190611f2d565b60405180910390a2610e41565b5f610c478585610ad5565b90505f610c53866110e4565b90505f5b8151811015610d21575f828281518110610c7357610c73611e0c565b60200260200101519050610c9f6004826affffffffffffffffffffff1916610ecc90919063ffffffff16565b15610d18576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90610cea908b908b908b908b90600401611f5f565b5f604051808303815f87803b158015610d01575f80fd5b505af1158015610d13573d5f803e3d5ffd5b505050505b50600101610c57565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be868686604051610d5693929190611f2d565b60405180910390a2610d71828565ffffffffffff1685611153565b5f5b8151811015610e3d575f828281518110610d8f57610d8f611e0c565b60200260200101519050610dbb6008826affffffffffffffffffffff1916610ecc90919063ffffffff16565b15610e34576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190610e06908b908b908b908b90600401611f5f565b5f604051808303815f87803b158015610e1d575f80fd5b505af1158015610e2f573d5f803e3d5ffd5b505050505b50600101610d73565b5050505b50505050565b6040805160018082528183019092526060915f91906020808301908036833701905050905082815f81518110610e7f57610e7f611e0c565b60209081029190910101525f610eb67f7462776f726c6400000000000000000053797374656d486f6f6b7300000000008383611169565b905061033a610ec7825f84516111a2565b61122e565b5f8160ff1682610edc8560581c90565b1660ff1614905092915050565b5f60605f80610ef78661123d565b90925090506001600160a01b038216610f515785610f14876112f2565b6040517ffbf10ce6000000000000000000000000000000000000000000000000000000008152600401610f48929190611e76565b60405180910390fd5b80610f6057610f608689611414565b8615610fcb577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000175f610fb382611464565b9050610fc882610fc38b84611df9565b6114f2565b50505b5f610fd68760101b90565b71ffffffffffffffffffffffffffffffffffff19161461100157610ffc8888848861156d565b61100d565b61100d888884886115e0565b90999098509650505050505050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561105557505f915060039050826110da565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156110a6573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b0381166110d157505f9250600191508290506110da565b92505f91508190505b9450945094915050565b6040805160018082528183019092526060915f91906020808301908036833701905050905082815f8151811061111c5761111c611e0c565b60209081029190910101525f610eb67f746273746f726500000000000000000053746f7265486f6f6b730000000000008383611169565b6103fd838383516111648560200190565b61163d565b606061065e6111798585856116f8565b5f61119d856111888989611776565b9060ff166028026038011c64ffffffffff1690565b611788565b5f818311806111b15750835182115b156111ee578383836040517f23230fa3000000000000000000000000000000000000000000000000000000008152600401610f4893929190611fa2565b602084016111fc8482611df9565b90505f6112098585611fc6565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60605f6106618360155f6117ab565b6040805160018082528183019092525f91829182916020808301908036833701905050905083815f8151811061127557611275611e0c565b60209081029190910101525f80806112cd7f7462776f726c6400000000000000000053797374656d73000000000000000000857e15020014010000000000000000000000000000000000000000000000000000611823565b5050602081015160349091015160609190911c9860f89190911c975095505050505050565b606081601081901b5f61130483610959565b90508271ffffffffffffffffffffffffffffffffffff198316156113455761134071ffffffffffffffffffffffffffffffffffff1984166108b6565b61137c565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156113b2576113ad836108b6565b6113e9565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016113fb93929190611fd9565b6040516020818303038152906040529350505050919050565b61141e8282611924565b6114605761142b826112f2565b816040517fd787b737000000000000000000000000000000000000000000000000000000008152600401610f48929190612066565b5050565b6040805160018082528183019092525f918291906020808301908036833701905050905082815f8151811061149b5761149b611e0c565b60209081029190910101525f61033a7f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000610668565b6040805160018082528183019092525f916020808301908036833701905050905082815f8151811061152657611526611e0c565b6020026020010181815250506103fd7f7462776f726c6400000000000000000042616c616e63657300000000000000005f1b825f856040516020016103c891815260200190565b5f6060836001600160a01b03165f611586858989611981565b6040516115939190611e20565b5f6040518083038185875af1925050503d805f81146115cd576040519150601f19603f3d011682016040523d82523d5f602084013e6115d2565b606091505b509097909650945050505050565b5f6060836001600160a01b03166115f8848888611981565b6040516116059190611e20565b5f60405180830381855af49150503d805f81146115cd576040519150601f19603f3d011682016040523d82523d5f602084013e6115d2565b82156116b557602083106116675760208304840193506020838161166357611663611edf565b0692505b82156116b55760208390035f5f19600885021c1990506008850281811c91508351811c90508119875416828216178755508184116116a6575050610e41565b50600194909401939182900391015b5b602082106116d75780518455600190930192601f19909101906020016116b6565b8115610e41575f5f19600884021c8554835182191691161785555050505050565b5f838360405160200161170c929190611ea5565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f118185f1c90509392505050565b5f61066161178484846119b0565b5490565b60405160208101601f19603f8484010116604052828252610b5a85858584611a05565b60605f6117b88560801c90565b90506fffffffffffffffffffffffffffffffff85165f8582816117dd576117dd611edf565b0490506040519350602084016020820281016040528185525f5b82811015611817578451871c8252938701936020909101906001016117f7565b50505050509392505050565b60605f60605f61183285611acc565b905061183f878783611aee565b93505f61184b86611b23565b905080156119195761185d8888611776565b935066ffffffffffffff841667ffffffffffffffff81111561188157611881611c63565b6040519080825280601f01601f1916602001820160405280156118ab576020820181803683370190505b509250602083015f5b828160ff161015611916575f6118cb8b8b846116f8565b90505f6118e7888460ff166028026038011c64ffffffffff1690565b90506118f5825f8387611a05565b6118ff8185611df9565b93505050808061190e90612090565b9150506118b4565b50505b505093509350939050565b5f6119717f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783611b5f565b8061066157506106618383611b5f565b6060838383604051602001611998939291906120ae565b60405160208183030381529060405290509392505050565b5f82826040516020016119c4929190611ea5565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b8215611a895760208310611a2f57602083048401935060208381611a2b57611a2b611edf565b0692505b8215611a895760208390035f81841015611a5057505f19600884021c611a59565b505f19600882021c5b8554600886021b818451168219821617845250818411611a7a575050610e41565b50600194909401939182900391015b5b60208210611aab5783548152600190930192601f1990910190602001611a8a565b8115610e41575f5f19600884021c8251865482191691161782525050505050565b5f6008611adb60026020611fc6565b611ae591906120ff565b9190911c919050565b6060815f03611b0b575060408051602081019091525f8152610661565b5f611b168585610ad5565b90506101f1815f85611788565b5f6008600180611b3560026020611fc6565b611b3f9190611fc6565b611b499190611fc6565b611b5391906120ff565b8260ff911c1692915050565b6040805160028082526060820183525f928392919060208301908036833701905050905083815f81518110611b9657611b96611e0c565b602002602001018181525050826001600160a01b03165f1b81600181518110611bc157611bc1611e0c565b60209081029190910101525f611c187f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000610668565b90506101f18160f81c90565b5f60208284031215611c34575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610661575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112611c86575f80fd5b813567ffffffffffffffff80821115611ca157611ca1611c63565b604051601f8301601f19908116603f01168101908282118183101715611cc957611cc9611c63565b81604052838152866020858801011115611ce1575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f8060808587031215611d13575f80fd5b84356001600160a01b0381168114611d29575f80fd5b935060208501359250604085013567ffffffffffffffff80821115611d4c575f80fd5b611d5888838901611c77565b93506060870135915080821115611d6d575f80fd5b50611d7a87828801611c77565b91505092959194509250565b5f5b83811015611da0578181015183820152602001611d88565b50505f910152565b5f8151808452611dbf816020860160208601611d86565b601f01601f19169290920160200192915050565b602081525f6106616020830184611da8565b634e487b7160e01b5f52601160045260245ffd5b808201808211156101a1576101a1611de5565b634e487b7160e01b5f52603260045260245ffd5b5f8251611e31818460208701611d86565b9190910192915050565b634e487b7160e01b5f52602160045260245ffd5b6001600160a01b0384168152826020820152606060408201525f6101f16060830184611da8565b828152604060208201525f61065e6040830184611da8565b5f60208284031215611e9e575f80fd5b5051919050565b8281525f60208083018451602086015f5b82811015611ed257815184529284019290840190600101611eb6565b5091979650505050505050565b634e487b7160e01b5f52601260045260245ffd5b5f815180845260208085019450602084015f5b83811015611f2257815187529582019590820190600101611f06565b509495945050505050565b606081525f611f3f6060830186611ef3565b65ffffffffffff8516602084015282810360408401526104248185611da8565b848152608060208201525f611f776080830186611ef3565b65ffffffffffff851660408401528281036060840152611f978185611da8565b979650505050505050565b606081525f611fb46060830186611da8565b60208301949094525060400152919050565b818103818111156101a1576101a1611de5565b7fffff000000000000000000000000000000000000000000000000000000000000841681525f7f3a000000000000000000000000000000000000000000000000000000000000008060028401528451612039816003860160208901611d86565b808401905081600382015284519150612059826004830160208801611d86565b0160040195945050505050565b604081525f6120786040830185611da8565b90506001600160a01b03831660208301529392505050565b5f60ff821660ff81036120a5576120a5611de5565b60010192915050565b5f84516120bf818460208901611d86565b60609490941b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001691909301908152601481019190915260340192915050565b80820281158282048414176101a1576101a1611de556fea164736f6c6343000818000a","sourceMap":"716:872:139:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610058575f3560e01c80631fae6308116100415780631fae6308146100bc57806345ec9354146100dc578063e1af802c146100fb575f80fd5b806301ffc9a71461005c578063119df25f14610090575b5f80fd5b348015610067575f80fd5b5061007b610076366004611c24565b61010f565b60405190151581526020015b60405180910390f35b34801561009b575f80fd5b506100a46101a7565b6040516001600160a01b039091168152602001610087565b6100cf6100ca366004611d00565b6101b5565b6040516100879190611dd3565b3480156100e7575f80fd5b50604051601f193601358152602001610087565b348015610106575f80fd5b506100a46101fa565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee1270000000000000000000000000000000000000000000000000000000014806101a157507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b5f6101b0610203565b905090565b60606101c385858585610235565b6101e0856101d0876102a1565b6101db906001611df9565b610342565b6101f185858536601f190135610402565b95945050505050565b5f6101b061042e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806102325750335b90565b5f61023f856102a1565b90505f6102568686868561025161042e565b610437565b90506102638682856105f5565b610299576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050565b6040805160018082528183019092525f9182919060208083019080368337019050509050826001600160a01b03165f1b815f815181106102e3576102e3611e0c565b60209081029190910101525f61033a7f7462000000000000000000000000000043616c6c576974685369676e6174757283837e20010020000000000000000000000000000000000000000000000000000000610668565b949350505050565b6040805160018082528183019092525f9160208083019080368337019050509050826001600160a01b03165f1b815f8151811061038157610381611e0c565b6020026020010181815250506103fd7f7462000000000000000000000000000043616c6c576974685369676e617475725f1b825f856040516020016103c891815260200190565b60408051601f198184030181529190527e20010020000000000000000000000000000000000000000000000000000000610694565b505050565b60605f80610412878787876106b0565b91509150816104245761042481610870565b9695505050505050565b5f6101b0610878565b604080517f6268546d6d3d3a16ed8cfd22f4fe09a1d17f9af43838183ba533d41e284cf32660208201526001600160a01b038316918101919091524660608201525f908190608001604051602081830303815290604052805190602001209050807fe1aba1240c6e8ae2c09457b30ace1a1a2b13361439ce6e8d5a278d794ac997ec886104e16104c78a60101b90565b71ffffffffffffffffffffffffffffffffffff19166108b6565b6040516020016104f19190611e20565b604051602081830303815290604052805190602001206105186105138b610959565b6108b6565b6040516020016105289190611e20565b60408051601f1981840301815282825280516020918201208c518d830120918401969096526001600160a01b03909416908201526060810191909152608081019290925260a082015260c0810186905260e001604051602081830303815290604052805190602001206040516020016105d39291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b6040516020818303038152906040528051906020012091505095945050505050565b5f836001600160a01b03163b5f03610653575f80610613858561096f565b5090925090505f81600381111561062c5761062c611e3b565b14801561064a5750856001600160a01b0316826001600160a01b0316145b92505050610661565b61065e8484846109b8565b90505b9392505050565b5f6101f16106768686610ad5565b60ff858116601b0360080285901c1661068f8587610b2a565b610b62565b6106a985856106a38487610b2a565b85610bb2565b5050505050565b5f60605f6106bd86610e47565b90505f5b8151811015610789575f8282815181106106dd576106dd611e0c565b602002602001015190506107096001826affffffffffffffffffffff1916610ecc90919063ffffffff16565b15610780576040517fc3323031000000000000000000000000000000000000000000000000000000008152606082901c9063c332303190610752908c908c908c90600401611e4f565b5f604051808303815f87803b158015610769575f80fd5b505af115801561077b573d5f803e3d5ffd5b505050505b506001016106c1565b5061079687858888610ee9565b90935091505f5b8151811015610865575f8282815181106107b9576107b9611e0c565b602002602001015190506107e56002826affffffffffffffffffffff1916610ecc90919063ffffffff16565b1561085c576040517f973d8f99000000000000000000000000000000000000000000000000000000008152606082901c9063973d8f999061082e908c908c908c90600401611e4f565b5f604051808303815f87803b158015610845575f80fd5b505af1158015610857573d5f803e3d5ffd5b505050505b5060010161079d565b505094509492505050565b805160208201fd5b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175545f906001600160a01b0316806108b1573391505090565b919050565b60605f5b601081101561091a577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff00000000000000000000000000000000000000000000000000000000000000161561091a576001016108ba565b604080517fffffffffffffffffffffffffffffffff0000000000000000000000000000000085166020820152815160309091019091528181528061033a565b5f61096660706010611df9565b9190911b919050565b5f805f83516041036109a6576020840151604085015160608601515f1a6109988882858561101c565b9550955095505050506109b1565b505081515f91506002905b9250925092565b5f805f856001600160a01b031685856040516024016109d8929190611e76565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1626ba7e0000000000000000000000000000000000000000000000000000000017905251610a3b9190611e20565b5f60405180830381855afa9150503d805f8114610a73576040519150601f19603f3d011682016040523d82523d5f602084013e610a78565b606091505b5091509150818015610a8c57506020815110155b8015610424575080517f1626ba7e0000000000000000000000000000000000000000000000000000000090610aca9083016020908101908401611e8e565b149695505050505050565b5f8282604051602001610ae9929190611ea5565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b5f80805b8360ff16811015610b5a57610b5060ff601b83900360080287901c1683611df9565b9150600101610b2e565b509392505050565b5f60208210610b8757602082048401935060208281610b8357610b83611edf565b0691505b508254600882021b602082900380841115610b5a576001850154600882021c82179150509392505050565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff0000000000000000000000000000000000000000000000000000000000001603610c3c57837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be848484604051610c2f93929190611f2d565b60405180910390a2610e41565b5f610c478585610ad5565b90505f610c53866110e4565b90505f5b8151811015610d21575f828281518110610c7357610c73611e0c565b60200260200101519050610c9f6004826affffffffffffffffffffff1916610ecc90919063ffffffff16565b15610d18576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90610cea908b908b908b908b90600401611f5f565b5f604051808303815f87803b158015610d01575f80fd5b505af1158015610d13573d5f803e3d5ffd5b505050505b50600101610c57565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be868686604051610d5693929190611f2d565b60405180910390a2610d71828565ffffffffffff1685611153565b5f5b8151811015610e3d575f828281518110610d8f57610d8f611e0c565b60200260200101519050610dbb6008826affffffffffffffffffffff1916610ecc90919063ffffffff16565b15610e34576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190610e06908b908b908b908b90600401611f5f565b5f604051808303815f87803b158015610e1d575f80fd5b505af1158015610e2f573d5f803e3d5ffd5b505050505b50600101610d73565b5050505b50505050565b6040805160018082528183019092526060915f91906020808301908036833701905050905082815f81518110610e7f57610e7f611e0c565b60209081029190910101525f610eb67f7462776f726c6400000000000000000053797374656d486f6f6b7300000000008383611169565b905061033a610ec7825f84516111a2565b61122e565b5f8160ff1682610edc8560581c90565b1660ff1614905092915050565b5f60605f80610ef78661123d565b90925090506001600160a01b038216610f515785610f14876112f2565b6040517ffbf10ce6000000000000000000000000000000000000000000000000000000008152600401610f48929190611e76565b60405180910390fd5b80610f6057610f608689611414565b8615610fcb577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e73000000000000000000000000000000000000000000000000000000000000175f610fb382611464565b9050610fc882610fc38b84611df9565b6114f2565b50505b5f610fd68760101b90565b71ffffffffffffffffffffffffffffffffffff19161461100157610ffc8888848861156d565b61100d565b61100d888884886115e0565b90999098509650505050505050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561105557505f915060039050826110da565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156110a6573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b0381166110d157505f9250600191508290506110da565b92505f91508190505b9450945094915050565b6040805160018082528183019092526060915f91906020808301908036833701905050905082815f8151811061111c5761111c611e0c565b60209081029190910101525f610eb67f746273746f726500000000000000000053746f7265486f6f6b730000000000008383611169565b6103fd838383516111648560200190565b61163d565b606061065e6111798585856116f8565b5f61119d856111888989611776565b9060ff166028026038011c64ffffffffff1690565b611788565b5f818311806111b15750835182115b156111ee578383836040517f23230fa3000000000000000000000000000000000000000000000000000000008152600401610f4893929190611fa2565b602084016111fc8482611df9565b90505f6112098585611fc6565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60605f6106618360155f6117ab565b6040805160018082528183019092525f91829182916020808301908036833701905050905083815f8151811061127557611275611e0c565b60209081029190910101525f80806112cd7f7462776f726c6400000000000000000053797374656d73000000000000000000857e15020014010000000000000000000000000000000000000000000000000000611823565b5050602081015160349091015160609190911c9860f89190911c975095505050505050565b606081601081901b5f61130483610959565b90508271ffffffffffffffffffffffffffffffffffff198316156113455761134071ffffffffffffffffffffffffffffffffffff1984166108b6565b61137c565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156113b2576113ad836108b6565b6113e9565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016113fb93929190611fd9565b6040516020818303038152906040529350505050919050565b61141e8282611924565b6114605761142b826112f2565b816040517fd787b737000000000000000000000000000000000000000000000000000000008152600401610f48929190612066565b5050565b6040805160018082528183019092525f918291906020808301908036833701905050905082815f8151811061149b5761149b611e0c565b60209081029190910101525f61033a7f7462776f726c6400000000000000000042616c616e636573000000000000000083837e20010020000000000000000000000000000000000000000000000000000000610668565b6040805160018082528183019092525f916020808301908036833701905050905082815f8151811061152657611526611e0c565b6020026020010181815250506103fd7f7462776f726c6400000000000000000042616c616e63657300000000000000005f1b825f856040516020016103c891815260200190565b5f6060836001600160a01b03165f611586858989611981565b6040516115939190611e20565b5f6040518083038185875af1925050503d805f81146115cd576040519150601f19603f3d011682016040523d82523d5f602084013e6115d2565b606091505b509097909650945050505050565b5f6060836001600160a01b03166115f8848888611981565b6040516116059190611e20565b5f60405180830381855af49150503d805f81146115cd576040519150601f19603f3d011682016040523d82523d5f602084013e6115d2565b82156116b557602083106116675760208304840193506020838161166357611663611edf565b0692505b82156116b55760208390035f5f19600885021c1990506008850281811c91508351811c90508119875416828216178755508184116116a6575050610e41565b50600194909401939182900391015b5b602082106116d75780518455600190930192601f19909101906020016116b6565b8115610e41575f5f19600884021c8554835182191691161785555050505050565b5f838360405160200161170c929190611ea5565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f118185f1c90509392505050565b5f61066161178484846119b0565b5490565b60405160208101601f19603f8484010116604052828252610b5a85858584611a05565b60605f6117b88560801c90565b90506fffffffffffffffffffffffffffffffff85165f8582816117dd576117dd611edf565b0490506040519350602084016020820281016040528185525f5b82811015611817578451871c8252938701936020909101906001016117f7565b50505050509392505050565b60605f60605f61183285611acc565b905061183f878783611aee565b93505f61184b86611b23565b905080156119195761185d8888611776565b935066ffffffffffffff841667ffffffffffffffff81111561188157611881611c63565b6040519080825280601f01601f1916602001820160405280156118ab576020820181803683370190505b509250602083015f5b828160ff161015611916575f6118cb8b8b846116f8565b90505f6118e7888460ff166028026038011c64ffffffffff1690565b90506118f5825f8387611a05565b6118ff8185611df9565b93505050808061190e90612090565b9150506118b4565b50505b505093509350939050565b5f6119717f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783611b5f565b8061066157506106618383611b5f565b6060838383604051602001611998939291906120ae565b60405160208183030381529060405290509392505050565b5f82826040516020016119c4929190611ea5565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b8215611a895760208310611a2f57602083048401935060208381611a2b57611a2b611edf565b0692505b8215611a895760208390035f81841015611a5057505f19600884021c611a59565b505f19600882021c5b8554600886021b818451168219821617845250818411611a7a575050610e41565b50600194909401939182900391015b5b60208210611aab5783548152600190930192601f1990910190602001611a8a565b8115610e41575f5f19600884021c8251865482191691161782525050505050565b5f6008611adb60026020611fc6565b611ae591906120ff565b9190911c919050565b6060815f03611b0b575060408051602081019091525f8152610661565b5f611b168585610ad5565b90506101f1815f85611788565b5f6008600180611b3560026020611fc6565b611b3f9190611fc6565b611b499190611fc6565b611b5391906120ff565b8260ff911c1692915050565b6040805160028082526060820183525f928392919060208301908036833701905050905083815f81518110611b9657611b96611e0c565b602002602001018181525050826001600160a01b03165f1b81600181518110611bc157611bc1611e0c565b60209081029190910101525f611c187f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000610668565b90506101f18160f81c90565b5f60208284031215611c34575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610661575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112611c86575f80fd5b813567ffffffffffffffff80821115611ca157611ca1611c63565b604051601f8301601f19908116603f01168101908282118183101715611cc957611cc9611c63565b81604052838152866020858801011115611ce1575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f8060808587031215611d13575f80fd5b84356001600160a01b0381168114611d29575f80fd5b935060208501359250604085013567ffffffffffffffff80821115611d4c575f80fd5b611d5888838901611c77565b93506060870135915080821115611d6d575f80fd5b50611d7a87828801611c77565b91505092959194509250565b5f5b83811015611da0578181015183820152602001611d88565b50505f910152565b5f8151808452611dbf816020860160208601611d86565b601f01601f19169290920160200192915050565b602081525f6106616020830184611da8565b634e487b7160e01b5f52601160045260245ffd5b808201808211156101a1576101a1611de5565b634e487b7160e01b5f52603260045260245ffd5b5f8251611e31818460208701611d86565b9190910192915050565b634e487b7160e01b5f52602160045260245ffd5b6001600160a01b0384168152826020820152606060408201525f6101f16060830184611da8565b828152604060208201525f61065e6040830184611da8565b5f60208284031215611e9e575f80fd5b5051919050565b8281525f60208083018451602086015f5b82811015611ed257815184529284019290840190600101611eb6565b5091979650505050505050565b634e487b7160e01b5f52601260045260245ffd5b5f815180845260208085019450602084015f5b83811015611f2257815187529582019590820190600101611f06565b509495945050505050565b606081525f611f3f6060830186611ef3565b65ffffffffffff8516602084015282810360408401526104248185611da8565b848152608060208201525f611f776080830186611ef3565b65ffffffffffff851660408401528281036060840152611f978185611da8565b979650505050505050565b606081525f611fb46060830186611da8565b60208301949094525060400152919050565b818103818111156101a1576101a1611de5565b7fffff000000000000000000000000000000000000000000000000000000000000841681525f7f3a000000000000000000000000000000000000000000000000000000000000008060028401528451612039816003860160208901611d86565b808401905081600382015284519150612059826004830160208801611d86565b0160040195945050505050565b604081525f6120786040830185611da8565b90506001600160a01b03831660208301529392505050565b5f60ff821660ff81036120a5576120a5611de5565b60010192915050565b5f84516120bf818460208901611d86565b60609490941b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001691909301908152601481019190915260340192915050565b80820281158282048414176101a1576101a1611de556fea164736f6c6343000818000a","sourceMap":"716:872:139:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:198:64;;;;;;;;;;-1:-1:-1;2331:198:64;;;;;:::i;:::-;;:::i;:::-;;;516:14:224;;509:22;491:41;;479:2;464:18;2331:198:64;;;;;;;;1262:113;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;707:55:224;;;689:74;;677:2;662:18;1262:113:64;543:226:224;1168:418:139;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1616:110:64:-;;;;;;;;;;-1:-1:-1;1616:110:64;;-1:-1:-1;;3800:14:64;3796:25;3783:39;3543:25:224;;3531:2;3516:18;1616:110:64;3397:177:224;1942:98:64;;;;;;;;;;;;;:::i;2331:198::-;2407:4;2426:54;;;2441:39;2426:54;;:98;;-1:-1:-1;2484:40:64;;;2499:25;2484:40;2426:98;2419:105;2331:198;-1:-1:-1;;2331:198:64:o;1262:113::-;1305:14;1334:36;:34;:36::i;:::-;1327:43;;1262:113;:::o;1168:418:139:-;1325:12;1345:64;1371:6;1379:8;1389;1399:9;1345:25;:64::i;:::-;1416:78;1445:6;1453:36;1482:6;1453:28;:36::i;:::-;:40;;1492:1;1453:40;:::i;:::-;1416:28;:78::i;:::-;1508:73;1541:6;1549:8;1559;3800:14:64;-1:-1:-1;;3796:25:64;3783:39;1508:32:139;:73::i;:::-;1501:80;1168:418;-1:-1:-1;;;;;1168:418:139:o;1942:98:64:-;1981:7;2003:32;:30;:32::i;2992:383::-;3278:34;3282:14;3278:34;3265:48;3259:4;3255:59;;3325:45;;-1:-1:-1;3360:10:64;3325:45;2992:383;:::o;935:443:143:-;1073:13;1089:36;1118:6;1089:28;:36::i;:::-;1073:52;;1129:12;1144:89;1165:6;1173:8;1183;1193:5;1200:32;:30;:32::i;:::-;1144:20;:89::i;:::-;1129:104;;1243:61;1280:6;1288:4;1294:9;1243:36;:61::i;:::-;1238:138;;1319:52;;;;;;;;;;;;;;1238:138;1069:309;;935:443;;;;:::o;3647:301:142:-;3750:16;;;3764:1;3750:16;;;;;;;;;3700:13;;;;3750:16;;;;;;;;;;;;-1:-1:-1;3750:16:142;3721:45;;3811:6;-1:-1:-1;;;;;3795:24:142;3787:33;;3772:9;3782:1;3772:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;3827:13;3843:62;1086:66;3878:9;3827:13;1215:66;3843:24;:62::i;:::-;3827:78;3647:301;-1:-1:-1;;;;3647:301:142:o;4900:260::-;4989:16;;;5003:1;4989:16;;;;;;;;;4960:26;;4989:16;;;;;;;;;;;-1:-1:-1;4989:16:142;4960:45;;5050:6;-1:-1:-1;;;;;5034:24:142;5026:33;;5011:9;5021:1;5011:12;;;;;;;;:::i;:::-;;;;;;:48;;;;;5066:89;1086:66;1070:83;;5101:9;5112:1;5133:5;5115:25;;;;;;4216:19:224;;4260:2;4251:12;;4087:182;5115:25:142;;;;-1:-1:-1;;5115:25:142;;;;;;;;;1215:66;5066:24;:89::i;:::-;4954:206;4900:260;;:::o;7661:401:61:-;7805:17;7831:12;7845:23;7872:115;7902:6;7946:8;7972;7923:5;7872:13;:115::i;:::-;7830:157;;;;7998:7;7993:41;;8007:27;8023:10;8007:15;:27::i;:::-;8047:10;7661:401;-1:-1:-1;;;;;;7661:401:61:o;4048:97:64:-;4089:7;4111:29;:27;:29::i;1392:740:141:-;1594:65;;;612;1594;;;4476:25:224;-1:-1:-1;;;;;4537:55:224;;4517:18;;;4510:83;;;;1644:13:141;4609:18:224;;;4602:34;1545:7:141;;;;4449:18:224;;1594:65:141;;;;;;;;;;;;1584:76;;;;;;1558:102;;1739:15;712:107;1836:6;1883:59;1918:23;:8;451:5:20;2637:44:65;;2539:148;1918:23:141;-1:-1:-1;;1883:59:141;:34;:59::i;:::-;1866:77;;;;;;;;:::i;:::-;;;;;;;;;;;;;1856:88;;;;;;1985:54;2020:18;:8;:16;:18::i;:::-;1985:34;:54::i;:::-;1968:72;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1968:72:141;;;;;;;;;1958:83;;1968:72;1958:83;;;;2055:19;;;;;;1785:320;;;5228:25:224;;;;-1:-1:-1;;;;;5289:55:224;;;5269:18;;;5262:83;5361:18;;;5354:34;;;;5404:18;;;5397:34;;;;5447:19;;;5440:35;5491:19;;;5484:35;;;5200:19;;1785:320:141;;;;;;;;;;;;1764:351;;;;;;1693:430;;;;;;;;5800:66:224;5788:79;;5892:1;5883:11;;5876:27;;;;5928:2;5919:12;;5912:28;5965:2;5956:12;;5530:444;1693:430:141;;;;;;;;;;;;;1676:453;;;;;;1665:464;;;1392:740;;;;;;;:::o;1014:397:137:-;1120:4;1136:6;-1:-1:-1;;;;;1136:18:137;;1158:1;1136:23;1132:275;;1170:17;1189:22;1217:33;1234:4;1240:9;1217:16;:33::i;:::-;-1:-1:-1;1169:81:137;;-1:-1:-1;1169:81:137;-1:-1:-1;1272:26:137;1265:3;:33;;;;;;;;:::i;:::-;;:56;;;;;1315:6;-1:-1:-1;;;;;1302:19:137;:9;-1:-1:-1;;;;;1302:19:137;;1265:56;1258:63;;;;;;1132:275;1349:51;1376:6;1384:4;1390:9;1349:26;:51::i;:::-;1342:58;;1132:275;1014:397;;;;;:::o;36171:541:24:-;36328:7;36465:242;36509:59;36550:7;36559:8;36509:40;:59::i;:::-;36586:31;;;;4323:19:4;:27;579:1:34;4322:44:4;4288:79;;;4275:93;36635:63:24;36674:11;36687:10;36635:38;:63::i;:::-;36465:17;:242::i;23107:355::-;23279:178;23313:7;23338:8;23368:63;23407:11;23420:10;23368:38;:63::i;:::-;23446:4;23279:16;:178::i;:::-;23107:355;;;;;:::o;6185:1003:61:-;6321:12;6335:17;6384:22;6409:26;6426:8;6409:16;:26::i;:::-;6384:51;;6512:9;6507:228;6527:5;:12;6523:1;:16;6507:228;;;6554:9;6576:5;6582:1;6576:8;;;;;;;;:::i;:::-;;;;;;;6554:31;;6597:34;458:6:104;6597:4:61;:14;;;;;:34;;;;:::i;:::-;6593:136;;;6643:77;;;;;3536:35:5;;;;;6643:49:61;;:77;;6693:6;;6701:8;;6711;;6643:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6593:136;-1:-1:-1;6541:3:61;;6507:228;;;;6810:78;6825:6;6840:5;6857:8;6877;6810:4;:78::i;:::-;6792:96;;-1:-1:-1;6792:96:61;-1:-1:-1;6963:9:61;6958:226;6978:5;:12;6974:1;:16;6958:226;;;7005:9;7027:5;7033:1;7027:8;;;;;;;;:::i;:::-;;;;;;;7005:31;;7048:33;586:6:104;7048:4:61;:14;;;;;:33;;;;:::i;:::-;7044:134;;;7093:76;;;;;3536:35:5;;;;;7093:48:61;;:76;;7142:6;;7150:8;;7160;;7093:76;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7044:134;-1:-1:-1;6992:3:61;;6958:226;;;;6354:834;6185:1003;;;;;;;:::o;348:217:103:-;551:6;545:13;538:4;530:6;526:17;519:40;1836:227:28;1066:42;1925:22;1886:7;;-1:-1:-1;;;;;1925:22:28;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:28:o;1862:325:65:-;1932:13;1953:14;1973:83;1989:2;1980:6;:11;1973:83;;;2007:37;;;3261:1:2;3257:13;;3253:24;2007:42:65;;2003:53;2051:5;2003:53;1993:8;;1973:83;;;2092:30;;;6765:66:224;6753:79;;2092:30:65;;;6741:92:224;2092:30:65;;6849:12:224;;;;2092:30:65;;;875:21:2;;;2092:30:65;2142:39;760:164:2;3165:160:65;3228:7;3292:26;438:6;451:5:20;3292:26:65;:::i;:::-;3258:61;;;;;3165:160;-1:-1:-1;3165:160:65:o;2042:668:134:-;2123:7;2132:12;2146:7;2165:9;:16;2185:2;2165:22;2161:545;;2451:4;2436:20;;2430:27;2492:4;2477:20;;2471:27;2541:4;2526:20;;2520:27;2197:9;2512:36;2570:25;2581:4;2512:36;2430:27;2471;2570:10;:25::i;:::-;2563:32;;;;;;;;;;;2161:545;-1:-1:-1;;2681:16:134;;2632:1;;-1:-1:-1;2636:35:134;;2161:545;2042:668;;;;;:::o;1802:412:137:-;1931:4;1944:12;1958:19;1981:6;-1:-1:-1;;;;;1981:17:137;2049:4;2055:9;2006:60;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2006:60:137;;;;;;;;;;;;;;;;;;;;1981:91;;;2006:60;1981:91;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1943:129;;;;2086:7;:36;;;;;2120:2;2103:6;:13;:19;;2086:36;:122;;;;-1:-1:-1;2132:29:137;;2173:34;;2132:29;;;;;;;;;;;;:::i;:::-;:76;2078:131;1802:412;-1:-1:-1;;;;;;1802:412:137:o;50806:191:24:-;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:24;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:24:o;51823:242::-;51919:7;;;51958:84;51978:10;51974:14;;:1;:14;51958:84;;;52003:32;4275:93:4;4323:19;:27;;;579:1:34;4322:44:4;4288:79;;;4275:93;52003:32:24;;:::i;:::-;;-1:-1:-1;51990:3:24;;51958:84;;;-1:-1:-1;52054:6:24;51823:242;-1:-1:-1;;;51823:242:24:o;8945:812:23:-;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:23;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9059:698;8945:812;;;;;:::o;17013:1682:24:-;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:36;17798:4:24;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:5;;;;;17851:54:24;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:24;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:36;18455:4:24;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:5;;;;;18507:53:24;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:24;;18365:326;;;;17128:1567;;17013:1682;;;;;:::o;3857:344:82:-;3974:16;;;3988:1;3974:16;;;;;;;;;3915:22;;3945:26;;3974:16;;;;;;;;;;;;-1:-1:-1;3974:16:82;3945:45;;4029:8;3996:9;4006:1;3996:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;4045:18;4066:49;1163:66;4102:9;4045:18;4066:25;:49::i;:::-;4045:70;;4129:66;:44;4150:5;4157:1;4160:5;:12;4129:20;:44::i;:::-;:64;:66::i;3035:136:5:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;1761:1387:61:-;1888:12;1902:17;1956:21;1979:17;2000:22;2013:8;2000:12;:22::i;:::-;1955:67;;-1:-1:-1;1955:67:61;-1:-1:-1;;;;;;2067:27:61;;2063:106;;2139:8;2149:19;:8;:17;:19::i;:::-;2103:66;;;;;;;;;;;;:::i;:::-;;;;;;;;2063:106;2275:12;2270:65;;2289:46;2318:8;2328:6;2289:28;:46::i;:::-;2414:9;;2410:197;;578:36:65;2955:46;;696:18:106;2954:74:65;2433:22:61;2516:26;2954:74:65;2516:13:61;:26::i;:::-;2491:51;-1:-1:-1;2550:50:61;2564:11;2577:22;2594:5;2491:51;2577:22;:::i;:::-;2550:13;:50::i;:::-;2425:182;;2410:197;2709:14;2682:23;:8;451:5:20;2637:44:65;;2539:148;2682:23:61;-1:-1:-1;;2682:41:61;;:461;;2983:160;3044:6;3070:5;3093:13;3126:8;2983:39;:160::i;:::-;2682:461;;;2806:168;2875:6;2901:5;2924:13;2957:8;2806:47;:168::i;:::-;2664:479;;;;-1:-1:-1;1761:1387:61;-1:-1:-1;;;;;;;1761:1387:61:o;4833:1434:134:-;4941:7;;;5834:66;5821:79;;5817:154;;;-1:-1:-1;5926:1:134;;-1:-1:-1;5930:30:134;;-1:-1:-1;5962:1:134;5910:54;;5817:154;6074:24;;;6057:14;6074:24;;;;;;;;;10612:25:224;;;10685:4;10673:17;;10653:18;;;10646:45;;;;10707:18;;;10700:34;;;10750:18;;;10743:34;;;6074:24:134;;10584:19:224;;6074:24:134;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6074:24:134;;-1:-1:-1;;6074:24:134;;;-1:-1:-1;;;;;;;6108:20:134;;6104:103;;-1:-1:-1;6154:1:134;;-1:-1:-1;6158:29:134;;-1:-1:-1;6154:1:134;;-1:-1:-1;6138:62:134;;6104:103;6221:6;-1:-1:-1;6229:20:134;;-1:-1:-1;6229:20:134;;-1:-1:-1;4833:1434:134;;;;;;;;;:::o;3656:342:32:-;3772:16;;;3786:1;3772:16;;;;;;;;;3713:22;;3743:26;;3772:16;;;;;;;;;;;;-1:-1:-1;3772:16:32;3743:45;;3827:7;3794:9;3804:1;3794:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3842:18;3863:49;969:66;3899:9;3842:18;3863:25;:49::i;966:162:23:-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::19;884:15;;758:151;1098:24:23;1055:5;:68::i;37180:522:24:-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:3;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:24;37440:12;:257::i;2003:574:22:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:22;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:22:o;40103:220:38:-;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;5928:433:84:-;6056:16;;;6070:1;6056:16;;;;;;;;;5986:14;;;;;;6056:16;;;;;;;;;;;-1:-1:-1;6056:16:84;6027:45;;6111:8;6078:9;6088:1;6078:12;;;;;;;;:::i;:::-;;;;;;;;;;:42;6128:24;;;6215:78;1155:66;6258:9;1284:66;6215:19;:78::i;:::-;-1:-1:-1;;22739:4:2;22725:27;;22719:34;22725:27;;;;22719:34;7564:35:84;;;;;;7631:33;;;;;;-1:-1:-1;5928:433:84;-1:-1:-1;;;;;;5928:433:84:o;3486:592:65:-;3550:13;3620:10;451:5:20;2637:44:65;;;3571:19;3718;3620:10;3718:7;:19::i;:::-;3695:42;-1:-1:-1;3800:12:65;-1:-1:-1;;3839:35:65;;;:102;;3888:53;-1:-1:-1;;3888:53:65;;:34;:53::i;:::-;3839:102;;;;;;;;;;;;;;;;;;;;;3968:25;;;;:87;;4007:48;4042:12;4007:34;:48::i;:::-;3968:87;;;;;;;;;;;;;;;;;;;;;3772:293;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3743:330;;;;;3486:592;;;:::o;2926:283:46:-;3089:30;3100:10;3112:6;3089:10;:30::i;:::-;3084:121;;3168:21;:10;:19;:21::i;:::-;3191:6;3136:62;;;;;;;;;;;;:::i;3084:121::-;2926:283;;:::o;3758:308:74:-;3871:16;;;3885:1;3871:16;;;;;;;;;3819:15;;;;3871:16;;;;;;;;;;;;-1:-1:-1;3871:16:74;3842:45;;3926:11;3893:9;3903:1;3893:12;;;;;;;;:::i;:::-;;;;;;;;;;:45;3945:13;3961:62;1157:66;3996:9;3945:13;1286:66;3961:24;:62::i;5057:269::-;5156:16;;;5170:1;5156:16;;;;;;;;;5127:26;;5156:16;;;;;;;;;;;-1:-1:-1;5156:16:74;5127:45;;5211:11;5178:9;5188:1;5178:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5230:91;1157:66;1141:83;;5265:9;5276:1;5297:7;5279:27;;;;;;4216:19:224;;4260:2;4251:12;;4087:182;5594:317:64;5733:12;5747:17;5790:6;-1:-1:-1;;;;;5790:11:64;5810:1;5821:79;5847:8;5868:9;5889:8;5821:13;:79::i;:::-;5790:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5772:134:64;;;;-1:-1:-1;5594:317:64;-1:-1:-1;;;;;5594:317:64:o;7139:321::-;7286:12;7300:17;7343:6;-1:-1:-1;;;;;7343:19:64;7370:79;7396:8;7417:9;7438:8;7370:13;:79::i;:::-;7343:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1489:2340:23;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:34;804:25:35;;782:48;2208:18:23;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:23;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:23;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:34;804:25:35;;782:48;3761:21:23;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:23;;;;:::o;52742:274:24:-;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;53939:303::-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:23;;4605:137;5042:669;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:23;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;2681:1129:40:-;2801:22;2831:21;2855;:11;2997:3:22;2975:25;;2901:104;2855:21:40;2831:45;-1:-1:-1;692:17:22;3238:38;;2882:20:40;3044:11;3238:38:22;3044:11:40;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;32759:1315:24:-;32889:23;32914:29;32945:24;33011:20;33034:30;:11;:28;:30::i;:::-;33011:53;;33125:65;33158:7;33167:8;33177:12;33125:32;:65::i;:::-;33112:78;;33254:24;33281:30;:11;:28;:30::i;:::-;33254:57;-1:-1:-1;33321:20:24;;33317:753;;33414:66;33462:7;33471:8;33414:47;:66::i;:::-;33397:83;-1:-1:-1;6445:61:3;;;33532:33:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33532:33:24;-1:-1:-1;33518:47:24;-1:-1:-1;894:4:19;884:15;;33573:21:24;33637:427;33655:16;33651:1;:20;;;33637:427;;;33688:27;33718:63;33760:7;33769:8;33779:1;33718:41;:63::i;:::-;33688:93;-1:-1:-1;33791:14:24;33808:25;:14;33831:1;7070:16:3;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;33808:25:24;33791:42;;33843:110;33874:19;33903:1;33914:6;33937:13;33843:12;:110::i;:::-;34032:23;34049:6;34032:23;;:::i;:::-;;;33678:386;;33673:3;;;;;:::i;:::-;;;;33637:427;;;;33343:727;33317:753;32971:1103;;32759:1315;;;;;;;:::o;1670:328:46:-;1752:4;1894:56;696:18:106;578:36:65;2955:46;;2954:74;1943:6:46;1894:19;:56::i;:::-;:99;;;;1954:39;1974:10;1986:6;1954:19;:39::i;4897:201:64:-;5019:12;5063:8;5073:9;5084:8;5046:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5039:54;;4897:201;;;;;:::o;53371:230:24:-;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:24;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:24:o;6076:2380:23:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:34;804:25:35;;782:48;6806:135:23;;;-1:-1:-1;;;579:1:34;804:25:35;;782:48;6806:135:23;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:23;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:23;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:34;804:25:35;;782:48;8389:20:23;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:23;;;;:::o;4598:171:4:-;4672:7;579:1:34;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:4;;;;;4598:171;-1:-1:-1;4598:171:4:o;48823:360:24:-;48949:12;48973:6;48983:1;48973:11;48969:26;;-1:-1:-1;48986:9:24;;;;;;;;;-1:-1:-1;48986:9:24;;;;48969:26;49036:16;49055:41;49078:7;49087:8;49055:22;:41::i;:::-;49036:60;;49109:69;49140:8;49158:1;49169:6;49109:12;:69::i;5377:173:4:-;5451:7;579:1:34;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:4;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:4:o;4006:378:81:-;4130:16;;;4144:1;4130:16;;;;;;;;4082:11;;;;4130:16;4144:1;4130:16;;;;;;;;;;-1:-1:-1;4130:16:81;4101:45;;4185:10;4152:9;4162:1;4152:12;;;;;;;;:::i;:::-;;;;;;:44;;;;;4241:6;-1:-1:-1;;;;;4225:24:81;4217:33;;4202:9;4212:1;4202:12;;;;;;;;:::i;:::-;;;;;;;;;;:48;4257:13;4273:62;1169:66;4308:9;4257:13;1298:66;4273:24;:62::i;:::-;4257:78;;4349:29;4370:5;4357:20;;8604:11:4;8499:122;14:332:224;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;774:184;-1:-1:-1;;;823:1:224;816:88;923:4;920:1;913:15;947:4;944:1;937:15;963:777;1005:5;1058:3;1051:4;1043:6;1039:17;1035:27;1025:55;;1076:1;1073;1066:12;1025:55;1112:6;1099:20;1138:18;1175:2;1171;1168:10;1165:36;;;1181:18;;:::i;:::-;1315:2;1309:9;1377:4;1369:13;;-1:-1:-1;;1365:22:224;;;1389:2;1361:31;1357:40;1345:53;;;1413:18;;;1433:22;;;1410:46;1407:72;;;1459:18;;:::i;:::-;1499:10;1495:2;1488:22;1534:2;1526:6;1519:18;1580:3;1573:4;1568:2;1560:6;1556:15;1552:26;1549:35;1546:55;;;1597:1;1594;1587:12;1546:55;1661:2;1654:4;1646:6;1642:17;1635:4;1627:6;1623:17;1610:54;1708:1;1701:4;1696:2;1688:6;1684:15;1680:26;1673:37;1728:6;1719:15;;;;;;963:777;;;;:::o;1745:836::-;1880:6;1888;1896;1904;1957:3;1945:9;1936:7;1932:23;1928:33;1925:53;;;1974:1;1971;1964:12;1925:53;2013:9;2000:23;-1:-1:-1;;;;;2056:5:224;2052:54;2045:5;2042:65;2032:93;;2121:1;2118;2111:12;2032:93;2144:5;-1:-1:-1;2196:2:224;2181:18;;2168:32;;-1:-1:-1;2251:2:224;2236:18;;2223:32;2274:18;2304:14;;;2301:34;;;2331:1;2328;2321:12;2301:34;2354:49;2395:7;2386:6;2375:9;2371:22;2354:49;:::i;:::-;2344:59;;2456:2;2445:9;2441:18;2428:32;2412:48;;2485:2;2475:8;2472:16;2469:36;;;2501:1;2498;2491:12;2469:36;;2524:51;2567:7;2556:8;2545:9;2541:24;2524:51;:::i;:::-;2514:61;;;1745:836;;;;;;;:::o;2586:250::-;2671:1;2681:113;2695:6;2692:1;2689:13;2681:113;;;2771:11;;;2765:18;2752:11;;;2745:39;2717:2;2710:10;2681:113;;;-1:-1:-1;;2828:1:224;2810:16;;2803:27;2586:250::o;2841:329::-;2882:3;2920:5;2914:12;2947:6;2942:3;2935:19;2963:76;3032:6;3025:4;3020:3;3016:14;3009:4;3002:5;2998:16;2963:76;:::i;:::-;3084:2;3072:15;-1:-1:-1;;3068:88:224;3059:98;;;;3159:4;3055:109;;2841:329;-1:-1:-1;;2841:329:224:o;3175:217::-;3322:2;3311:9;3304:21;3285:4;3342:44;3382:2;3371:9;3367:18;3359:6;3342:44;:::i;3579:184::-;-1:-1:-1;;;3628:1:224;3621:88;3728:4;3725:1;3718:15;3752:4;3749:1;3742:15;3768:125;3833:9;;;3854:10;;;3851:36;;;3867:18;;:::i;3898:184::-;-1:-1:-1;;;3947:1:224;3940:88;4047:4;4044:1;4037:15;4071:4;4068:1;4061:15;4647:289;4778:3;4816:6;4810:13;4832:66;4891:6;4886:3;4879:4;4871:6;4867:17;4832:66;:::i;:::-;4914:16;;;;;4647:289;-1:-1:-1;;4647:289:224:o;5979:184::-;-1:-1:-1;;;6028:1:224;6021:88;6128:4;6125:1;6118:15;6152:4;6149:1;6142:15;6168:439;-1:-1:-1;;;;;6406:6:224;6402:55;6391:9;6384:74;6494:6;6489:2;6478:9;6474:18;6467:34;6537:2;6532;6521:9;6517:18;6510:30;6365:4;6557:44;6597:2;6586:9;6582:18;6574:6;6557:44;:::i;6872:288::-;7047:6;7036:9;7029:25;7090:2;7085;7074:9;7070:18;7063:30;7010:4;7110:44;7150:2;7139:9;7135:18;7127:6;7110:44;:::i;7457:184::-;7527:6;7580:2;7568:9;7559:7;7555:23;7551:32;7548:52;;;7596:1;7593;7586:12;7548:52;-1:-1:-1;7619:16:224;;7457:184;-1:-1:-1;7457:184:224:o;7646:639::-;7896:6;7891:3;7884:19;7866:3;7922:2;7955;7950:3;7946:12;7987:6;7981:13;8052:2;8044:6;8040:15;8073:1;8083:175;8097:6;8094:1;8091:13;8083:175;;;8160:13;;8146:28;;8196:14;;;;8233:15;;;;8119:1;8112:9;8083:175;;;-1:-1:-1;8274:5:224;;7646:639;-1:-1:-1;;;;;;;7646:639:224:o;8290:184::-;-1:-1:-1;;;8339:1:224;8332:88;8439:4;8436:1;8429:15;8463:4;8460:1;8453:15;8479:439;8532:3;8570:5;8564:12;8597:6;8592:3;8585:19;8623:4;8652;8647:3;8643:14;8636:21;;8691:4;8684:5;8680:16;8714:1;8724:169;8738:6;8735:1;8732:13;8724:169;;;8799:13;;8787:26;;8833:12;;;;8868:15;;;;8760:1;8753:9;8724:169;;;-1:-1:-1;8909:3:224;;8479:439;-1:-1:-1;;;;;8479:439:224:o;8923:511::-;9174:2;9163:9;9156:21;9137:4;9200:56;9252:2;9241:9;9237:18;9229:6;9200:56;:::i;:::-;9304:14;9296:6;9292:27;9287:2;9276:9;9272:18;9265:55;9368:9;9360:6;9356:22;9351:2;9340:9;9336:18;9329:50;9396:32;9421:6;9413;9396:32;:::i;9439:615::-;9749:6;9738:9;9731:25;9792:3;9787:2;9776:9;9772:18;9765:31;9712:4;9819:57;9871:3;9860:9;9856:19;9848:6;9819:57;:::i;:::-;9924:14;9916:6;9912:27;9907:2;9896:9;9892:18;9885:55;9988:9;9980:6;9976:22;9971:2;9960:9;9956:18;9949:50;10016:32;10041:6;10033;10016:32;:::i;:::-;10008:40;9439:615;-1:-1:-1;;;;;;;9439:615:224:o;10788:359::-;10991:2;10980:9;10973:21;10954:4;11011:44;11051:2;11040:9;11036:18;11028:6;11011:44;:::i;:::-;11086:2;11071:18;;11064:34;;;;-1:-1:-1;11129:2:224;11114:18;11107:34;11003:52;10788:359;-1:-1:-1;10788:359:224:o;11152:128::-;11219:9;;;11240:11;;;11237:37;;;11254:18;;:::i;11285:925::-;11734:66;11726:6;11722:79;11717:3;11710:92;11692:3;11821;11853:2;11849:1;11844:3;11840:11;11833:23;11885:6;11879:13;11901:74;11968:6;11964:1;11959:3;11955:11;11948:4;11940:6;11936:17;11901:74;:::i;:::-;12003:6;11998:3;11994:16;11984:26;;12038:2;12034:1;12030:2;12026:10;12019:22;12072:6;12066:13;12050:29;;12088:75;12154:8;12150:1;12146:2;12142:10;12135:4;12127:6;12123:17;12088:75;:::i;:::-;12183:17;12202:1;12179:25;;11285:925;-1:-1:-1;;;;;11285:925:224:o;12215:339::-;12392:2;12381:9;12374:21;12355:4;12412:44;12452:2;12441:9;12437:18;12429:6;12412:44;:::i;:::-;12404:52;;-1:-1:-1;;;;;12496:6:224;12492:55;12487:2;12476:9;12472:18;12465:83;12215:339;;;;;:::o;12559:175::-;12596:3;12640:4;12633:5;12629:16;12669:4;12660:7;12657:17;12654:43;;12677:18;;:::i;:::-;12726:1;12713:15;;12559:175;-1:-1:-1;;12559:175:224:o;12739:530::-;12924:3;12962:6;12956:13;12978:66;13037:6;13032:3;13025:4;13017:6;13013:17;12978:66;:::i;:::-;13113:2;13109:15;;;;13126:66;13105:88;13066:16;;;;13091:103;;;13221:2;13210:14;;13203:30;;;;13260:2;13249:14;;12739:530;-1:-1:-1;;12739:530:224:o;13274:168::-;13347:9;;;13378;;13395:15;;;13389:22;;13375:37;13365:71;;13416:18;;:::i","linkReferences":{}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","callWithSignature(address,bytes32,bytes,bytes)":"1fae6308","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"callWithSignature\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidSignature()\":[{\"details\":\"Mismatched signature.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}]},\"events\":{\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"callWithSignature(address,bytes32,bytes,bytes)\":{\"params\":{\"callData\":\"The ABI data for the system call.\",\"signature\":\"The EIP712 signature.\",\"signer\":\"The address on whose behalf the system is called.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"Return data from the system call.\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}]},\"events\":{\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"callWithSignature(address,bytes32,bytes,bytes)\":{\"notice\":\"Calls a system with a given system ID using the given signature.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/modules/callwithsignature/Unstable_CallWithSignatureSystem.sol\":\"Unstable_CallWithSignatureSystem\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@latticexyz/=node_modules/@latticexyz/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x842b07f2ff9df2e1ecf9bf424b0e5a77e1471c983d674cf86b76c365178d6cc5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4c2df8853b020aef1bb8615ac69d5512a9b5385b82c88e03b27dc521c9d007b\",\"dweb:/ipfs/QmWEDiJn69DvHsdrikrMWY8DERWPSeWwVYgPcunfq3yiT7\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xcc0fa969a57724e7a9184009e2b1ea8ecb209a06e283c6d2b6a15cabff35f39d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d91985b8f48fcb8259b776c10bc17a1656e8dbeaa15c0c0e73368af38e6cfc8a\",\"dweb:/ipfs/QmRiYbrXqqWcTrvwz95kN6ZiMhUBfLiUycxQiSGeZFDkuo\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xa52e8323cc7227d69a3c6b2e244b4e0face106eeaa5cf23e759b0278b0f4a7ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf5d3ede2d114c26abe7b5268ed17aedb56d6ded91af19019ecebb75edf48b36\",\"dweb:/ipfs/QmWwqNFjqWFhfv8ABRXV9mbZBGumz741YCmVuQPqtiVZaD\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0x155aa0e073774674596a28371a3a863ad1d6c44d418140269d2982a45e40734b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c849ad6563c4afbdd7eec40042c9afa0d9919ece10c2acab390e358095ddd160\",\"dweb:/ipfs/QmbB7eVhKe3simEvugH18e1fBJKmwqionms3YWbWuRBDYV\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x7930483bedccb95dd73447108e67d576924c83ec591cb70c699cdea7ebaabccc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5c23093bf098e8e1f224a0e20beb6860d461a5f8d33265d382e3d43bdc431080\",\"dweb:/ipfs/QmSQwjDCEgTUgUWajjETvCRJd18ZPRhYPyS6Rcg6wDizXw\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world/src/AccessControl.sol\":{\"keccak256\":\"0xad63bcf6f989720278b4b941cb3baca953d7da8064454323b99fb444c32e821e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37d43a10ec0972a2e9a939f22542dda802aa0124e6ee46a60ec59749de88d54b\",\"dweb:/ipfs/QmVe6ALUGg7xzVUjgsYW25ANPeCaLZwL3tJW6t8pGZejA1\"]},\"node_modules/@latticexyz/world/src/Delegation.sol\":{\"keccak256\":\"0x1ad6ce468042f6ba104c8fa2cd5506e434e1bd458448492ae9e8d1993a7e5f1d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ded3d879ad5a4119f9ff2320ff27f63a06bc3853e91d3697b3406ee3e6ab65d5\",\"dweb:/ipfs/QmTMjjArXQxXa3WeFF4dvvkAFSEstHTTsNYDCckgCBUVeE\"]},\"node_modules/@latticexyz/world/src/ERC165Checker.sol\":{\"keccak256\":\"0xb9d3ad8030a8d111971cbf775c1834313736c2f714d2bcb90fe065a928abe2c8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://702c7297150819d078d498d3c6ebbc9dc9414c35aaf1f8e19ae4c5beb5048c7d\",\"dweb:/ipfs/QmZxKTDNLvVDV4jJ6S2qu9HnPbSXq1hRfgazJAL1xWkSkt\"]},\"node_modules/@latticexyz/world/src/IDelegationControl.sol\":{\"keccak256\":\"0x7cc2fbdd8ff6c996e19fab46c1031b76355da74973cebf45ce4df4b035d566bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://857d577f84a68018a3392ec4540c15e80326aaf4b0f224d0d239605abacfc0f3\",\"dweb:/ipfs/QmVEr3rTH1F1BFaCTMd7MmuceTqASwKBcMRnuFZ4tUAYmR\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/SystemCall.sol\":{\"keccak256\":\"0x39d02f33a0a96cd07cf553c6439a26be43bea3ce926266242cf7f84c762c16e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0de503a0d5e4e55dba2b04fb38660a7f890deac3673f63f8d9e2b23ab5f09574\",\"dweb:/ipfs/QmbhCvRHjkETnsA59rFuGs3p5iu2t4NwYySoCj2GDNwY2V\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x15e21a1edaad9bc31f00659cce409f4cd6eaa2cd0c5035ab32b4ffa9fa4c8d40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1f5f0260668ada84712fd51de1166eeeecf53a01b896ea322f978387de363f6\",\"dweb:/ipfs/QmQdaur7oZLLf8jRw8m3cNm1wbDLRTqQ634k1DhzRCYdRa\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol\":{\"keccak256\":\"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a\",\"dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597\",\"dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e\",\"dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol\":{\"keccak256\":\"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674\",\"dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7\",\"dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz\"]},\"node_modules/@latticexyz/world/src/codegen/tables/UserDelegationControl.sol\":{\"keccak256\":\"0x3b8d434a81e5667242724089207f90001099d32095e05c4efd75931201d850b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://73d47004e03e56b0d0e64ca9012219bc6ae01cef455d7e6ccab9f60dfc5e55b5\",\"dweb:/ipfs/QmQUcGYNEVBRs1oj1HgJ92SPNuiDL3YVYbBymGy63yxqDc\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/implementations/createDelegation.sol\":{\"keccak256\":\"0xcc77f108d653e54c3556047d69421c4864324aabbc4d29afc64c8ee20b1b622e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://974668744ac9b5d267952c52a60a6e2018067761a019af9cecfd2fbb3fa9a4aa\",\"dweb:/ipfs/QmaiBpSkRwLRGgB6GjWL2dAYVe78yKtmBDpodBKpBrY2Fz\"]},\"node_modules/@latticexyz/world/src/requireInterface.sol\":{\"keccak256\":\"0x5b94a21fd46abb4aac8f38809c0d6105f30792042c927f8a6a4f40cfe35c7ab8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bade9d52cf370f3b5435abb47a5338dca5498bee773e97518e7a080fa882940\",\"dweb:/ipfs/QmTtaXUWwMQmHW8oKEoRZxagidZcCiN3oLQs7kN3nycrkW\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/systemHookTypes.sol\":{\"keccak256\":\"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d\",\"dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/modules/callwithsignature/ECDSA.sol\":{\"keccak256\":\"0xbd68848a89cbb5df7d82f4579c2474cc9e270624ec8c3f469f9d6e142f47802d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baef0573e75353174036f5ab2410c52ee6c24dad8081f4e5d3557378ccac0438\",\"dweb:/ipfs/QmTeEH53nKLoRKFfMNh8XP55JEbYQFDcem1RgfiJmqBbVF\"]},\"src/modules/callwithsignature/IERC1271.sol\":{\"keccak256\":\"0x1ba570547eb5c32500e69215ee1970db959d4f26b933acd840c434acf5f276ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://548b2bbea3058f704cb84615e17bc1b40859d15326a111d3f7923b15998c4518\",\"dweb:/ipfs/QmYhktarC8GzDVmQxfzHbugggTyXEAqw95BqYYh7aw56az\"]},\"src/modules/callwithsignature/IUnstable_CallWithSignatureErrors.sol\":{\"keccak256\":\"0x9d5ec5bddc9efbcf3ad28a609b3f34743a3af896107058d7d6de17d4c9a04212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5ff316d7236d7c07e13e86e7a0deed204ab0f5d6de46d40a8684add416b19c1\",\"dweb:/ipfs/QmUqKgciKDXn6isXUvZARMDHkiG44fMP9NtWYL9TjQu7Hv\"]},\"src/modules/callwithsignature/SignatureChecker.sol\":{\"keccak256\":\"0xe3a6bc87e0fdb92432253e4eba0a9291c1e436b991497c6be39b3ed2a62d48eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01fcdb4c1702cdf21376da8fcf1097a08181ba448042e6835c5d0abf789313cb\",\"dweb:/ipfs/QmWU8dKcBC3tS7kZYPvhqS8ntWzG63Z8NMb654cSBWaP8W\"]},\"src/modules/callwithsignature/Unstable_CallWithSignatureSystem.sol\":{\"keccak256\":\"0x139532d7b9e41a29202f461767d7c445cc8753dbc36114016575da7a96ba9672\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0d174fe1d01fcebe0d89a0ffef56530e57c3870f5cf4686ff2b11e0ec6d453c\",\"dweb:/ipfs/QmakE7xEAjjGBPrQ7mcY6ZZsR4Ahu3DJfswrYsSkX6eoUk\"]},\"src/modules/callwithsignature/getSignedMessageHash.sol\":{\"keccak256\":\"0x422d106747fcac85c6d79b5e328895093a1870abc8785441e0a563d8bf76f22d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://601ba5d02e99b184c555b2ca6404ee74e695803bc17dac6772f599b1319c08de\",\"dweb:/ipfs/QmVQk9a3nycW3esV9pdDgeoobCjyTgX3Wtc9WnQhAWipB4\"]},\"src/modules/callwithsignature/tables/CallWithSignatureNonces.sol\":{\"keccak256\":\"0xf676b0ebca01f3f62f3a261c4bb993ce5d30d499ea3fabc1b9007ff57bc29034\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39b8aa4118555855ca49a95b9b77eaa14e554e2b2d86e6e98ec259ff3c385fab\",\"dweb:/ipfs/QmPpLrwwnZDAmNfraKvRXgJXFv1oprHKJo5GA3E2Ex9djm\"]},\"src/modules/callwithsignature/validateCallWithSignature.sol\":{\"keccak256\":\"0xe71b2507b8fec257fb884dd85e34c4460e45ef5aa00bca2ed5240a6d70cee488\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://501e4d42ed4e21a2f427e61d206e456c7d1d53a1baf79d2b74ded82d203ffd8e\",\"dweb:/ipfs/QmNarJETJqCLKAXu2ctAb8UXYwAJK9MiGTPCrvUGbUYQGc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"payable","type":"function","name":"callWithSignature","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"callWithSignature(address,bytes32,bytes,bytes)":{"params":{"callData":"The ABI data for the system call.","signature":"The EIP712 signature.","signer":"The address on whose behalf the system is called.","systemId":"The ID of the system to be called."},"returns":{"_0":"Return data from the system call."}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The ID of the interface in question."},"returns":{"_0":"True if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"callWithSignature(address,bytes32,bytes,bytes)":{"notice":"Calls a system with a given system ID using the given signature."},"supportsInterface(bytes4)":{"notice":"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"}},"version":1}},"settings":{"remappings":["@latticexyz/=node_modules/@latticexyz/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/modules/callwithsignature/Unstable_CallWithSignatureSystem.sol":"Unstable_CallWithSignatureSystem"},"evmVersion":"cancun","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x842b07f2ff9df2e1ecf9bf424b0e5a77e1471c983d674cf86b76c365178d6cc5","urls":["bzz-raw://f4c2df8853b020aef1bb8615ac69d5512a9b5385b82c88e03b27dc521c9d007b","dweb:/ipfs/QmWEDiJn69DvHsdrikrMWY8DERWPSeWwVYgPcunfq3yiT7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xcc0fa969a57724e7a9184009e2b1ea8ecb209a06e283c6d2b6a15cabff35f39d","urls":["bzz-raw://d91985b8f48fcb8259b776c10bc17a1656e8dbeaa15c0c0e73368af38e6cfc8a","dweb:/ipfs/QmRiYbrXqqWcTrvwz95kN6ZiMhUBfLiUycxQiSGeZFDkuo"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xa52e8323cc7227d69a3c6b2e244b4e0face106eeaa5cf23e759b0278b0f4a7ab","urls":["bzz-raw://bf5d3ede2d114c26abe7b5268ed17aedb56d6ded91af19019ecebb75edf48b36","dweb:/ipfs/QmWwqNFjqWFhfv8ABRXV9mbZBGumz741YCmVuQPqtiVZaD"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0x155aa0e073774674596a28371a3a863ad1d6c44d418140269d2982a45e40734b","urls":["bzz-raw://c849ad6563c4afbdd7eec40042c9afa0d9919ece10c2acab390e358095ddd160","dweb:/ipfs/QmbB7eVhKe3simEvugH18e1fBJKmwqionms3YWbWuRBDYV"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x7930483bedccb95dd73447108e67d576924c83ec591cb70c699cdea7ebaabccc","urls":["bzz-raw://5c23093bf098e8e1f224a0e20beb6860d461a5f8d33265d382e3d43bdc431080","dweb:/ipfs/QmSQwjDCEgTUgUWajjETvCRJd18ZPRhYPyS6Rcg6wDizXw"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world/src/AccessControl.sol":{"keccak256":"0xad63bcf6f989720278b4b941cb3baca953d7da8064454323b99fb444c32e821e","urls":["bzz-raw://37d43a10ec0972a2e9a939f22542dda802aa0124e6ee46a60ec59749de88d54b","dweb:/ipfs/QmVe6ALUGg7xzVUjgsYW25ANPeCaLZwL3tJW6t8pGZejA1"],"license":"MIT"},"node_modules/@latticexyz/world/src/Delegation.sol":{"keccak256":"0x1ad6ce468042f6ba104c8fa2cd5506e434e1bd458448492ae9e8d1993a7e5f1d","urls":["bzz-raw://ded3d879ad5a4119f9ff2320ff27f63a06bc3853e91d3697b3406ee3e6ab65d5","dweb:/ipfs/QmTMjjArXQxXa3WeFF4dvvkAFSEstHTTsNYDCckgCBUVeE"],"license":"MIT"},"node_modules/@latticexyz/world/src/ERC165Checker.sol":{"keccak256":"0xb9d3ad8030a8d111971cbf775c1834313736c2f714d2bcb90fe065a928abe2c8","urls":["bzz-raw://702c7297150819d078d498d3c6ebbc9dc9414c35aaf1f8e19ae4c5beb5048c7d","dweb:/ipfs/QmZxKTDNLvVDV4jJ6S2qu9HnPbSXq1hRfgazJAL1xWkSkt"],"license":"MIT"},"node_modules/@latticexyz/world/src/IDelegationControl.sol":{"keccak256":"0x7cc2fbdd8ff6c996e19fab46c1031b76355da74973cebf45ce4df4b035d566bf","urls":["bzz-raw://857d577f84a68018a3392ec4540c15e80326aaf4b0f224d0d239605abacfc0f3","dweb:/ipfs/QmVEr3rTH1F1BFaCTMd7MmuceTqASwKBcMRnuFZ4tUAYmR"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemCall.sol":{"keccak256":"0x39d02f33a0a96cd07cf553c6439a26be43bea3ce926266242cf7f84c762c16e4","urls":["bzz-raw://0de503a0d5e4e55dba2b04fb38660a7f890deac3673f63f8d9e2b23ab5f09574","dweb:/ipfs/QmbhCvRHjkETnsA59rFuGs3p5iu2t4NwYySoCj2GDNwY2V"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x15e21a1edaad9bc31f00659cce409f4cd6eaa2cd0c5035ab32b4ffa9fa4c8d40","urls":["bzz-raw://a1f5f0260668ada84712fd51de1166eeeecf53a01b896ea322f978387de363f6","dweb:/ipfs/QmQdaur7oZLLf8jRw8m3cNm1wbDLRTqQ634k1DhzRCYdRa"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Balances.sol":{"keccak256":"0x25248669a093cfdc9453491e5b5806f6aa092a805569799650c43c32f7b7877d","urls":["bzz-raw://2f294f597122450abd267760d91682facd0a1040383caeb44aaadeb74770904a","dweb:/ipfs/QmPXsoh8tUhpnhjdBYYTZCLc8MPHDZK6xUmN7F2DsMEXro"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0x3a53f395fc56398b4095c1e4016ad5f87d06236fc00f1fb85b9cfe138575b614","urls":["bzz-raw://9d91d30c8506a2d07bcafe0f8feff002bbc7764060d7e7bef7f15b9c4a97c597","dweb:/ipfs/QmVTAxSh1JSMpKD1jmJSTvXbDZQubdJW2DQDoePWecJskH"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xb857dd63073a6469f5bb8deb6c0617763cd42c484821e247572c6b53bb1da3cc","urls":["bzz-raw://07c710d67440b98b145c1991623b7c8cc7f0805b4e6fa37a7d54afcece31239e","dweb:/ipfs/Qmb368QqzbQGUttbDS7eVBGQ8KcXhiai2F9vy3Thyyk2vx"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemHooks.sol":{"keccak256":"0xc27730dae8302cb86f5d65ddc9ae0e92afba17842285a6d0cd146a1e21d73c0f","urls":["bzz-raw://4de5f820f1dfe36e53fe1fc77be6a52ac5fa72a7a5d5ec66e5d29ca6ce553674","dweb:/ipfs/QmP5JUMHDCBxZkZ2YnoYQLqQFHeyCpoUVp14hJBWpSdiqV"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x1706fe4b5441a4e3982a3d32f7de2148627b8dfbbe3e38391dd4dab06b86478c","urls":["bzz-raw://c0569fa73cd26c6476188646194ad58eb5cf78cb7c7dc7722748455c23c9d4d7","dweb:/ipfs/Qma1RuR12bTXSVJJ8Q8Gw23KkBw7pyV9u5Kr8TGutaxYdz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/UserDelegationControl.sol":{"keccak256":"0x3b8d434a81e5667242724089207f90001099d32095e05c4efd75931201d850b1","urls":["bzz-raw://73d47004e03e56b0d0e64ca9012219bc6ae01cef455d7e6ccab9f60dfc5e55b5","dweb:/ipfs/QmQUcGYNEVBRs1oj1HgJ92SPNuiDL3YVYbBymGy63yxqDc"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/implementations/createDelegation.sol":{"keccak256":"0xcc77f108d653e54c3556047d69421c4864324aabbc4d29afc64c8ee20b1b622e","urls":["bzz-raw://974668744ac9b5d267952c52a60a6e2018067761a019af9cecfd2fbb3fa9a4aa","dweb:/ipfs/QmaiBpSkRwLRGgB6GjWL2dAYVe78yKtmBDpodBKpBrY2Fz"],"license":"MIT"},"node_modules/@latticexyz/world/src/requireInterface.sol":{"keccak256":"0x5b94a21fd46abb4aac8f38809c0d6105f30792042c927f8a6a4f40cfe35c7ab8","urls":["bzz-raw://8bade9d52cf370f3b5435abb47a5338dca5498bee773e97518e7a080fa882940","dweb:/ipfs/QmTtaXUWwMQmHW8oKEoRZxagidZcCiN3oLQs7kN3nycrkW"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/systemHookTypes.sol":{"keccak256":"0x15c25ae4b21e091209970e45a198cb51f31eeae482828862641099c1a9b2448a","urls":["bzz-raw://0ce3c3eb58dc5c262d36babf372ad028d2846beea73a59d6e70f0eb8c90ee00d","dweb:/ipfs/QmWUkgegTRtSJM3awvjg4J7DWZ2ME7Pnxp1dP2TWWzLNoo"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/modules/callwithsignature/ECDSA.sol":{"keccak256":"0xbd68848a89cbb5df7d82f4579c2474cc9e270624ec8c3f469f9d6e142f47802d","urls":["bzz-raw://baef0573e75353174036f5ab2410c52ee6c24dad8081f4e5d3557378ccac0438","dweb:/ipfs/QmTeEH53nKLoRKFfMNh8XP55JEbYQFDcem1RgfiJmqBbVF"],"license":"MIT"},"src/modules/callwithsignature/IERC1271.sol":{"keccak256":"0x1ba570547eb5c32500e69215ee1970db959d4f26b933acd840c434acf5f276ed","urls":["bzz-raw://548b2bbea3058f704cb84615e17bc1b40859d15326a111d3f7923b15998c4518","dweb:/ipfs/QmYhktarC8GzDVmQxfzHbugggTyXEAqw95BqYYh7aw56az"],"license":"MIT"},"src/modules/callwithsignature/IUnstable_CallWithSignatureErrors.sol":{"keccak256":"0x9d5ec5bddc9efbcf3ad28a609b3f34743a3af896107058d7d6de17d4c9a04212","urls":["bzz-raw://e5ff316d7236d7c07e13e86e7a0deed204ab0f5d6de46d40a8684add416b19c1","dweb:/ipfs/QmUqKgciKDXn6isXUvZARMDHkiG44fMP9NtWYL9TjQu7Hv"],"license":"MIT"},"src/modules/callwithsignature/SignatureChecker.sol":{"keccak256":"0xe3a6bc87e0fdb92432253e4eba0a9291c1e436b991497c6be39b3ed2a62d48eb","urls":["bzz-raw://01fcdb4c1702cdf21376da8fcf1097a08181ba448042e6835c5d0abf789313cb","dweb:/ipfs/QmWU8dKcBC3tS7kZYPvhqS8ntWzG63Z8NMb654cSBWaP8W"],"license":"MIT"},"src/modules/callwithsignature/Unstable_CallWithSignatureSystem.sol":{"keccak256":"0x139532d7b9e41a29202f461767d7c445cc8753dbc36114016575da7a96ba9672","urls":["bzz-raw://c0d174fe1d01fcebe0d89a0ffef56530e57c3870f5cf4686ff2b11e0ec6d453c","dweb:/ipfs/QmakE7xEAjjGBPrQ7mcY6ZZsR4Ahu3DJfswrYsSkX6eoUk"],"license":"MIT"},"src/modules/callwithsignature/getSignedMessageHash.sol":{"keccak256":"0x422d106747fcac85c6d79b5e328895093a1870abc8785441e0a563d8bf76f22d","urls":["bzz-raw://601ba5d02e99b184c555b2ca6404ee74e695803bc17dac6772f599b1319c08de","dweb:/ipfs/QmVQk9a3nycW3esV9pdDgeoobCjyTgX3Wtc9WnQhAWipB4"],"license":"MIT"},"src/modules/callwithsignature/tables/CallWithSignatureNonces.sol":{"keccak256":"0xf676b0ebca01f3f62f3a261c4bb993ce5d30d499ea3fabc1b9007ff57bc29034","urls":["bzz-raw://39b8aa4118555855ca49a95b9b77eaa14e554e2b2d86e6e98ec259ff3c385fab","dweb:/ipfs/QmPpLrwwnZDAmNfraKvRXgJXFv1oprHKJo5GA3E2Ex9djm"],"license":"MIT"},"src/modules/callwithsignature/validateCallWithSignature.sol":{"keccak256":"0xe71b2507b8fec257fb884dd85e34c4460e45ef5aa00bca2ed5240a6d70cee488","urls":["bzz-raw://501e4d42ed4e21a2f427e61d206e456c7d1d53a1baf79d2b74ded82d203ffd8e","dweb:/ipfs/QmNarJETJqCLKAXu2ctAb8UXYwAJK9MiGTPCrvUGbUYQGc"],"license":"MIT"}},"version":1},"id":139}
|
@@ -1,174 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: MIT
|
2
|
-
// OpenZeppelin Contracts (last updated v5.0.0) (utils/cryptography/ECDSA.sol)
|
3
|
-
|
4
|
-
pragma solidity >=0.8.24;
|
5
|
-
|
6
|
-
/**
|
7
|
-
* @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.
|
8
|
-
*
|
9
|
-
* These functions can be used to verify that a message was signed by the holder
|
10
|
-
* of the private keys of a given address.
|
11
|
-
*/
|
12
|
-
library ECDSA {
|
13
|
-
enum RecoverError {
|
14
|
-
NoError,
|
15
|
-
InvalidSignature,
|
16
|
-
InvalidSignatureLength,
|
17
|
-
InvalidSignatureS
|
18
|
-
}
|
19
|
-
|
20
|
-
/**
|
21
|
-
* @dev The signature derives the `address(0)`.
|
22
|
-
*/
|
23
|
-
error ECDSAInvalidSignature();
|
24
|
-
|
25
|
-
/**
|
26
|
-
* @dev The signature has an invalid length.
|
27
|
-
*/
|
28
|
-
error ECDSAInvalidSignatureLength(uint256 length);
|
29
|
-
|
30
|
-
/**
|
31
|
-
* @dev The signature has an S value that is in the upper half order.
|
32
|
-
*/
|
33
|
-
error ECDSAInvalidSignatureS(bytes32 s);
|
34
|
-
|
35
|
-
/**
|
36
|
-
* @dev Returns the address that signed a hashed message (`hash`) with `signature` or an error. This will not
|
37
|
-
* return address(0) without also returning an error description. Errors are documented using an enum (error type)
|
38
|
-
* and a bytes32 providing additional information about the error.
|
39
|
-
*
|
40
|
-
* If no error is returned, then the address can be used for verification purposes.
|
41
|
-
*
|
42
|
-
* The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:
|
43
|
-
* this function rejects them by requiring the `s` value to be in the lower
|
44
|
-
* half order, and the `v` value to be either 27 or 28.
|
45
|
-
*
|
46
|
-
* IMPORTANT: `hash` _must_ be the result of a hash operation for the
|
47
|
-
* verification to be secure: it is possible to craft signatures that
|
48
|
-
* recover to arbitrary addresses for non-hashed data. A safe way to ensure
|
49
|
-
* this is by receiving a hash of the original message (which may otherwise
|
50
|
-
* be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it.
|
51
|
-
*
|
52
|
-
* Documentation for signature generation:
|
53
|
-
* - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]
|
54
|
-
* - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]
|
55
|
-
*/
|
56
|
-
function tryRecover(bytes32 hash, bytes memory signature) internal pure returns (address, RecoverError, bytes32) {
|
57
|
-
if (signature.length == 65) {
|
58
|
-
bytes32 r;
|
59
|
-
bytes32 s;
|
60
|
-
uint8 v;
|
61
|
-
// ecrecover takes the signature parameters, and the only way to get them
|
62
|
-
// currently is to use assembly.
|
63
|
-
/// @solidity memory-safe-assembly
|
64
|
-
assembly {
|
65
|
-
r := mload(add(signature, 0x20))
|
66
|
-
s := mload(add(signature, 0x40))
|
67
|
-
v := byte(0, mload(add(signature, 0x60)))
|
68
|
-
}
|
69
|
-
return tryRecover(hash, v, r, s);
|
70
|
-
} else {
|
71
|
-
return (address(0), RecoverError.InvalidSignatureLength, bytes32(signature.length));
|
72
|
-
}
|
73
|
-
}
|
74
|
-
|
75
|
-
/**
|
76
|
-
* @dev Returns the address that signed a hashed message (`hash`) with
|
77
|
-
* `signature`. This address can then be used for verification purposes.
|
78
|
-
*
|
79
|
-
* The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:
|
80
|
-
* this function rejects them by requiring the `s` value to be in the lower
|
81
|
-
* half order, and the `v` value to be either 27 or 28.
|
82
|
-
*
|
83
|
-
* IMPORTANT: `hash` _must_ be the result of a hash operation for the
|
84
|
-
* verification to be secure: it is possible to craft signatures that
|
85
|
-
* recover to arbitrary addresses for non-hashed data. A safe way to ensure
|
86
|
-
* this is by receiving a hash of the original message (which may otherwise
|
87
|
-
* be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it.
|
88
|
-
*/
|
89
|
-
function recover(bytes32 hash, bytes memory signature) internal pure returns (address) {
|
90
|
-
(address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, signature);
|
91
|
-
_throwError(error, errorArg);
|
92
|
-
return recovered;
|
93
|
-
}
|
94
|
-
|
95
|
-
/**
|
96
|
-
* @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.
|
97
|
-
*
|
98
|
-
* See https://eips.ethereum.org/EIPS/eip-2098[ERC-2098 short signatures]
|
99
|
-
*/
|
100
|
-
function tryRecover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address, RecoverError, bytes32) {
|
101
|
-
unchecked {
|
102
|
-
bytes32 s = vs & bytes32(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);
|
103
|
-
// We do not check for an overflow here since the shift operation results in 0 or 1.
|
104
|
-
uint8 v = uint8((uint256(vs) >> 255) + 27);
|
105
|
-
return tryRecover(hash, v, r, s);
|
106
|
-
}
|
107
|
-
}
|
108
|
-
|
109
|
-
/**
|
110
|
-
* @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.
|
111
|
-
*/
|
112
|
-
function recover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address) {
|
113
|
-
(address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, r, vs);
|
114
|
-
_throwError(error, errorArg);
|
115
|
-
return recovered;
|
116
|
-
}
|
117
|
-
|
118
|
-
/**
|
119
|
-
* @dev Overload of {ECDSA-tryRecover} that receives the `v`,
|
120
|
-
* `r` and `s` signature fields separately.
|
121
|
-
*/
|
122
|
-
function tryRecover(
|
123
|
-
bytes32 hash,
|
124
|
-
uint8 v,
|
125
|
-
bytes32 r,
|
126
|
-
bytes32 s
|
127
|
-
) internal pure returns (address, RecoverError, bytes32) {
|
128
|
-
// EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature
|
129
|
-
// unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines
|
130
|
-
// the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. Most
|
131
|
-
// signatures from current libraries generate a unique signature with an s-value in the lower half order.
|
132
|
-
//
|
133
|
-
// If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value
|
134
|
-
// with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or
|
135
|
-
// vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept
|
136
|
-
// these malleable signatures as well.
|
137
|
-
if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) {
|
138
|
-
return (address(0), RecoverError.InvalidSignatureS, s);
|
139
|
-
}
|
140
|
-
|
141
|
-
// If the signature is valid (and not malleable), return the signer address
|
142
|
-
address signer = ecrecover(hash, v, r, s);
|
143
|
-
if (signer == address(0)) {
|
144
|
-
return (address(0), RecoverError.InvalidSignature, bytes32(0));
|
145
|
-
}
|
146
|
-
|
147
|
-
return (signer, RecoverError.NoError, bytes32(0));
|
148
|
-
}
|
149
|
-
|
150
|
-
/**
|
151
|
-
* @dev Overload of {ECDSA-recover} that receives the `v`,
|
152
|
-
* `r` and `s` signature fields separately.
|
153
|
-
*/
|
154
|
-
function recover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) {
|
155
|
-
(address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, v, r, s);
|
156
|
-
_throwError(error, errorArg);
|
157
|
-
return recovered;
|
158
|
-
}
|
159
|
-
|
160
|
-
/**
|
161
|
-
* @dev Optionally reverts with the corresponding custom error according to the `error` argument provided.
|
162
|
-
*/
|
163
|
-
function _throwError(RecoverError error, bytes32 errorArg) private pure {
|
164
|
-
if (error == RecoverError.NoError) {
|
165
|
-
return; // no error: do nothing
|
166
|
-
} else if (error == RecoverError.InvalidSignature) {
|
167
|
-
revert ECDSAInvalidSignature();
|
168
|
-
} else if (error == RecoverError.InvalidSignatureLength) {
|
169
|
-
revert ECDSAInvalidSignatureLength(uint256(errorArg));
|
170
|
-
} else if (error == RecoverError.InvalidSignatureS) {
|
171
|
-
revert ECDSAInvalidSignatureS(errorArg);
|
172
|
-
}
|
173
|
-
}
|
174
|
-
}
|
@@ -1,17 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: MIT
|
2
|
-
// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC1271.sol)
|
3
|
-
|
4
|
-
pragma solidity ^0.8.24;
|
5
|
-
|
6
|
-
/**
|
7
|
-
* @dev Interface of the ERC-1271 standard signature validation method for
|
8
|
-
* contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271].
|
9
|
-
*/
|
10
|
-
interface IERC1271 {
|
11
|
-
/**
|
12
|
-
* @dev Should return whether the signature provided is valid for the provided data
|
13
|
-
* @param hash Hash of the data to be signed
|
14
|
-
* @param signature Signature byte array associated with _data
|
15
|
-
*/
|
16
|
-
function isValidSignature(bytes32 hash, bytes memory signature) external view returns (bytes4 magicValue);
|
17
|
-
}
|
@@ -1,50 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: MIT
|
2
|
-
// OpenZeppelin Contracts (last updated v5.0.0) (utils/cryptography/SignatureChecker.sol)
|
3
|
-
|
4
|
-
pragma solidity ^0.8.24;
|
5
|
-
|
6
|
-
import { ECDSA } from "./ECDSA.sol";
|
7
|
-
import { IERC1271 } from "./IERC1271.sol";
|
8
|
-
|
9
|
-
/**
|
10
|
-
* @dev Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA
|
11
|
-
* signatures from externally owned accounts (EOAs) as well as ERC-1271 signatures from smart contract wallets like
|
12
|
-
* Argent and Safe Wallet (previously Gnosis Safe).
|
13
|
-
*/
|
14
|
-
library SignatureChecker {
|
15
|
-
/**
|
16
|
-
* @dev Checks if a signature is valid for a given signer and data hash. If the signer is a smart contract, the
|
17
|
-
* signature is validated against that smart contract using ERC-1271, otherwise it's validated using `ECDSA.recover`.
|
18
|
-
*
|
19
|
-
* NOTE: Unlike ECDSA signatures, contract signatures are revocable, and the outcome of this function can thus
|
20
|
-
* change through time. It could return true at block N and false at block N+1 (or the opposite).
|
21
|
-
*/
|
22
|
-
function isValidSignatureNow(address signer, bytes32 hash, bytes memory signature) internal view returns (bool) {
|
23
|
-
if (signer.code.length == 0) {
|
24
|
-
(address recovered, ECDSA.RecoverError err, ) = ECDSA.tryRecover(hash, signature);
|
25
|
-
return err == ECDSA.RecoverError.NoError && recovered == signer;
|
26
|
-
} else {
|
27
|
-
return isValidERC1271SignatureNow(signer, hash, signature);
|
28
|
-
}
|
29
|
-
}
|
30
|
-
|
31
|
-
/**
|
32
|
-
* @dev Checks if a signature is valid for a given signer and data hash. The signature is validated
|
33
|
-
* against the signer smart contract using ERC-1271.
|
34
|
-
*
|
35
|
-
* NOTE: Unlike ECDSA signatures, contract signatures are revocable, and the outcome of this function can thus
|
36
|
-
* change through time. It could return true at block N and false at block N+1 (or the opposite).
|
37
|
-
*/
|
38
|
-
function isValidERC1271SignatureNow(
|
39
|
-
address signer,
|
40
|
-
bytes32 hash,
|
41
|
-
bytes memory signature
|
42
|
-
) internal view returns (bool) {
|
43
|
-
(bool success, bytes memory result) = signer.staticcall(
|
44
|
-
abi.encodeCall(IERC1271.isValidSignature, (hash, signature))
|
45
|
-
);
|
46
|
-
return (success &&
|
47
|
-
result.length >= 32 &&
|
48
|
-
abi.decode(result, (bytes32)) == bytes32(IERC1271.isValidSignature.selector));
|
49
|
-
}
|
50
|
-
}
|
@@ -1,48 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: MIT
|
2
|
-
pragma solidity >=0.8.24;
|
3
|
-
|
4
|
-
import { IBaseWorld } from "@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol";
|
5
|
-
|
6
|
-
import { Module } from "@latticexyz/world/src/Module.sol";
|
7
|
-
import { revertWithBytes } from "@latticexyz/world/src/revertWithBytes.sol";
|
8
|
-
|
9
|
-
import { CallWithSignatureNonces } from "./tables/CallWithSignatureNonces.sol";
|
10
|
-
import { Unstable_CallWithSignatureSystem } from "./Unstable_CallWithSignatureSystem.sol";
|
11
|
-
|
12
|
-
import { DELEGATION_SYSTEM_ID } from "./constants.sol";
|
13
|
-
|
14
|
-
contract Unstable_CallWithSignatureModule is Module {
|
15
|
-
Unstable_CallWithSignatureSystem private immutable callWithSignatureSystem = new Unstable_CallWithSignatureSystem();
|
16
|
-
|
17
|
-
function installRoot(bytes memory encodedArgs) public {
|
18
|
-
requireNotInstalled(__self, encodedArgs);
|
19
|
-
|
20
|
-
IBaseWorld world = IBaseWorld(_world());
|
21
|
-
|
22
|
-
// Register table
|
23
|
-
CallWithSignatureNonces._register();
|
24
|
-
|
25
|
-
// Register system
|
26
|
-
(bool success, bytes memory data) = address(world).delegatecall(
|
27
|
-
abi.encodeCall(world.registerSystem, (DELEGATION_SYSTEM_ID, callWithSignatureSystem, true))
|
28
|
-
);
|
29
|
-
if (!success) revertWithBytes(data);
|
30
|
-
|
31
|
-
// Register system's functions
|
32
|
-
(success, data) = address(world).delegatecall(
|
33
|
-
abi.encodeCall(
|
34
|
-
world.registerRootFunctionSelector,
|
35
|
-
(
|
36
|
-
DELEGATION_SYSTEM_ID,
|
37
|
-
"callWithSignature(address,bytes32,bytes,bytes)",
|
38
|
-
"callWithSignature(address,bytes32,bytes,bytes)"
|
39
|
-
)
|
40
|
-
)
|
41
|
-
);
|
42
|
-
if (!success) revertWithBytes(data);
|
43
|
-
}
|
44
|
-
|
45
|
-
function install(bytes memory) public pure {
|
46
|
-
revert Module_NonRootInstallNotSupported();
|
47
|
-
}
|
48
|
-
}
|